upd: api mobile
Deskripsi: - update api mobile jam komentar pada diskusi umum dan diskusi divisi No Issues
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { prisma } from "@/module/_global";
|
import { countTime, prisma } from "@/module/_global";
|
||||||
import { funGetUserById } from "@/module/auth";
|
import { funGetUserById } from "@/module/auth";
|
||||||
import { createLogUserMobile } from "@/module/user";
|
import { createLogUserMobile } from "@/module/user";
|
||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
@@ -80,7 +80,7 @@ export async function GET(request: Request, context: { params: { id: string } })
|
|||||||
|
|
||||||
dataFix = data.map((v: any) => ({
|
dataFix = data.map((v: any) => ({
|
||||||
..._.omit(v, ["createdAt", "User",]),
|
..._.omit(v, ["createdAt", "User",]),
|
||||||
createdAt: moment(v.createdAt).format("lll").replace('pukul', ''),
|
createdAt: countTime(v.createdAt),
|
||||||
username: v.User.name,
|
username: v.User.name,
|
||||||
img: v.User.img
|
img: v.User.img
|
||||||
}))
|
}))
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { prisma } from "@/module/_global";
|
import { countTime, prisma } from "@/module/_global";
|
||||||
import { funGetUserById } from "@/module/auth";
|
import { funGetUserById } from "@/module/auth";
|
||||||
import { createLogUserMobile } from "@/module/user";
|
import { createLogUserMobile } from "@/module/user";
|
||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
@@ -8,13 +8,13 @@ import { NextResponse } from "next/server";
|
|||||||
|
|
||||||
// GET ONE DISCUSSION BY ID
|
// GET ONE DISCUSSION BY ID
|
||||||
export async function GET(request: Request, context: { params: { id: string } }) {
|
export async function GET(request: Request, context: { params: { id: string } }) {
|
||||||
try {
|
const { id } = context.params
|
||||||
const { id } = context.params
|
const { searchParams } = new URL(request.url);
|
||||||
const { searchParams } = new URL(request.url);
|
const user = searchParams.get("user");
|
||||||
const user = searchParams.get("user");
|
const cat = searchParams.get("cat");
|
||||||
const cat = searchParams.get("cat");
|
const userMobile = await funGetUserById({ id: String(user) })
|
||||||
const userMobile = await funGetUserById({ id: String(user) })
|
|
||||||
|
|
||||||
|
try {
|
||||||
if (userMobile.id == "null" || userMobile.id == undefined || userMobile.id == "") {
|
if (userMobile.id == "null" || userMobile.id == undefined || userMobile.id == "") {
|
||||||
return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 200 });
|
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"]),
|
..._.omit(v, ["User", "createdAt"]),
|
||||||
username: v.User.name,
|
username: v.User.name,
|
||||||
img: v.User.img,
|
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 });
|
return NextResponse.json({ success: true, message: "Berhasil mendapatkan komentar", data: omitMember }, { status: 200 });
|
||||||
|
|||||||
29
src/module/_global/fun/count_time.ts
Normal file
29
src/module/_global/fun/count_time.ts
Normal 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`
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,73 +1,36 @@
|
|||||||
import prisma from "./bin/prisma";
|
import prisma from "./bin/prisma";
|
||||||
import { currentScroll, DIR, globalNotifPage, globalRole, keyWibu, pwd_key_config, TEMA } from "./bin/val_global";
|
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 SkeletonAvatar from "./components/skeleton_avatar";
|
||||||
import SkeletonDetailDiscussionComment from "./components/skeleton_detail_discussion_comment";
|
import SkeletonDetailDiscussionComment from "./components/skeleton_detail_discussion_comment";
|
||||||
import SkeletonDetailDiscussionMember from "./components/skeleton_detail_discussion_member";
|
import SkeletonDetailDiscussionMember from "./components/skeleton_detail_discussion_member";
|
||||||
import SkeletonDetailListTugasTask from "./components/skeleton_detail_list_tugas_task";
|
import SkeletonDetailListTugasTask from "./components/skeleton_detail_list_tugas_task";
|
||||||
import SkeletonDetailProfile from "./components/skeleton_detail_profile";
|
import SkeletonDetailProfile from "./components/skeleton_detail_profile";
|
||||||
|
import SkeletonList from "./components/skeleton_list";
|
||||||
import SkeletonSingle from "./components/skeleton_single";
|
import SkeletonSingle from "./components/skeleton_single";
|
||||||
|
import SkeletonUser from "./components/skeleton_user";
|
||||||
import WrapLayout from "./components/wrap_layout";
|
import WrapLayout from "./components/wrap_layout";
|
||||||
import { funCopyFile } from "./fun/copy_file";
|
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 { 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 { funUploadFile } from "./fun/upload_file";
|
||||||
|
import { funViewDir } from "./fun/view_dir";
|
||||||
import { WARNA } from "./fun/WARNA";
|
import { WARNA } from "./fun/WARNA";
|
||||||
import LayoutDrawer from "./layout/layout_drawer";
|
import LayoutDrawer from "./layout/layout_drawer";
|
||||||
import LayoutIconBack from "./layout/layout_icon_back";
|
import LayoutIconBack from "./layout/layout_icon_back";
|
||||||
import LoadingPage from "./layout/layout_loading_page";
|
import LoadingPage from "./layout/layout_loading_page";
|
||||||
import LayoutLogin from "./layout/layout_login";
|
import LayoutLogin from "./layout/layout_login";
|
||||||
|
import LayoutModalNew from "./layout/layout_modal_new";
|
||||||
import LayoutModalViewFile from "./layout/layout_modal_view_file";
|
import LayoutModalViewFile from "./layout/layout_modal_view_file";
|
||||||
import LayoutNavbarHome from "./layout/layout_navbar_home";
|
import LayoutNavbarHome from "./layout/layout_navbar_home";
|
||||||
import LayoutNavbarNew from "./layout/layout_navbar_new";
|
import LayoutNavbarNew from "./layout/layout_navbar_new";
|
||||||
import NoZoom from "./layout/no_zoom";
|
import NoZoom from "./layout/no_zoom";
|
||||||
import ReloadButtonTop from "./components/reload_button_top";
|
|
||||||
import ViewFilter from "./view/view_filter";
|
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 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 { 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 };
|
||||||
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 }
|
|
||||||
|
|||||||
Reference in New Issue
Block a user