servds / src /lib /response /FailureBody.ts
ffreemt
Update local files instead of git clone
813eca2
raw
history blame
No virus
1.1 kB
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;
}
}