1 |
|
2 | const Base = require("../Base")
|
3 | const User = require("../model/User")
|
4 | const Pager = require("../pager")
|
5 |
|
6 | const d = require("debug")("raptorjs:token")
|
7 |
|
8 | class 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 |
|
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 |
|
81 | module.exports = Token
|