mirror of https://gitgud.io/fatchan/jschan.git
Merge pull request #21 from fatchan/combinedquery
combine update action queriesmerge-requests/208/head
commit
262ef1afd4
22 changed files with 602 additions and 186 deletions
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 200 B |
After Width: | Height: | Size: 7.7 KiB |
@ -1,12 +1,23 @@ |
||||
'use strict'; |
||||
|
||||
const Posts = require(__dirname+'/../../db/posts.js') |
||||
, hasPerms = require(__dirname+'/../../helpers/hasperms.js'); |
||||
module.exports = (posts) => { |
||||
|
||||
module.exports = async (req, res, next) => { |
||||
const filteredposts = posts.filter(post => { |
||||
return post.reports.length > 0 |
||||
}) |
||||
|
||||
const dismissedReports = await Posts.dismissReports(req.params.board, req.body.checkedposts).then(result => result.modifiedCount); |
||||
if (filteredposts.length === 0) { |
||||
return { |
||||
message: 'No report(s) to dismiss' |
||||
} |
||||
} |
||||
|
||||
return `Dismissed ${dismissedReports} reports successfully`; |
||||
return { |
||||
message: 'Dismissed reports', |
||||
action: '$set', |
||||
query: { |
||||
'reports': [] |
||||
} |
||||
}; |
||||
|
||||
} |
||||
|
@ -1,14 +1,23 @@ |
||||
'use strict'; |
||||
|
||||
const Mongo = require(__dirname+'/../../db/db.js') |
||||
, Posts = require(__dirname+'/../../db/posts.js') |
||||
, hasPerms = require(__dirname+'/../../helpers/hasperms.js'); |
||||
module.exports = (posts) => { |
||||
|
||||
module.exports = async (req, res, next, posts) => { |
||||
const filteredposts = posts.filter(post => { |
||||
return post.globalreports.length > 0 |
||||
}) |
||||
|
||||
const postMongoIds = posts.map(post => Mongo.ObjectId(post._id)) |
||||
const dismissedCount = await Posts.dismissGlobalReports(postMongoIds).then(result => result.modifiedCount); |
||||
if (filteredposts.length === 0) { |
||||
return { |
||||
message: 'No global report(s) to dismiss' |
||||
} |
||||
} |
||||
|
||||
return `Dismissed ${dismissedCount} reports successfully`; |
||||
return { |
||||
message: 'Dismissed global report(s)', |
||||
action: '$set', |
||||
query: { |
||||
'globalreports': [] |
||||
} |
||||
}; |
||||
|
||||
} |
||||
|
@ -0,0 +1,23 @@ |
||||
'use strict'; |
||||
|
||||
module.exports = (posts) => { |
||||
|
||||
const filteredposts = posts.filter(post => { |
||||
return !post.locked |
||||
}) |
||||
|
||||
if (filteredposts.length === 0) { |
||||
return { |
||||
message: 'Post(s) already locked', |
||||
}; |
||||
} |
||||
|
||||
return { |
||||
message: `Locked ${filteredposts.length} post(s)`, |
||||
action: '$set', |
||||
query: { |
||||
'locked': true |
||||
} |
||||
}; |
||||
|
||||
} |
@ -0,0 +1,23 @@ |
||||
'use strict'; |
||||
|
||||
module.exports = (posts) => { |
||||
|
||||
const filteredposts = posts.filter(post => { |
||||
return !post.saged |
||||
}) |
||||
|
||||
if (filteredposts.length === 0) { |
||||
return { |
||||
message: 'Post(s) already saged', |
||||
}; |
||||
} |
||||
|
||||
return { |
||||
message: `Saged ${filteredposts.length} post(s)`, |
||||
action: '$set', |
||||
query: { |
||||
'saged': true |
||||
} |
||||
}; |
||||
|
||||
} |
@ -1,29 +1,24 @@ |
||||
'use strict'; |
||||
|
||||
const path = require('path') |
||||
, util = require('util') |
||||
, fs = require('fs') |
||||
, unlink = util.promisify(fs.unlink) |
||||
, uploadDirectory = require(__dirname+'/../../helpers/uploadDirectory.js') |
||||
, hasPerms = require(__dirname+'/../../helpers/hasperms.js') |
||||
, Mongo = require(__dirname+'/../../db/db.js') |
||||
, Posts = require(__dirname+'/../../db/posts.js'); |
||||
|
||||
module.exports = async (req, res, next, posts) => { |
||||
module.exports = (posts) => { |
||||
|
||||
// filter to ones not spoilered
|
||||
posts = posts.filter(post => { |
||||
const filteredPosts = posts.filter(post => { |
||||
return !post.spoiler |
||||
}); |
||||
if (posts.length === 0) { |
||||
return 'Posts already spoilered'; |
||||
} |
||||
|
||||
// spoiler posts
|
||||
const postMongoIds = posts.map(post => Mongo.ObjectId(post._id)); |
||||
const spoileredPosts = await Posts.spoilerMany(postMongoIds).then(result => result.modifiedCount); |
||||
if (filteredPosts.length === 0) { |
||||
return { |
||||
message:'Post(s) already spoilered' |
||||
}; |
||||
} |
||||
|
||||
//hooray!
|
||||
return `Spoilered ${spoileredPosts} posts` |
||||
return { |
||||
message: `Spoilered ${filteredPosts.length} post(s)`, |
||||
action: '$set', |
||||
query: { |
||||
'spoiler': true |
||||
} |
||||
}; |
||||
|
||||
} |
||||
|
@ -0,0 +1,23 @@ |
||||
'use strict'; |
||||
|
||||
module.exports = (posts) => { |
||||
|
||||
const filteredposts = posts.filter(post => { |
||||
return !post.sticky |
||||
}) |
||||
|
||||
if (filteredposts.length === 0) { |
||||
return { |
||||
message: 'Post(s) already stickied', |
||||
}; |
||||
} |
||||
|
||||
return { |
||||
message: `Stickied ${filteredposts.length} post(s)`, |
||||
action: '$set', |
||||
query: { |
||||
'sticky': true |
||||
} |
||||
}; |
||||
|
||||
} |
Loading…
Reference in new issue