This repository was archived by the owner on Oct 22, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAuthTokenController.js
90 lines (73 loc) · 2.1 KB
/
AuthTokenController.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
'use strict';
const AbstractController = require('./AbstractController');
class AuthTokenController extends AbstractController {
constructor(serviceManager) {
super(serviceManager);
this.authTokenRepository = null;
}
bootstrap() {
super.bootstrap();
this.authTokenRepository = this.serviceManager.get('authTokenRepository');
return this;
}
async renderListView(req, res) {
const authTokenList = await this.authTokenRepository.findAllByAccountId(req.user._id);
res.render('auth-tokens/list', {
authTokenList,
});
}
async createAuthTokenAction(req, res) {
const authTokenProps = {
accountId: req.user._id,
};
if (req.body.description) {
authTokenProps.description = req.body.description;
}
await this.authTokenRepository.create(authTokenProps);
res.redirect('/auth-tokens');
}
async deleteAuthTokenAction(req, res) {
if (!req.body.id) {
return res.redirect('/auth-tokens');
}
await this.authTokenRepository.remove({
_id: req.body.id,
accountId: req.user._id,
});
res.redirect('/auth-tokens');
}
getRoutes() {
const authService = this.authService;
return {
'/auth-tokens': [{
method: 'get',
handler: [
authService.authenticate('session'),
authService.requireUser(),
(req, res, next) => this.renderListView(req, res, next),
],
}],
'/auth-tokens/new': [{
handler: (req, res) => res.redirect('/auth-tokens'),
},{
method: 'post',
handler: [
authService.authenticate('session'),
authService.requireUser(),
(req, res, next) => this.createAuthTokenAction(req, res, next),
]
}],
'/auth-tokens/delete': [{
handler: (req, res) => res.redirect('/auth-tokens'),
},{
method: 'post',
handler: [
authService.authenticate('session'),
authService.requireUser(),
(req, res, next) => this.deleteAuthTokenAction(req, res, next),
]
}]
};
}
}
module.exports = AuthTokenController;