mirror of
https://github.com/wassname/talk.git
synced 2026-07-02 02:26:56 +08:00
Adding settings to stream.
This commit is contained in:
@@ -18,21 +18,21 @@ router.get('/', (req, res, next) => {
|
||||
// Get the asset_id for this url (or create it if it doesn't exist)
|
||||
Promise.all([
|
||||
Asset.findOrCreateByUrl(decodeURIComponent(req.query.asset_url)),
|
||||
Setting.getModerationSetting()
|
||||
Setting.getSettings()
|
||||
])
|
||||
.then(([asset, {moderation}]) => {
|
||||
.then(([asset, settings]) => {
|
||||
// Get the sitewide moderation setting and return the appropriate comments
|
||||
switch(moderation){
|
||||
switch(settings.moderation){
|
||||
case 'pre':
|
||||
return Promise.all([Comment.findAcceptedByAssetId(asset.id), asset]);
|
||||
return Promise.all([Comment.findAcceptedByAssetId(asset.id), asset, settings]);
|
||||
case 'post':
|
||||
return Promise.all([Comment.findAcceptedAndNewByAssetId(asset.id), asset]);
|
||||
return Promise.all([Comment.findAcceptedAndNewByAssetId(asset.id), asset, settings]);
|
||||
default:
|
||||
return Promise.reject(new Error('Moderation setting not found.'));
|
||||
}
|
||||
})
|
||||
// Get all the users and actions for those comments.
|
||||
.then(([comments, asset]) => {
|
||||
.then(([comments, asset, settings]) => {
|
||||
return Promise.all([
|
||||
[asset],
|
||||
comments,
|
||||
@@ -41,15 +41,17 @@ router.get('/', (req, res, next) => {
|
||||
asset.id,
|
||||
...comments.map((comment) => comment.id),
|
||||
...comments.map((comment) => comment.author_id)
|
||||
]))
|
||||
])),
|
||||
settings
|
||||
]);
|
||||
})
|
||||
.then(([assets, comments, users, actions]) => {
|
||||
.then(([assets, comments, users, actions, settings]) => {
|
||||
res.json({
|
||||
assets,
|
||||
comments,
|
||||
users,
|
||||
actions
|
||||
actions,
|
||||
settings
|
||||
});
|
||||
})
|
||||
.catch(error => {
|
||||
|
||||
@@ -91,10 +91,11 @@ describe('api/stream: routes', () => {
|
||||
.query({'asset_url': 'http://test.com'})
|
||||
.then(res => {
|
||||
expect(res).to.have.status(200);
|
||||
expect(res.body.assets.length).to.equal(1);
|
||||
expect(res.body.comments.length).to.equal(1);
|
||||
expect(res.body.users.length).to.equal(1);
|
||||
expect(res.body.actions.length).to.equal(1);
|
||||
expect(res.body.assets[0]).to.have.property('url');
|
||||
expect(res.body.comments[0]).to.have.property('body');
|
||||
expect(res.body.users[0]).to.have.property('displayName');
|
||||
expect(res.body.actions[0]).to.have.property('action_type');
|
||||
expect(res.body.settings).to.have.property('moderation');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user