SAML; Dashboard
This commit is contained in:
45
app/controllers/api/v1/Message.controller.js
Normal file
45
app/controllers/api/v1/Message.controller.js
Normal file
@@ -0,0 +1,45 @@
|
||||
const { Controller } = require('libflitter')
|
||||
|
||||
class MessageController extends Controller {
|
||||
static get services() {
|
||||
return [...super.services, 'models']
|
||||
}
|
||||
|
||||
async get_banners(req, res, next) {
|
||||
const Message = this.models.get('Message')
|
||||
const messages = await Message.for_user(req.user)
|
||||
|
||||
return res.api(messages.map(x => {
|
||||
return {
|
||||
message: x.message,
|
||||
expires: x.expires,
|
||||
dismissed: x.dismissed,
|
||||
type: x.display_type,
|
||||
id: x.id,
|
||||
}
|
||||
}))
|
||||
}
|
||||
|
||||
async read_banner(req, res, next) {
|
||||
const banner_id = req.params.banner_id
|
||||
if ( !banner_id )
|
||||
return res.status(400)
|
||||
.message('Missing required parameter: banner_id')
|
||||
.api()
|
||||
|
||||
const Message = this.models.get('Message')
|
||||
const message = await Message.findById(banner_id)
|
||||
if ( !message )
|
||||
return res.status(404)
|
||||
.message('Banner message not found with that ID.')
|
||||
.api()
|
||||
|
||||
if ( message.user_id !== req.user.id )
|
||||
return res.status(401).api()
|
||||
|
||||
await message.dismiss()
|
||||
return res.api()
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = exports = MessageController
|
||||
Reference in New Issue
Block a user