-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
97 lines (64 loc) · 1.99 KB
/
index.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
91
92
93
94
95
96
97
"use strict";
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
const request = require ( 'request' );
/**
* @class DocEngine
* @hideconstructor
* @classdesc Get ip info for a specified IP address or requesting server IP address
* @fileOverview This is base file for credit card management
* @version 1.0.0
* @module exactIP
* @param {string} DOCENGINE_KEY - environment key
* @returns {Promise} DocEngine Object
*
*/
module.exports = class DocEngine {
/**
* @constructor
* @hideconstructor
* @param {string} DOCENGINE_KEY - environment key
* @param {object} CONFIG - options object for printing document
*/
constructor ( CONFIG, DOCENGINE_KEY ) {
this.OPTIONS = CONFIG.options;
this.HTML = CONFIG.HTML;
this.pdfName = CONFIG.pdfName;
this.DOCENGINE_KEY = DOCENGINE_KEY || process.env.DOCENGINE_KEY;
this.baseURL = (process.env.NODE_ENV === "development") ? "https://localhost:8080/docengine/" : "https://api.gogross.com/docengine/";
}
async print () {
return new Promise ( async ( resolve, reject ) => {
if ( !this.DOCENGINE_KEY ) {
reject ( "Error, missing API KEY environment variable" )
} else {
let url = this.baseURL + '?key=' + this.DOCENGINE_KEY; // signup for free at docengine.gogross.com
return request ( {
url : url,
method : 'get',
headers : {},
body : {
html : this.HTML,
pdfSettings : JSON.stringify ( this.OPTIONS ),
pdfName : this.pdfName
},
json : true
}, async function ( error, response, body ) {
if ( error ) {
reject ( error )
} else {
try {
body = JSON.parse ( body );
if ( body.hasOwnProperty ( "error" ) ) {
reject ( body )
} else {
resolve ( body )
}
} catch ( e ) {
resolve ( body )
}
}
} );
}
} )
}
};