[feat] Init code
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
/* eslint-disable no-underscore-dangle */
|
||||
/**
|
||||
* @exports
|
||||
* @typedef {Object} codeMessage
|
||||
* @prop {number} code
|
||||
* @prop {string} message
|
||||
*/
|
||||
/**
|
||||
* @exports
|
||||
* @typedef {Object} respObject
|
||||
* @prop {number} status
|
||||
* @prop {codeMessage} object
|
||||
*/
|
||||
|
||||
/**
|
||||
* create respobject
|
||||
* @param {number} status
|
||||
* @param {codeMessage} codeMsg
|
||||
*/
|
||||
|
||||
const mod = {};
|
||||
module.exports = mod;
|
||||
|
||||
mod.respDefault = (status = 200, codeMsg) => ({ status, object: codeMsg });
|
||||
|
||||
mod.APIError = class extends Error {
|
||||
/**
|
||||
* @param {string} message
|
||||
* @param {respObject} resp
|
||||
*/
|
||||
constructor(message = '', resp) {
|
||||
super(message);
|
||||
this._object = resp || {};
|
||||
}
|
||||
|
||||
get object() {
|
||||
return this._object;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* check response object struct
|
||||
* @param {respObject} v
|
||||
*/
|
||||
mod.checkStruct = v => {
|
||||
if (typeof v !== 'object' || v === null || v === undefined) return false;
|
||||
if (!('status' in v) || !('object' in v)) return false;
|
||||
if (typeof v.object !== 'object' || !('code' in v.object) || !('message' in v.object)) return false;
|
||||
return true;
|
||||
};
|
||||
|
||||
mod.codeMessage = {
|
||||
CodeSuccess: { code: 1000, message: 'success' },
|
||||
CodeCreated: { code: 1001, message: 'created' },
|
||||
CodeAccepted: { code: 1002, message: 'accepted' },
|
||||
CodeDataFormat: { code: 1003, message: 'data format error' },
|
||||
CodeUnauthorized: { code: 1004, message: 'unauthorized' },
|
||||
CodeForbidden: { code: 1005, message: 'forbidden' },
|
||||
CodeNotFound: { code: 1006, message: 'not found' },
|
||||
CodeInternalError: { code: 1007, message: 'internal error' },
|
||||
};
|
||||
|
||||
mod.resp = {
|
||||
Success: mod.respDefault(200, mod.codeMessage.CodeSuccess),
|
||||
Created: mod.respDefault(201, mod.codeMessage.CodeCreated),
|
||||
Accepted: mod.respDefault(202, mod.codeMessage.CodeAccepted),
|
||||
DataFormat: mod.respDefault(400, mod.codeMessage.CodeDataFormat),
|
||||
Unauthorized: mod.respDefault(401, mod.codeMessage.CodeUnauthorized),
|
||||
Forbidden: mod.respDefault(403, mod.codeMessage.CodeForbidden),
|
||||
NotFound: mod.respDefault(404, mod.codeMessage.CodeNotFound),
|
||||
InternalError: mod.respDefault(500, mod.codeMessage.CodeInternalError),
|
||||
};
|
||||
Reference in New Issue
Block a user