| 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; | |
| } | |
| } |