2018-11-06 19:48:50 +00:00
|
|
|
import { Request, Router } from "express";
|
|
|
|
import promiseMiddleware from "../../helper/promiseMiddleware";
|
|
|
|
import RegCode from "../../models/regcodes";
|
|
|
|
import { randomBytes } from "crypto";
|
|
|
|
import moment = require("moment");
|
|
|
|
import { GetUserMiddleware } from "../middlewares/user";
|
|
|
|
import { HttpStatusCode } from "../../helper/request_error";
|
|
|
|
|
|
|
|
const RegCodeRoute: Router = Router();
|
|
|
|
RegCodeRoute.route("/")
|
2019-03-14 22:10:39 +00:00
|
|
|
/**
|
|
|
|
* @api {get} /admin/regcode
|
|
|
|
* @apiName AdminGetRegcodes
|
|
|
|
*
|
|
|
|
* @apiGroup admin_regcode
|
|
|
|
* @apiPermission admin
|
|
|
|
*
|
|
|
|
* @apiSuccess {Object[]} regcodes
|
|
|
|
* @apiSuccess {String} permissions._id The ID
|
|
|
|
* @apiSuccess {String} permissions.token The Regcode Token
|
|
|
|
* @apiSuccess {String} permissions.valid Defines if the Regcode is valid
|
|
|
|
* @apiSuccess {String} permissions.validTill Expiration date of RegCode
|
|
|
|
*/
|
2018-11-06 19:48:50 +00:00
|
|
|
.get(promiseMiddleware(async (req, res) => {
|
|
|
|
let regcodes = await RegCode.find({});
|
|
|
|
res.json(regcodes);
|
|
|
|
}))
|
2019-03-14 22:10:39 +00:00
|
|
|
/**
|
|
|
|
* @api {delete} /admin/regcode
|
|
|
|
* @apiName AdminDeleteRegcode
|
|
|
|
*
|
|
|
|
* @apiParam {String} id The id of the RegCode
|
|
|
|
*
|
|
|
|
* @apiGroup admin_regcode
|
|
|
|
* @apiPermission admin
|
|
|
|
*
|
|
|
|
* @apiSuccess {Boolean} success
|
|
|
|
*/
|
2018-11-06 19:48:50 +00:00
|
|
|
.delete(promiseMiddleware(async (req, res) => {
|
|
|
|
let { id } = req.query;
|
|
|
|
await RegCode.delete(id);
|
|
|
|
res.json({ success: true });
|
|
|
|
}))
|
2019-03-14 22:10:39 +00:00
|
|
|
/**
|
|
|
|
* @api {post} /admin/regcode
|
|
|
|
* @apiName AdminAddRegcode
|
|
|
|
*
|
|
|
|
* @apiGroup admin_regcode
|
|
|
|
* @apiPermission admin
|
|
|
|
*
|
|
|
|
* @apiSuccess {String} code The newly created code
|
|
|
|
*/
|
2018-11-06 19:48:50 +00:00
|
|
|
.post(promiseMiddleware(async (req, res) => {
|
|
|
|
let regcode = RegCode.new({
|
|
|
|
token: randomBytes(10).toString("hex"),
|
|
|
|
valid: true,
|
|
|
|
validTill: moment().add("1", "month").toDate()
|
|
|
|
})
|
|
|
|
await RegCode.save(regcode);
|
|
|
|
res.json({ code: regcode.token });
|
|
|
|
}))
|
|
|
|
|
|
|
|
export default RegCodeRoute;
|