mirror of
https://github.com/wassname/talk.git
synced 2026-09-12 13:01:11 +08:00
Const, service, and model updates
- Updated enum values to be uppercase - Updated services to expose service models - Updated models to only export the mongoose model - Moved all mongoose static methods over to new services - Updated tests to refelct new setup BREAKING - Status that were uppercased (caps) have caused issues with the admin pages
This commit is contained in:
@@ -2,7 +2,7 @@ const DataLoader = require('dataloader');
|
||||
|
||||
const util = require('./util');
|
||||
|
||||
const Action = require('../../models/action');
|
||||
const ActionsService = require('../../services/actions');
|
||||
|
||||
/**
|
||||
* Looks up actions based on the requested id's all bounded by the user.
|
||||
@@ -11,7 +11,8 @@ const Action = require('../../models/action');
|
||||
* @return {Promise} resolves to the promises of the requested actions
|
||||
*/
|
||||
const genActionSummariessByItemID = ({user = {}}, item_ids) => {
|
||||
return Action.getActionSummaries(item_ids, user.id)
|
||||
return ActionsService
|
||||
.getActionSummaries(item_ids, user.id)
|
||||
.then(util.arrayJoinBy(item_ids, 'item_id'));
|
||||
};
|
||||
|
||||
|
||||
@@ -5,14 +5,15 @@ const errors = require('../../errors');
|
||||
const scraper = require('../../services/scraper');
|
||||
const util = require('./util');
|
||||
|
||||
const Asset = require('../../models/asset');
|
||||
const AssetModel = require('../../models/asset');
|
||||
const AssetService = require('../../models/asset');
|
||||
|
||||
/**
|
||||
* Retrieves assets by an array of ids.
|
||||
* @param {Object} context the context of the request
|
||||
* @param {Array} ids array of ids to lookup
|
||||
*/
|
||||
const genAssetsByID = (context, ids) => Asset.find({
|
||||
const genAssetsByID = (context, ids) => AssetModel.find({
|
||||
id: {
|
||||
$in: ids
|
||||
}
|
||||
@@ -32,7 +33,7 @@ const findOrCreateAssetByURL = (context, asset_url) => {
|
||||
return Promise.reject(errors.ErrInvalidAssetURL);
|
||||
}
|
||||
|
||||
return Asset.findOrCreateByUrl(asset_url)
|
||||
return AssetService.findOrCreateByUrl(asset_url)
|
||||
.then((asset) => {
|
||||
|
||||
// If the asset wasn't scraped before, scrape it! Otherwise just return
|
||||
@@ -58,6 +59,6 @@ module.exports = (context) => ({
|
||||
getByURL: (url) => findOrCreateAssetByURL(context, url),
|
||||
|
||||
getByID: new DataLoader((ids) => genAssetsByID(context, ids)),
|
||||
getAll: new util.SingletonResolver(() => Asset.find({}))
|
||||
getAll: new util.SingletonResolver(() => AssetModel.find({}))
|
||||
}
|
||||
});
|
||||
|
||||
@@ -2,14 +2,15 @@ const DataLoader = require('dataloader');
|
||||
|
||||
const util = require('./util');
|
||||
|
||||
const Action = require('../../models/action');
|
||||
const Comment = require('../../models/comment');
|
||||
const ActionModel = require('../../models/action');
|
||||
const CommentModel = require('../../models/comment');
|
||||
const CommentsService = require('../../services/comments');
|
||||
|
||||
/**
|
||||
* Retrieves comments by an array of asset id's.
|
||||
* @param {Array} ids array of ids to lookup
|
||||
*/
|
||||
const genCommentsByAssetID = (context, ids) => Comment.find({
|
||||
const genCommentsByAssetID = (context, ids) => CommentModel.find({
|
||||
asset_id: {
|
||||
$in: ids
|
||||
},
|
||||
@@ -23,7 +24,7 @@ const genCommentsByAssetID = (context, ids) => Comment.find({
|
||||
* Retrieves comments by an array of parent ids.
|
||||
* @param {Array} ids array of ids to lookup
|
||||
*/
|
||||
const genCommentsByParentID = (context, ids) => Comment.find({
|
||||
const genCommentsByParentID = (context, ids) => CommentModel.find({
|
||||
parent_id: {
|
||||
$in: ids
|
||||
},
|
||||
@@ -39,7 +40,7 @@ const getCommentsByStatusAndAssetID = (context, {status = null, asset_id = null}
|
||||
status = status.toLowerCase();
|
||||
}
|
||||
|
||||
return Comment.moderationQueue(status, asset_id);
|
||||
return CommentsService.moderationQueue(status, asset_id);
|
||||
};
|
||||
|
||||
const getCommentsByActionTypeAndAssetID = (context, {action_type, asset_id = null}) => {
|
||||
@@ -49,13 +50,13 @@ const getCommentsByActionTypeAndAssetID = (context, {action_type, asset_id = nul
|
||||
action_type = action_type.toLowerCase();
|
||||
}
|
||||
|
||||
return Action.find({
|
||||
return ActionModel.find({
|
||||
action_type,
|
||||
|
||||
// TODO: remove when we move the enum over to the uppercase.
|
||||
item_type: 'comments'
|
||||
}).then((actions) => {
|
||||
let comments = Comment.find({
|
||||
let comments = CommentModel.find({
|
||||
id: {
|
||||
$in: actions.map((action) => action.item_id)
|
||||
}
|
||||
@@ -69,7 +70,7 @@ const getCommentsByActionTypeAndAssetID = (context, {action_type, asset_id = nul
|
||||
});
|
||||
};
|
||||
|
||||
const genCommentsByAuthorID = (context, authorIDs) => Comment.find({
|
||||
const genCommentsByAuthorID = (context, authorIDs) => CommentModel.find({
|
||||
author_id: {
|
||||
$in: authorIDs
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const Settings = require('../../models/setting');
|
||||
const SettingsService = require('../../services/settings');
|
||||
|
||||
const util = require('./util');
|
||||
|
||||
@@ -8,5 +8,5 @@ const util = require('./util');
|
||||
* @return {Object} object of loaders
|
||||
*/
|
||||
module.exports = () => ({
|
||||
Settings: new util.SingletonResolver(() => Settings.retrieve())
|
||||
Settings: new util.SingletonResolver(() => SettingsService.retrieve())
|
||||
});
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
const DataLoader = require('dataloader');
|
||||
|
||||
const User = require('../../models/user');
|
||||
const UserService = require('../../models/user');
|
||||
|
||||
const genUserByIDs = (context, ids) => User.findByIdArray(ids);
|
||||
const genUserByIDs = (context, ids) => UserService.findByIdArray(ids);
|
||||
|
||||
/**
|
||||
* Creates a set of loaders based on a GraphQL context.
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
const Action = require('../../models/action');
|
||||
const ActionModel = require('../../models/action');
|
||||
const ActionsService = require('../../services/actions');
|
||||
|
||||
/**
|
||||
* Creates an action on a item.
|
||||
@@ -9,7 +10,7 @@ const Action = require('../../models/action');
|
||||
* @return {Promise} resolves to the action created
|
||||
*/
|
||||
const createAction = ({user = {}}, {item_id, item_type, action_type, metadata = {}}) => {
|
||||
return Action.insertUserAction({
|
||||
return ActionsService.insertUserAction({
|
||||
item_id,
|
||||
item_type,
|
||||
user_id: user.id,
|
||||
@@ -25,7 +26,7 @@ const createAction = ({user = {}}, {item_id, item_type, action_type, metadata =
|
||||
* @return {Promise} resolves when the action is deleted
|
||||
*/
|
||||
const deleteAction = ({user}, {id}) => {
|
||||
return Action.remove({
|
||||
return ActionModel.remove({
|
||||
id,
|
||||
user_id: user.id
|
||||
});
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
const errors = require('../../errors');
|
||||
const Asset = require('../../models/asset');
|
||||
const Comment = require('../../models/comment');
|
||||
|
||||
const AssetsService = require('../../services/assets');
|
||||
const CommentsService = require('../../services/comments');
|
||||
|
||||
const Wordlist = require('../../services/wordlist');
|
||||
|
||||
@@ -14,7 +15,7 @@ const Wordlist = require('../../services/wordlist');
|
||||
* @return {Promise} resolves to the created comment
|
||||
*/
|
||||
const createComment = ({user}, {body, asset_id, parent_id = null}, status = null) => {
|
||||
return Comment.publicCreate({
|
||||
return CommentsService.publicCreate({
|
||||
body,
|
||||
asset_id,
|
||||
parent_id,
|
||||
@@ -58,8 +59,8 @@ const resolveNewCommentStatus = (context, {asset_id, body}, wordlist = {}) => {
|
||||
if (wordlist.banned) {
|
||||
status = Promise.resolve('rejected');
|
||||
} else {
|
||||
status = Asset
|
||||
.rectifySettings(Asset.findById(asset_id).then((asset) => {
|
||||
status = AssetsService
|
||||
.rectifySettings(AssetsService.findById(asset_id).then((asset) => {
|
||||
if (!asset) {
|
||||
return Promise.reject(errors.ErrNotFound);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const User = require('../../models/user');
|
||||
const UsersService = require('../../services/users');
|
||||
|
||||
/**
|
||||
* Updates a users settings.
|
||||
@@ -7,7 +7,7 @@ const User = require('../../models/user');
|
||||
* @return {Promise}
|
||||
*/
|
||||
const updateUserSettings = ({user}, {bio}) => {
|
||||
return User.updateSettings(user.id, {bio});
|
||||
return UsersService.updateSettings(user.id, {bio});
|
||||
};
|
||||
|
||||
module.exports = (context) => {
|
||||
|
||||
Reference in New Issue
Block a user