Files
gancio/app/api.js

77 lines
2.3 KiB
JavaScript
Raw Normal View History

2019-02-26 00:02:42 +01:00
const express = require('express')
2019-03-07 14:59:28 +01:00
const { fillUser, isAuth, isAdmin } = require('./auth')
2019-02-26 00:02:42 +01:00
const eventController = require('./controller/event')
const exportController = require('./controller/export')
const userController = require('./controller/user')
const settingsController = require('./controller/settings')
2019-02-26 00:02:42 +01:00
// const botController = require('./controller/bot')
const multer = require('multer')
const storage = require('./storage')({
2019-03-10 01:01:23 +01:00
destination: 'uploads/'
})
const upload = multer({ storage })
const api = express.Router()
2019-02-26 00:02:42 +01:00
// login
2019-03-07 14:59:28 +01:00
api.post('/login', userController.login)
2019-02-26 00:02:42 +01:00
api.route('/user')
// register
2019-02-26 00:02:42 +01:00
.post(userController.register)
// get current user
2019-02-26 00:02:42 +01:00
.get(isAuth, userController.current)
// update user (eg. confirm)
2019-02-26 00:02:42 +01:00
.put(isAuth, isAdmin, userController.update)
// get all users
2019-02-26 00:02:42 +01:00
api.get('/users', isAuth, isAdmin, userController.getAll)
// update a tag (modify color)
2019-02-26 00:02:42 +01:00
api.put('/tag', isAuth, isAdmin, eventController.updateTag)
// update a place (modify address..)
2019-03-03 01:04:24 +01:00
api.put('/place', isAuth, isAdmin, eventController.updatePlace)
2019-02-26 00:02:42 +01:00
api.route('/user/event')
// add event
2019-03-07 14:59:28 +01:00
.post(fillUser, upload.single('image'), userController.addEvent)
// update event
2019-02-26 00:02:42 +01:00
.put(isAuth, upload.single('image'), userController.updateEvent)
// remove event
2019-03-07 14:59:28 +01:00
api.delete('/user/event/:id', isAuth, userController.delEvent)
2019-02-26 00:02:42 +01:00
// get tags/places
2019-02-26 01:17:52 +01:00
api.get('/event/meta', eventController.getMeta)
// get unconfirmed events
2019-03-07 14:59:28 +01:00
api.get('/event/unconfirmed', isAuth, isAdmin, eventController.getUnconfirmed)
2019-03-11 00:20:37 +01:00
// add event notification
api.post('/event/notification', eventController.addNotification)
api.delete('/event/del_notification/:code', eventController.delNotification)
2019-03-07 14:59:28 +01:00
api.get('/settings', settingsController.getAdminSettings)
api.post('/settings', settingsController.setAdminSetting)
// get event
2019-03-07 14:59:28 +01:00
api.get('/event/:event_id', eventController.get)
// confirm event
2019-03-07 14:59:28 +01:00
api.get('/event/confirm/:event_id', isAuth, isAdmin, eventController.confirm)
api.get('/event/unconfirm/:event_id', isAuth, isAdmin, eventController.unconfirm)
2019-02-26 00:02:42 +01:00
// export events (rss/ics)
2019-02-26 12:37:51 +01:00
api.get('/export/:type', exportController.export)
2019-02-26 00:02:42 +01:00
// get events in this range
2019-03-07 14:59:28 +01:00
api.get('/event/:year/:month', eventController.getAll)
2019-02-26 00:02:42 +01:00
// mastodon oauth auth
2019-02-26 00:02:42 +01:00
api.post('/user/getauthurl', isAuth, userController.getAuthURL)
api.post('/user/code', isAuth, userController.code)
module.exports = api