annonce @home / admin / controller / route / api

This commit is contained in:
les
2020-02-16 21:03:50 +01:00
parent a1204c24e1
commit 04e2dc07aa
15 changed files with 313 additions and 15 deletions

View File

@@ -0,0 +1,57 @@
const { announcement: Announcement } = require('../models')
const debug = require('debug')('announcement:controller')
const announceController = {
async getAll (req, res) {
const announces = await Announcement.findAll({ raw: true })
return res.json(announces)
},
_getVisible () {
return Announcement.findAll({ where: { visible: true }, raw: true })
},
async add (req, res) {
const announcementDetail = {
title: req.body.title,
announcement: req.body.announcement,
visible: true
}
debug('Create announcement ', req.body.title)
const announce = await Announcement.create(announcementDetail)
res.json(announce)
},
async update (req, res) {
const announceDetails = {
title: req.body.title,
announcement: req.body.announcement,
visible: req.body.visible
}
const announce_id = req.params.announce_id
try {
let announce = await Announcement.findByPk(announce_id)
announce = await announce.update(announceDetails)
res.json(announce)
} catch (e) {
debug('Toggle announcement failed ', e)
res.sendStatus(404)
}
},
async remove (req, res) {
debug('Remove announcement ', req.params.announce_id)
const announce_id = req.params.announce_id
try {
const announce = await Announcement.findByPk(announce_id)
await announce.destroy()
res.sendStatus(200)
} catch (e) {
debug('Remove announcement failed ', e)
res.sendStatus(404)
}
}
}
module.exports = announceController

View File

@@ -11,6 +11,7 @@ const instanceController = require('./controller/instance')
const apUserController = require('./controller/ap_user')
const resourceController = require('./controller/resource')
const oauthController = require('./controller/oauth')
const announceController = require('./controller/announce')
const storage = require('./storage')
const upload = multer({ storage })
@@ -126,6 +127,12 @@ api.put('/resources/:resource_id', isAdmin, resourceController.hide)
api.delete('/resources/:resource_id', isAdmin, resourceController.remove)
api.get('/resources', isAdmin, resourceController.getAll)
// - ADMIN ANNOUNCEMENTS
api.get('/announcements', isAdmin, announceController.getAll)
api.post('/announcements', isAdmin, announceController.add)
api.put('/announcements/:announce_id', isAdmin, announceController.update)
api.delete('/announcements/:announce_id', isAdmin, announceController.remove)
api.get('/clients', hasPerm('oauth:read'), oauthController.getClients)
api.get('/client/:client_id', hasPerm('oauth:read'), oauthController.getClient)
api.post('/client', oauthController.createClient)

View File

@@ -1,7 +1,7 @@
module.exports = (sequelize, DataTypes) => {
const announcement = sequelize.define('announcement', {
announce: DataTypes.STRING,
until: DataTypes.DATE,
title: DataTypes.STRING,
announcement: DataTypes.STRING,
visible: DataTypes.BOOLEAN
}, {})