UNPKG

2.11 kBJavaScriptView Raw
1
2const Base = require("../Base")
3const User = require("../model/User")
4const Pager = require("../pager")
5
6const d = require("debug")("raptorjs:token")
7
8class Token extends Base {
9
10 Permission() {
11 return this.getContainer().Admin().getPermission("token")
12 }
13
14 read(token) {
15 token = token.id ? token : { id: token}
16 d("Loading token %s", token.id)
17 return this.getClient().get(this.route("TOKEN_GET", token.id))
18 }
19
20 save(token) {
21 return token.id ? this.update(token) : this.create(token)
22 }
23
24 create(token) {
25 d("Creating token")
26 return this.getClient().post(
27 this.route("TOKEN_CREATE"),
28 token
29 )
30 }
31
32 current() {
33 d("Fetch current token info")
34 return this.getClient().get(this.route("TOKEN_CURRENT"))
35 }
36 /**
37 * Ensure a { token: 'string' } is valid and return the user
38 */
39 check(token) {
40 d("Checking token")
41 if (typeof token === "string") {
42 token = {token}
43 }
44 if(!(token && token.token)) {
45 throw new Error("Missing token parameter")
46 }
47 return this.getClient().post(
48 this.route("TOKEN_CHECK"),
49 token
50 ).then((json) => {
51 const u = new User(json)
52 u.token = json.token
53 return Promise.resolve(u)
54 })
55 }
56
57 update(token) {
58 d("Updating token %s", token.id)
59 return this.getClient().put(
60 this.route("TOKEN_UPDATE", token.id),
61 token
62 )
63 }
64
65 delete(token) {
66 d("Deleting token %s", token.id)
67 return this.getClient().delete(
68 this.route("TOKEN_DELETE", token.id)
69 )
70 }
71
72 list(userId, pager={}) {
73 userId = userId || this.getContainer().Auth().getUser().id
74 d("Listing tokens for %s", userId)
75 const url = this.route("TOKEN_LIST") + Pager.buildQuery(pager, { userId:userId })
76 return this.getClient().get(url)
77 .then((list) => Promise.resolve(Pager.create(list)))
78 }
79}
80
81module.exports = Token