81 lines
1.8 KiB
JavaScript
81 lines
1.8 KiB
JavaScript
const bodyParser = require('body-parser');
|
|
const express = require('express');
|
|
const { getErrorMessage } = require('../constants/api_constans');
|
|
|
|
const success = (res, data, msg, param = null) => {
|
|
var dataJson = data;
|
|
var data = {};
|
|
if (param != null) data[param] = dataJson;
|
|
else data = dataJson;
|
|
|
|
return res.status(200).json({
|
|
success: true,
|
|
message: msg,
|
|
data,
|
|
});
|
|
};
|
|
|
|
const failed = (res, errorCode, message = null) => {
|
|
const error = getErrorMessage(errorCode);
|
|
|
|
return res.status(error.httpCode).json({
|
|
success: false,
|
|
message: message || error.message,
|
|
error_code: errorCode,
|
|
data: null,
|
|
});
|
|
};
|
|
|
|
const pagination = (page, size) => {
|
|
let limit = null;
|
|
let offset = null;
|
|
|
|
if(page == null) page = 1;
|
|
if(size == null) size = 10;
|
|
|
|
if (page != null) {
|
|
limit = size ? +size : 5;
|
|
offset = limit ? 0 + (page - 1) * limit : null;
|
|
}
|
|
|
|
return {
|
|
limit,
|
|
offset,
|
|
};
|
|
}
|
|
|
|
function paginationResponse(model, page, limit, dataKey, resource) {
|
|
const totalItem = model.count;
|
|
const currentPage = parseInt(page);
|
|
const totalPages = Math.ceil(totalItem / limit);
|
|
|
|
return {
|
|
[dataKey]: resource,
|
|
pagination: {
|
|
total_item: totalItem,
|
|
total_page: totalPages,
|
|
current_page: currentPage,
|
|
limit: parseInt(limit),
|
|
},
|
|
};
|
|
}
|
|
|
|
const error = (res, errorCode, message = null) => {
|
|
const error = getErrorMessage(errorCode);
|
|
|
|
return res.status(error.httpCode).json({
|
|
success: false,
|
|
message: message || error.message,
|
|
error_code: errorCode,
|
|
data: null,
|
|
});
|
|
};
|
|
|
|
module.exports = {
|
|
success,
|
|
pagination,
|
|
paginationResponse,
|
|
failed,
|
|
error,
|
|
};
|