Merge pull request #416 from bipproduction/amalia/08-apr-25

Amalia/08 apr 25
This commit is contained in:
Amalia
2025-04-08 15:10:05 +08:00
committed by GitHub
6 changed files with 43 additions and 33 deletions

View File

@@ -1,5 +1,5 @@
import { prisma } from "@/module/_global";
import { funGetUserByCookies } from "@/module/auth";
import { funGetUserByCookies, funSetCookies } from "@/module/auth";
import _ from "lodash";
import moment from "moment";
import "moment/locale/id";
@@ -14,30 +14,42 @@ export async function GET(request: Request) {
return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 401 });
}
if (user.showNotification == true) {
const announcements = await prisma.notifications.findMany({
skip: 0,
take: 1,
where: {
isActive: true,
idUserTo: user.id,
isRead: false,
category: 'announcement'
},
orderBy: [
{
createdAt: 'desc'
}
]
const announcements = await prisma.notifications.findMany({
skip: 0,
take: 1,
where: {
isActive: true,
idUserTo: user.id,
isRead: false,
category: 'announcement'
},
orderBy: [
{
createdAt: 'desc'
}
]
});
const allData = announcements.map((v: any) => ({
..._.omit(v, ["createdAt"]),
createdAt: moment(v.createdAt).format("ll")
}))
await funSetCookies({ user: user.id, showNotification: false })
if (announcements.length > 0) {
return NextResponse.json({ show: true, message: "Berhasil mendapatkan notifikasi", data: allData }, { status: 200 });
} else {
return NextResponse.json({ show: false, message: "Tidak ada notifikasi pengumuman" }, { status: 200 });
}
} else {
return NextResponse.json({ show: false, message: "Notifikasi telah tampil" }, { status: 200 });
}
});
const allData = announcements.map((v: any) => ({
..._.omit(v, ["createdAt"]),
createdAt: moment(v.createdAt).format("ll")
}))
return NextResponse.json({ success: true, message: "Berhasil mendapatkan notifikasi", data: allData, }, { status: 200 });
} catch (error) {
console.error(error);
return NextResponse.json({ success: false, message: "Gagal mendapatkan notifikasi, coba lagi nanti (error: 500)", reason: (error as Error).message, }, { status: 500 });

View File

@@ -2,7 +2,7 @@ import { NextResponse } from "next/server";
export async function GET(request: Request) {
try {
return NextResponse.json({ success: true, version: "1.2.6", tahap: "beta", update: "-fix categori notifikasi diskusi umum" }, { status: 200 });
return NextResponse.json({ success: true, version: "1.3.0", tahap: "beta", update: "update baru : menampilkan notifikasi pengumuman setelah login" }, { status: 200 });
} catch (error) {
console.error(error);
return NextResponse.json({ success: false, version: "Gagal mendapatkan version, coba lagi nanti (error: 500)", reason: (error as Error).message, }, { status: 500 });

View File

@@ -6,13 +6,13 @@ import { cookies } from "next/headers";
export default async function funGetUserByCookies() {
const sessionCookie = cookies().get("sessionCookieSDM");
const userId = await unsealData(sessionCookie!.value, {
const userId : any = await unsealData(sessionCookie!.value, {
password: pwd_key_config,
});
const user = await prisma.user.findUnique({
where: {
id: String(userId),
id: userId.user ? String(userId.user) : String(userId),
},
});
@@ -35,6 +35,7 @@ export default async function funGetUserByCookies() {
idVillage: user?.idVillage,
idGroup: user?.idGroup,
idPosition: user?.idPosition,
theme: warna
theme: warna,
showNotification: userId?.showNotification
};
}

View File

@@ -4,9 +4,9 @@ import { cookies } from "next/headers";
import { prisma, pwd_key_config } from "@/module/_global";
import { createLogUser } from "@/module/user";
export default async function funSetCookies({ user }: { user: string }) {
export default async function funSetCookies({ user, showNotification }: { user: string, showNotification: boolean }) {
try {
const encryptedUserData = await sealData(user, { password: pwd_key_config });
const encryptedUserData = await sealData({user, showNotification}, { password: pwd_key_config });
// data user
const dataUser = await prisma.user.findUnique({

View File

@@ -37,7 +37,7 @@ export default function ViewVerification({ phone, otp, user }: IVerification) {
async function getVerification() {
setLoading(true)
if (isOTP == inputOTP) {
const setCookies: any = await funSetCookies({ user: user })
const setCookies: any = await funSetCookies({ user: user, showNotification: true })
if (setCookies.success) {
toast.success(setCookies.message)

View File

@@ -15,15 +15,12 @@ export default function NotificationAnnouncement() {
async function fetchData() {
try {
const res = await funGetOneNotificationAnnouncement();
if (res.success) {
if (res.show) {
setTampilNotif(true)
setData(res.data);
} else {
toast.error(res.message);
setData(res.data)
}
} catch (error) {
console.error(error);
toast.error("Gagal memuat data, coba lagi nanti");
} finally {
setTimeout(() => {
setTampilNotif(false);