@sauce-api/core
Version:
Sauce API core functionality
69 lines (68 loc) • 2.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatErrorResponse = exports.formatArrayResponse = exports.formatPaginatedResponse = exports.formatObjectResponse = exports.Responses = void 0;
class Responses {
constructor(res) {
this.res = res;
}
responseText(code, data) {
this.res.status(code).send(data);
}
responseObject(code, data) {
this.res.status(code).json((0, exports.formatObjectResponse)(200, data));
}
responsePaginated(code, paginatedData) {
this.res.status(code).json((0, exports.formatPaginatedResponse)(code, paginatedData));
}
responseArray(code, data) {
this.res.status(code).json((0, exports.formatArrayResponse)(code, data));
}
badRequest(data, options) {
const code = 400;
this.res.status(code).json((0, exports.formatErrorResponse)(code, "Bad Request", data));
}
serverError(data, options) {
const code = 500;
this.res.status(code).json((0, exports.formatErrorResponse)(code, "Internal Server Error", data));
}
notFound(data, options) {
const code = 404;
this.res.status(code).json((0, exports.formatErrorResponse)(code, "Not Found", data));
}
unauthorized(data, options) {
const code = 401;
this.res.status(code).json((0, exports.formatErrorResponse)(code, "Unauthorized", data));
}
}
exports.Responses = Responses;
const formatObjectResponse = (code, data) => {
return {
response: data,
code
};
};
exports.formatObjectResponse = formatObjectResponse;
const formatPaginatedResponse = (code, paginatedData) => {
return {
response: paginatedData.data,
page: paginatedData.page,
code
};
};
exports.formatPaginatedResponse = formatPaginatedResponse;
const formatArrayResponse = (code, data) => {
return {
response: data,
code
};
};
exports.formatArrayResponse = formatArrayResponse;
const formatErrorResponse = (code, error, errorDescription) => {
return {
response: {},
code,
error,
error_description: errorDescription || ""
};
};
exports.formatErrorResponse = formatErrorResponse;