Files
qmi-cloud/server/routes/api-notifications.js
Manuel Romero d5d7a128d2 OKTA login
2024-02-19 15:37:32 +01:00

70 lines
1.7 KiB
JavaScript

const express = require('express');
const router = express.Router();
const db = require('qmi-cloud-common/mongo');
const passport = require('../passport-okta');
const sendEmail = require('qmi-cloud-common/send-email');
/**
* @swagger
* /notifications:
* get:
* description: Get all notifications
* summary: Get all notifications
* tags:
* - admin
* produces:
* - application/json
* parameters:
* - name: page
* in: query
* required: false
* type: integer
* - name: size
* in: query
* required: false
* type: integer
* responses:
* 200:
* description: Notifications
*/
router.get('/', passport.ensureAuthenticatedAndAdmin, async (req, res, next) => {
try {
var page;
if ( req.query.page && req.query.size ) {
page = {
page: parseInt(req.query.page),
size: parseInt(req.query.size)
}
}
const result = await db.notification.getPage({}, page);
return res.json(result);
} catch (error) {
next(error);
}
});
/**
* @swagger
* /notifications/testsendemail:
* post:
* description: Test email service
* summary: Test email service
* tags:
* - admin
* produces:
* - application/json
* responses:
* 200:
* description: Notifications
*/
router.post('/testsendemail', passport.ensureAuthenticatedAndAdmin, async (req, res, next) => {
try {
const result = await sendEmail._doSend(req.user.upn, "QMI - Test email", "Hi! This is a test email from QMI Cloud.");
return res.json(result);
} catch (error) {
next(error);
}
});
module.exports = router;