1 | import httpCodes from './httpCodes';
|
2 |
|
3 | export default class Response {
|
4 |
|
5 | res;
|
6 |
|
7 | constructor(response) {
|
8 | this.res = response;
|
9 |
|
10 | return (obj) => {
|
11 | let {code, error, data} = obj, {res} = this;
|
12 |
|
13 | if (code) res.statusCode = code;
|
14 |
|
15 | res.statusMessage = httpCodes[`http_${res.statusCode}`] || res.statusMessage;
|
16 |
|
17 | if (error && code) return res.end(JSON.stringify({ error: error, code: res.statusCode }));
|
18 | else if (error && !code) {
|
19 | throw new Error('response: "error" must sending with "code"');
|
20 | }
|
21 |
|
22 | if (res.statusCode >= 400 && res.statusCode <= 511) return res.end({ error: res.statusMessage, code: res.statusCode });
|
23 |
|
24 | if (data) return res.end(JSON.stringify({ data: data, code: res.statusCode, message: res.statusMessage }));
|
25 |
|
26 | res.end();
|
27 | }
|
28 | }
|
29 |
|
30 | }
|