created API For Aplication Absensi

This commit is contained in:
2025-10-14 14:08:11 +07:00
commit 96d206d892
56 changed files with 6533 additions and 0 deletions

View File

@@ -0,0 +1,118 @@
const bodyParser = require("body-parser");
const express = require("express");
const { getErrorMessage } = require("../constants/api_constans.js");
const success = (data, msg, param = null) => {
var dataJson = data;
var data = {};
if (param != null) data[param] = dataJson;
else data = dataJson;
return {
success: true,
message: msg,
data,
};
};
const succes = (res, data, msg, param) => {
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 error = (res, errorCode, code, message = null) => {
var errorMessage = getErrorMessage(errorCode);
return res.status(code).json({
success: false,
message: message ?? errorMessage,
error_code: errorCode,
data: null,
});
};
const failed = (errorCode, message = null) => {
var errorMessage = getErrorMessage(errorCode);
return {
success: false,
message: message ?? errorMessage,
error_code: errorCode,
data: null,
};
};
const pagination = (page, size) => {
let limit = null;
let offset = null;
if (page != null) {
limit = size ? +size : 5;
offset = limit ? 0 + (page - 1) * limit : null;
}
return {
limit,
offset,
};
};
const pagingData = (data) => {
const { count: totalItems, rows: items } = data;
return items;
};
const pagingInfo = (data, page, limit) => {
const { count: totalItems, rows: items } = data;
const currentPage = page ? +page : 0;
const totalPages = Math.ceil(totalItems / limit);
const pageSize = +limit;
return {
page: currentPage,
per_page: pageSize,
total: totalItems,
total_pages: totalPages,
};
};
const paginationResponse = (data, page, limit = 5, key) => {
const response = {};
if (page != null) {
const items = pagingData(data);
const paginate = pagingInfo(data, page, limit);
response[key] = items;
if (paginate != null) response["pagination"] = paginate;
} else {
const items = pagingData(data);
response[key] = items;
}
return response;
};
const json = (res, data) => {
var statusCode = data.success == true ? 200 : 500;
return res.status(statusCode).json(data);
};
module.exports = {
success,
succes,
error,
pagination,
pagingData,
pagingInfo,
paginationResponse,
failed,
json,
};