1 | var request = require('request')
|
2 | var Ajv = require('ajv')
|
3 | var ajv = new Ajv({allErrors: true})
|
4 |
|
5 | var Communication = function() {}
|
6 |
|
7 | var schema = {
|
8 | type: 'object',
|
9 | required: ['adminclass', 'shopID', 'domain', 'url'],
|
10 | properties: {
|
11 | adminclass: {type: 'string'},
|
12 | shopID: {type: 'string'},
|
13 | domain: {type: 'string'},
|
14 | url: {type: 'string'},
|
15 | body: {type: 'object'}
|
16 | }
|
17 | }
|
18 |
|
19 | Communication.prototype.sendGETRequest = function(object) {
|
20 | return new Promise(function(resolve, reject) {
|
21 | var valid = ajv.validate(schema, object)
|
22 | if(process.env.AJV_ERROR_LOG == 'true') console.developer.log(ajv.errors)
|
23 | if(valid) {
|
24 | let URL = `${object.domain}/Request/outer/${object.url}`
|
25 | request.get({
|
26 | url: URL,
|
27 | headers: {
|
28 | authorization: `Bearer ${object.adminclass}`,
|
29 | 'x-shopid': object.shopID || 'null'
|
30 | }
|
31 | }, function(err, res, body) {
|
32 | if(err) reject({func: '@sendAPIRequest', lCode: '-E1', type:'request-error', msg: 'Hiba történt a lekérés futása közben!'})
|
33 | else {
|
34 | try {
|
35 | body = JSON.parse(body)
|
36 | resolve(body)
|
37 | } catch(e) {
|
38 | reject({func: '@sendAPIRequest', lCode: '-E2', type:'parse-error', msg: 'Hiba történt a válasz feldolgozása közben!'})
|
39 | }
|
40 | }
|
41 | })
|
42 | }
|
43 | else {
|
44 | reject({func: '@sendAPIRequest', lCode: '-E3', type:'data-error', msg: 'Hibás adatokat adott meg!'})
|
45 | }
|
46 | })
|
47 | }
|
48 |
|
49 | Communication.prototype.sendPOSTRequest = function(object) {
|
50 | return new Promise(function(resolve, reject) {
|
51 | var valid = ajv.validate(schema, object)
|
52 | if(process.env.AJV_ERROR_LOG == 'true') console.developer.log(ajv.errors)
|
53 | if(valid) {
|
54 | let URL = `${object.domain}/Request/outer/${object.url}`
|
55 | request.post({
|
56 | url: URL,
|
57 | headers: {
|
58 | authorization: `Bearer ${object.adminclass}`,
|
59 | 'x-shopid': object.shopID || 'null'
|
60 | },
|
61 | form: object.body || {}
|
62 | }, function(err, res, body) {
|
63 | if(err) reject({func: '@sendAPIRequest', lCode: '-E1', type:'request-error', msg: 'Hiba történt a lekérés futása közben!'})
|
64 | else {
|
65 | try {
|
66 | body = JSON.parse(body)
|
67 | resolve(body)
|
68 | } catch(e) {
|
69 | reject({func: '@sendAPIRequest', lCode: '-E2', type:'parse-error', msg: 'Hiba történt a válasz feldolgozása közben!'})
|
70 | }
|
71 | }
|
72 | })
|
73 | }
|
74 | else {
|
75 | reject({func: '@sendPOSTRequest', lCode: '-E3', type:'data-error', msg: 'Hibás adatokat adott meg!'})
|
76 | }
|
77 | })
|
78 | }
|
79 |
|
80 | module.exports = Communication |
\ | No newline at end of file |