| import _ from 'lodash'; |
|
|
| import Body from './Body.ts'; |
| import Exception from '../exceptions/Exception.ts'; |
| import APIException from '../exceptions/APIException.ts'; |
| import EX from '../consts/exceptions.ts'; |
| import HTTP_STATUS_CODES from '../http-status-codes.ts'; |
|
|
| export default class FailureBody extends Body { |
| |
| constructor(error: APIException | Exception | Error, _data?: any) { |
| let errcode, errmsg, data = _data, httpStatusCode = HTTP_STATUS_CODES.OK;; |
| if(_.isString(error)) |
| error = new Exception(EX.SYSTEM_ERROR, error); |
| else if(error instanceof APIException || error instanceof Exception) |
| ({ errcode, errmsg, data, httpStatusCode } = error); |
| else if(_.isError(error)) |
| ({ errcode, errmsg, data, httpStatusCode } = new Exception(EX.SYSTEM_ERROR, error.message)); |
| super({ |
| code: errcode || -1, |
| message: errmsg || 'Internal error', |
| data, |
| statusCode: httpStatusCode |
| }); |
| } |
|
|
| static isInstance(value) { |
| return value instanceof FailureBody; |
| } |
|
|
| } |