UNPKG

2.6 kBJavaScriptView Raw
1var express = require('express');
2var router = express.Router();
3var _ = require('lodash');
4var Promise = require('bluebird');
5var security = require('../core/utils/security');
6var models = require('../models');
7var middleware = require('../core/middleware');
8var accountManager = require('../core/services/account-manager')();
9var AppError = require('../core/app-error')
10var log4js = require('log4js');
11var log = log4js.getLogger("cps:accessKey");
12
13router.get('/', middleware.checkToken, (req, res, next) => {
14 log.debug('request get acceesKeys')
15 var uid = req.users.id;
16 accountManager.getAllAccessKeyByUid(uid)
17 .then((accessKeys) => {
18 log.debug('acceesKeys:', accessKeys)
19 res.send({accessKeys: accessKeys});
20 })
21 .catch((e) => {
22 next(e);
23 });
24});
25
26router.post('/', middleware.checkToken, (req, res, next) => {
27 var uid = req.users.id;
28 var identical = req.users.identical;
29 var createdBy = _.trim(req.body.createdBy);
30 var friendlyName = _.trim(req.body.friendlyName);
31 var ttl = parseInt(req.body.ttl);
32 var description = _.trim(req.body.description);
33 log.debug(req.body)
34 var newAccessKey = security.randToken(28).concat(identical);
35 return accountManager.isExsitAccessKeyName(uid, friendlyName)
36 .then((data) => {
37 if (!_.isEmpty(data)) {
38 throw new AppError.AppError(`The access key "${friendlyName}" already exists.`);
39 }
40 })
41 .then(() => {
42 return accountManager.createAccessKey(uid, newAccessKey, ttl, friendlyName, createdBy, description);
43 })
44 .then((newToken) => {
45 var moment = require("moment");
46 var info = {
47 name : newToken.tokens,
48 createdTime : parseInt(moment(newToken.created_at).format('x')),
49 createdBy : newToken.created_by,
50 expires : parseInt(moment(newToken.expires_at).format('x')),
51 description : newToken.description,
52 friendlyName: newToken.name,
53 };
54 log.debug(info);
55 res.send({accessKey:info});
56 })
57 .catch((e) => {
58 if (e instanceof AppError.AppError) {
59 log.debug(e)
60 res.status(406).send(e.message);
61 } else {
62 next(e);
63 }
64 });
65});
66
67router.delete('/:name', middleware.checkToken, (req, res, next) => {
68 var name = _.trim(decodeURI(req.params.name));
69 var uid = req.users.id;
70 return models.UserTokens.destroy({where: {name:name, uid: uid}})
71 .then((rowNum) => {
72 log.debug('delete acceesKey:', name)
73 res.send({friendlyName:name});
74 })
75 .catch((e) => {
76 if (e instanceof AppError.AppError) {
77 log.debug(e)
78 res.status(406).send(e.message);
79 } else {
80 next(e);
81 }
82 });
83});
84module.exports = router;