1 |
|
2 | var Response, _, contentDisposition, xml2js;
|
3 |
|
4 | contentDisposition = require('content-disposition');
|
5 |
|
6 | xml2js = require("xml2js");
|
7 |
|
8 | _ = require('underscore');
|
9 |
|
10 | Response = (function() {
|
11 | class Response {
|
12 |
|
13 | constructor(_response) {
|
14 | this._response = _response;
|
15 | if (this._response === void 0) {
|
16 | throw new Error('Requires response');
|
17 | }
|
18 | return;
|
19 | }
|
20 |
|
21 | isError() {
|
22 | if (this.code !== null) {
|
23 | return true;
|
24 | }
|
25 | return false;
|
26 | }
|
27 |
|
28 | parseFile(buffer, cb) {
|
29 | var disposition, filename;
|
30 | if (!buffer && Buffer.isBuffer(buffer)) {
|
31 | throw new Error('Requires buffer');
|
32 | }
|
33 | if (!cb) {
|
34 | throw new Error('Requires callback');
|
35 | }
|
36 | disposition = contentDisposition.parse(this._response.headers['content-disposition']);
|
37 | filename = disposition.parameters.filename;
|
38 | this._data = this.data = {
|
39 | filename: filename,
|
40 | buffer: buffer
|
41 | };
|
42 | return cb(null, this);
|
43 | }
|
44 |
|
45 | parseBody(body, cb) {
|
46 | if (!body) {
|
47 | throw new Error('Requires body');
|
48 | }
|
49 | if (!cb) {
|
50 | throw new Error('Requires callback');
|
51 | }
|
52 | this._data = body;
|
53 | return xml2js.parseString(this._data, (err, data) => {
|
54 | var error, record, ref, ref1, ref10, ref11, ref12, ref13, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, success;
|
55 | if (err) {
|
56 | return cb(err, null);
|
57 | } else {
|
58 | this.data = data;
|
59 | if ((ref = this.data) != null ? (ref1 = ref.response) != null ? ref1.error : void 0 : void 0) {
|
60 | error = this.data.response.error;
|
61 | if (_.isArray(error)) {
|
62 | error = _.first(error);
|
63 | }
|
64 | if (error != null ? error.code : void 0) {
|
65 | this.code = error.code;
|
66 | }
|
67 | if (error != null ? error.message : void 0) {
|
68 | this.message = error.message;
|
69 | } else {
|
70 | this.message = "Unknown Error";
|
71 | }
|
72 | return cb({
|
73 | code: this.code,
|
74 | message: this.message
|
75 | }, this);
|
76 | } else if ((ref2 = this.data) != null ? (ref3 = ref2.response) != null ? ref3.nodata : void 0 : void 0) {
|
77 | error = this.data.response.nodata;
|
78 | if (_.isArray(error)) {
|
79 | error = _.first(error);
|
80 | }
|
81 | if (error != null ? error.code : void 0) {
|
82 | this.code = error.code;
|
83 | if (_.isArray(this.code)) {
|
84 | this.code = _.first(this.code);
|
85 | }
|
86 | }
|
87 | if (error != null ? error.message : void 0) {
|
88 | this.message = error.message;
|
89 | if (_.isArray(this.message)) {
|
90 | this.message = _.first(this.message);
|
91 | }
|
92 | } else {
|
93 | this.message = "Unknown Error";
|
94 | }
|
95 | return cb(null, this);
|
96 | } else {
|
97 | if ((ref4 = this.data) != null ? (ref5 = ref4.response) != null ? ref5.result : void 0 : void 0) {
|
98 | if (_.isArray((ref6 = this.data) != null ? (ref7 = ref6.response) != null ? ref7.result : void 0 : void 0) && ((ref8 = this.data) != null ? (ref9 = ref8.response) != null ? ref9.result.length : void 0 : void 0) === 1) {
|
99 | record = _.first((ref10 = this.data) != null ? (ref11 = ref10.response) != null ? ref11.result : void 0 : void 0);
|
100 | if (record != null ? record.message : void 0) {
|
101 | this.message = record.message;
|
102 | }
|
103 | if (record != null ? record.recorddetail : void 0) {
|
104 | this.data = record.recorddetail;
|
105 | } else {
|
106 | this.data = record;
|
107 | }
|
108 | } else {
|
109 | return cb(new Error("Multi result arrays not handled"), this);
|
110 | }
|
111 | } else if ((ref12 = this.data) != null ? (ref13 = ref12.response) != null ? ref13.success : void 0 : void 0) {
|
112 | success = this.data.response.success;
|
113 | if (_.isArray(success)) {
|
114 | success = _.first(success);
|
115 | }
|
116 | if (success != null ? success.code : void 0) {
|
117 | this.code = success.code;
|
118 | if (_.isArray(this.code)) {
|
119 | this.code = _.first(this.code);
|
120 | }
|
121 | }
|
122 | if (success != null ? success.message : void 0) {
|
123 | this.message = success.message;
|
124 | if (_.isArray(this.message)) {
|
125 | this.message = _.first(this.message);
|
126 | }
|
127 | } else {
|
128 | this.message = "Unknown Success";
|
129 | }
|
130 | this.data = {
|
131 | 'success': {
|
132 | 'code': this.code,
|
133 | 'message': this.message
|
134 | }
|
135 | };
|
136 | }
|
137 | return cb(null, this);
|
138 | }
|
139 | }
|
140 | });
|
141 | }
|
142 |
|
143 | };
|
144 |
|
145 |
|
146 | Response.prototype.message = null;
|
147 |
|
148 | Response.prototype.type = null;
|
149 |
|
150 | Response.prototype.data = null;
|
151 |
|
152 | Response.prototype.code = null;
|
153 |
|
154 | Response.prototype._response = null;
|
155 |
|
156 | Response.prototype._data = null;
|
157 |
|
158 | return Response;
|
159 |
|
160 | }).call(this);
|
161 |
|
162 | module.exports = Response;
|