1 | 'use strict'
|
2 |
|
3 | var request = require('request');
|
4 |
|
5 | function PB(printbotUrl, printbotAuthToken) {
|
6 | this.PRINTBOT_URL = printbotUrl;
|
7 | this.PRINTBOT_AUTH_TOKEN = printbotAuthToken;
|
8 | }
|
9 |
|
10 | PB.prototype.verifyUserAndGetUserData = function (PSI, onError, onSuccess) {
|
11 | var debug = true;
|
12 |
|
13 | var requestSettings = printBotRequestSettings(this.PRINTBOT_URL, this.PRINTBOT_AUTH_TOKEN);
|
14 |
|
15 | log(debug, () => { console.log("PRINTBOT_REQUEST => ", requestSettings); });
|
16 |
|
17 | request(requestSettings,
|
18 | function (error, response, body) {
|
19 | if (!error && response.statusCode >= 200 && response.statusCode < 300) {
|
20 | var userData = JSON.parse(body);
|
21 | log(debug, () => { console.log(`PRINTBOT_RESPONSE (${response.statusCode}) => `, userData); });
|
22 |
|
23 | PSI.PB.USER_DATA = userData;
|
24 |
|
25 | onSuccess(body);
|
26 | }
|
27 | else if (response.statusCode == 401) {
|
28 | log(debug, () => { console.log(`UNAUTHORIZED`); });
|
29 | log(debug, () => { console.log(`PRINTBOT_RESPONSE (${response.statusCode}) => `, body); });
|
30 |
|
31 | onError({
|
32 | statusCode: response.statusCode,
|
33 | });
|
34 | }
|
35 | else {
|
36 | log(debug, () => { console.log(`PRINTBOT_ERR_MSG (${response.statusCode}) => `, error) });
|
37 | log(debug, () => { console.log(`PRINTBOT_ERR_BODY => `, body); });
|
38 |
|
39 | onError({
|
40 | statusCode: response.statusCode,
|
41 | body: body,
|
42 | error: error,
|
43 | errMsg: "Failed to connect to PrintBot."
|
44 | });
|
45 | }
|
46 | }
|
47 | );
|
48 | };
|
49 |
|
50 |
|
51 | module.exports = PB;
|
52 |
|
53 | function printBotRequestSettings(url, authToken) {
|
54 | var fullUrl = url + '/api/getUserData';
|
55 |
|
56 | return {
|
57 | uri: fullUrl,
|
58 | method: 'GET',
|
59 | headers: {
|
60 | 'Accept': 'application/json',
|
61 | 'Authorization': `Bearer ${authToken}`
|
62 | }
|
63 | };
|
64 | }
|
65 |
|
66 | function log(shouldLog, cb) {
|
67 | if (shouldLog) {
|
68 | cb();
|
69 | }
|
70 | } |
\ | No newline at end of file |