upd: api mobile

Deskripsi:
- update api mobile jam komentar pada diskusi umum dan diskusi divisi

No Issues
This commit is contained in:
2025-07-15 15:41:26 +08:00
parent ac5f90b9c1
commit ebb331f617
4 changed files with 51 additions and 59 deletions

View File

@@ -1,4 +1,4 @@
import { prisma } from "@/module/_global";
import { countTime, prisma } from "@/module/_global";
import { funGetUserById } from "@/module/auth";
import { createLogUserMobile } from "@/module/user";
import _ from "lodash";
@@ -80,7 +80,7 @@ export async function GET(request: Request, context: { params: { id: string } })
dataFix = data.map((v: any) => ({
..._.omit(v, ["createdAt", "User",]),
createdAt: moment(v.createdAt).format("lll").replace('pukul', ''),
createdAt: countTime(v.createdAt),
username: v.User.name,
img: v.User.img
}))

View File

@@ -1,4 +1,4 @@
import { prisma } from "@/module/_global";
import { countTime, prisma } from "@/module/_global";
import { funGetUserById } from "@/module/auth";
import { createLogUserMobile } from "@/module/user";
import _ from "lodash";
@@ -8,13 +8,13 @@ import { NextResponse } from "next/server";
// GET ONE DISCUSSION BY ID
export async function GET(request: Request, context: { params: { id: string } }) {
try {
const { id } = context.params
const { searchParams } = new URL(request.url);
const user = searchParams.get("user");
const cat = searchParams.get("cat");
const userMobile = await funGetUserById({ id: String(user) })
const { id } = context.params
const { searchParams } = new URL(request.url);
const user = searchParams.get("user");
const cat = searchParams.get("cat");
const userMobile = await funGetUserById({ id: String(user) })
try {
if (userMobile.id == "null" || userMobile.id == undefined || userMobile.id == "") {
return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 200 });
}
@@ -57,7 +57,7 @@ export async function GET(request: Request, context: { params: { id: string } })
..._.omit(v, ["User", "createdAt"]),
username: v.User.name,
img: v.User.img,
createdAt: moment(v.createdAt).format("ll")
createdAt: countTime(v.createdAt),
}))
return NextResponse.json({ success: true, message: "Berhasil mendapatkan komentar", data: omitMember }, { status: 200 });

View File

@@ -0,0 +1,29 @@
import moment from "moment";
import "moment/locale/id";
export function countTime(date: Date) {
const dateNow = new Date()
const diffTime = Math.abs(dateNow.getTime() - date.getTime());
let totalSeconds = Math.floor(diffTime / 1000);
const days = Math.floor(totalSeconds / (24 * 60 * 60));
totalSeconds -= days * (24 * 60 * 60);
const hours = Math.floor(totalSeconds / (60 * 60));
totalSeconds -= hours * (60 * 60);
const minutes = Math.floor(totalSeconds / 60);
totalSeconds -= minutes * 60;
const seconds = totalSeconds;
if (days > 0) {
return moment(date).format("ll")
} else if (hours > 0) {
return `${hours} jam`
} else if (minutes > 0) {
return `${minutes} mnt`
} else {
return `${seconds} detik`
}
}

View File

@@ -1,73 +1,36 @@
import prisma from "./bin/prisma";
import { currentScroll, DIR, globalNotifPage, globalRole, keyWibu, pwd_key_config, TEMA } from "./bin/val_global";
import NotificationCustome from "./components/notification_custome";
import ReloadButtonTop from "./components/reload_button_top";
import { ScrollProvider } from "./components/scroll_provider";
import SkeletonAvatar from "./components/skeleton_avatar";
import SkeletonDetailDiscussionComment from "./components/skeleton_detail_discussion_comment";
import SkeletonDetailDiscussionMember from "./components/skeleton_detail_discussion_member";
import SkeletonDetailListTugasTask from "./components/skeleton_detail_list_tugas_task";
import SkeletonDetailProfile from "./components/skeleton_detail_profile";
import SkeletonList from "./components/skeleton_list";
import SkeletonSingle from "./components/skeleton_single";
import SkeletonUser from "./components/skeleton_user";
import WrapLayout from "./components/wrap_layout";
import { funCopyFile } from "./fun/copy_file";
import { countTime } from "./fun/count_time";
import deleteDeviceError from "./fun/delete_device_error";
import { funDeleteFile } from "./fun/delete_file";
import { funReadPdf } from "./fun/read_pdf";
import { funSendWebPush } from "./fun/send_web_push";
import { funUploadFile } from "./fun/upload_file";
import { funViewDir } from "./fun/view_dir";
import { WARNA } from "./fun/WARNA";
import LayoutDrawer from "./layout/layout_drawer";
import LayoutIconBack from "./layout/layout_icon_back";
import LoadingPage from "./layout/layout_loading_page";
import LayoutLogin from "./layout/layout_login";
import LayoutModalNew from "./layout/layout_modal_new";
import LayoutModalViewFile from "./layout/layout_modal_view_file";
import LayoutNavbarHome from "./layout/layout_navbar_home";
import LayoutNavbarNew from "./layout/layout_navbar_new";
import NoZoom from "./layout/no_zoom";
import ReloadButtonTop from "./components/reload_button_top";
import ViewFilter from "./view/view_filter";
import NotificationCustome from "./components/notification_custome";
import { ScrollProvider } from "./components/scroll_provider";
import SkeletonUser from "./components/skeleton_user";
import SkeletonList from "./components/skeleton_list";
import { funViewDir } from "./fun/view_dir";
import { funSendWebPush } from "./fun/send_web_push";
import ViewFilterData from "./view/view_filter_kategori_data";
import LayoutModalNew from "./layout/layout_modal_new";
import { funReadPdf } from "./fun/read_pdf";
import deleteDeviceError from "./fun/delete_device_error";
export { WARNA };
export { LayoutLogin };
export { LayoutNavbarHome };
export { LayoutIconBack };
export { LoadingPage };
export { LayoutDrawer };
export { LayoutNavbarNew };
export { ViewFilter };
export { prisma };
export { pwd_key_config };
export { SkeletonSingle }
export { SkeletonDetailDiscussionComment }
export { SkeletonDetailDiscussionMember }
export { SkeletonDetailProfile }
export { SkeletonDetailListTugasTask }
export { LayoutModalViewFile }
export { globalRole }
export { WrapLayout }
export { NoZoom }
export { funUploadFile }
export { funDeleteFile }
export { DIR }
export { TEMA }
export { funCopyFile }
export { globalNotifPage }
export { SkeletonAvatar }
export { ReloadButtonTop }
export { NotificationCustome }
export { ScrollProvider }
export { currentScroll }
export { SkeletonUser }
export { SkeletonList }
export { keyWibu }
export { funViewDir }
export { funSendWebPush }
export { ViewFilterData }
export { LayoutModalNew }
export { funReadPdf }
export { deleteDeviceError }
export { countTime, currentScroll, deleteDeviceError, DIR, funCopyFile, funDeleteFile, funReadPdf, funSendWebPush, funUploadFile, funViewDir, globalNotifPage, globalRole, keyWibu, LayoutDrawer, LayoutIconBack, LayoutLogin, LayoutModalNew, LayoutModalViewFile, LayoutNavbarHome, LayoutNavbarNew, LoadingPage, NotificationCustome, NoZoom, prisma, pwd_key_config, ReloadButtonTop, ScrollProvider, SkeletonAvatar, SkeletonDetailDiscussionComment, SkeletonDetailDiscussionMember, SkeletonDetailListTugasTask, SkeletonDetailProfile, SkeletonList, SkeletonSingle, SkeletonUser, TEMA, ViewFilter, ViewFilterData, WARNA, WrapLayout };