fix lib
deskripsi: - pindah lib di dalam app ke src ( lib setara app dan app_modules )
This commit is contained in:
20
src/lib/APIs.ts
Normal file
20
src/lib/APIs.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
const APIs = {
|
||||
/**
|
||||
*
|
||||
* @param fileId | file id from wibu storage , atau bisa disimpan di DB
|
||||
* @param size | file size 10 - 1000 , tergantung ukuran file dan kebutuhan saar di tampilkan
|
||||
* @type {string}
|
||||
*/
|
||||
GET: ({ fileId, size }: { fileId: string; size?: string }) =>
|
||||
size
|
||||
? `https://wibu-storage.wibudev.com/api/files/${fileId}-size-${size}`
|
||||
: `https://wibu-storage.wibudev.com/api/files/${fileId}`,
|
||||
|
||||
/**
|
||||
* @type {string}
|
||||
* @returns alamat API dari wibu storage
|
||||
*/
|
||||
GET_NO_PARAMS: "https://wibu-storage.wibudev.com/api/files/"
|
||||
};
|
||||
|
||||
export default APIs;
|
||||
10
src/lib/api_user_router/route_api_event.ts
Normal file
10
src/lib/api_user_router/route_api_event.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
export const API_RouteEvent = {
|
||||
get_all: ({ page }: { page: number }) => `/api/event/get-all?page=${page}`,
|
||||
get_one_by_id: ({ eventId }: { eventId: string }) =>
|
||||
`/api/event/get-one-by-id?eventId=${eventId}`,
|
||||
check_kehadiran: ({ eventId, userId }: { eventId: string; userId: string }) =>
|
||||
`/api/event/check-kehadiran?eventId=${eventId}&userId=${userId}`,
|
||||
check_peserta: ({ eventId, userId }: { eventId: string; userId: string }) =>
|
||||
`/api/event/check-peserta?eventId=${eventId}&userId=${userId}`,
|
||||
list_peserta: ({ eventId, page }: { eventId: string, page: number }) => `/api/event/list-peserta?eventId=${eventId}&page=${page}`,
|
||||
};
|
||||
4
src/lib/api_user_router/route_api_job.ts
Normal file
4
src/lib/api_user_router/route_api_job.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export const API_RouteJob = {
|
||||
get_all: ({ page, search }: { page: number; search?: string }) =>
|
||||
`/api/job/get-all?page=${page}&search=${search || ""}`,
|
||||
};
|
||||
15
src/lib/api_user_router/route_api_notifikasi.ts
Normal file
15
src/lib/api_user_router/route_api_notifikasi.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { ICategoryapp } from "@/app_modules/notifikasi/model/interface";
|
||||
|
||||
export const API_RouteNotifikasi = {
|
||||
get_all_by_category: ({
|
||||
category,
|
||||
page,
|
||||
}: {
|
||||
category: ICategoryapp;
|
||||
page: number;
|
||||
}) => `/api/notifikasi/get-all-by-category?category=${category}&page=${page}`,
|
||||
|
||||
get_master_kategori: () => `/api/notifikasi/master`,
|
||||
|
||||
get_count_by_id: () => `/api/notifikasi/count`,
|
||||
};
|
||||
69
src/lib/global_state.ts
Normal file
69
src/lib/global_state.ts
Normal file
@@ -0,0 +1,69 @@
|
||||
import { atom } from "jotai";
|
||||
|
||||
/**
|
||||
* @param status | status jika perlu acc admin > "Publish", "Review", "Draft", "Reject"
|
||||
* @param status | khusus kategori | EVENT > "Peserta Event" | VOTING > "Voting Masuk" | DONASI > "Berhasil", "Proses", "Menunggu", "Gagal"
|
||||
*/
|
||||
export type ITypeStatusNotifikasi =
|
||||
| "Publish"
|
||||
| "Review"
|
||||
| "Draft"
|
||||
| "Reject"
|
||||
// EVENT
|
||||
| "Peserta Event"
|
||||
// VOTING
|
||||
| "Voting Masuk"
|
||||
// DONASI & INVESTASI
|
||||
| "Berhasil"
|
||||
| "Proses"
|
||||
| "Menunggu"
|
||||
| "Gagal";
|
||||
|
||||
/**
|
||||
* @param kategoriApp | "JOB", "VOTING", "EVENT", "DONASI", "INVESTASI", "COLLABORATION", "FORUM"
|
||||
* @type string
|
||||
*/
|
||||
export type IRealtimeData = {
|
||||
status?: ITypeStatusNotifikasi;
|
||||
appId?: string;
|
||||
userId: string;
|
||||
pesan?: string;
|
||||
title?: string;
|
||||
kategoriApp?:
|
||||
| "JOB"
|
||||
| "VOTING"
|
||||
| "EVENT"
|
||||
| "DONASI"
|
||||
| "INVESTASI"
|
||||
| "COLLABORATION"
|
||||
| "FORUM"
|
||||
| "ACCESS"; // Untuk trigger akses user
|
||||
};
|
||||
|
||||
// Access User
|
||||
export const gs_access_user = atom<boolean>(false);
|
||||
|
||||
export const gs_realtimeData = atom<IRealtimeData | null>(null);
|
||||
export const gs_admin_ntf = atom<number>(0);
|
||||
export const gs_user_ntf = atom<number>(0);
|
||||
export const gs_count_ntf = atom<number | null>(null);
|
||||
|
||||
// job
|
||||
export const gs_adminJob_triggerReview = atom<boolean>(false);
|
||||
export const gs_jobTiggerBeranda = atom<boolean>(false);
|
||||
|
||||
// event
|
||||
export const gs_adminEvent_triggerReview = atom<boolean>(false);
|
||||
export const gs_eventTriggerBeranda = atom<boolean>(false);
|
||||
|
||||
// voting
|
||||
export const gs_adminVoting_triggerReview = atom<boolean>(false);
|
||||
export const gs_votingTiggerBeranda = atom<boolean>(false);
|
||||
|
||||
// donasi
|
||||
export const gs_adminDonasi_triggerReview = atom<boolean>(false);
|
||||
export const gs_donasiTriggerBeranda = atom<boolean>(false);
|
||||
|
||||
// investasi
|
||||
export const gs_adminInvestasi_triggerReview = atom<boolean>(false);
|
||||
export const gs_investasiTriggerBeranda = atom<boolean>(false);
|
||||
30
src/lib/id-derectory.ts
Normal file
30
src/lib/id-derectory.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
const DIRECTORY_ID = {
|
||||
profile_foto: "cm0x93rgo000jbp5tj8baoaus",
|
||||
profile_background: "cm0x93ze8000lbp5t1a8uc9wl",
|
||||
portofolio_logo: "cm0yjl6ug000310njwmk6j0tx",
|
||||
map_pin: "cm0yjq8up000710njv5klra32",
|
||||
map_image: "cm0yjqnxl000910njplqho07w",
|
||||
|
||||
// Investasi
|
||||
investasi_image: "cm0yjs35h000b10njb35o12h1",
|
||||
investasi_bukti_transfer: "cm0yjsflu000d10njrc3lnqho",
|
||||
investasi_prospektus: "cm1soio74003p38bjyciwf1oy",
|
||||
investasi_dokumen: "cm21g2hxw004d10dpx8j16tt7",
|
||||
investasi_berita: "cm21g2yzc004f10dpbtqdfcjb",
|
||||
|
||||
// Donasi
|
||||
donasi_image: "cm0yk1coh000f10nj597a99kv",
|
||||
donasi_cerita_image: "cm2dvy9bi007v10dpmatb5yiy",
|
||||
donasi_kabar: "cm2dvxo48007t10dpmmustxa2",
|
||||
donasi_bukti_transfer: "cm0yk1pmh000h10njhi6m8b8t",
|
||||
donasi_bukti_trf_pencairan_dana: "cm32s7h1q005yb5kuf5uiv5de",
|
||||
|
||||
// Job
|
||||
job_image: "cm0ypp6zl0003kp7jf59zuvjy",
|
||||
|
||||
// Event
|
||||
event_sponsor: "cm65zlbyf001udvmggnd6i0oh",
|
||||
event_bukti_transfer: "cm65zlehy001wdvmgnobur2zh",
|
||||
};
|
||||
|
||||
export default DIRECTORY_ID;
|
||||
17
src/lib/index.ts
Normal file
17
src/lib/index.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import APIs from "./APIs";
|
||||
import DIRECTORY_ID from "./id-derectory";
|
||||
import prisma from "./prisma";
|
||||
import { pathAssetImage } from "./path_asset_image";
|
||||
import { RouterImagePreview } from "./router_hipmi/router_image_preview";
|
||||
import { RouterAdminGlobal } from "./router_admin/router_admin_global";
|
||||
import RealtimeProvider from "./realtime_provider";
|
||||
|
||||
export { DIRECTORY_ID };
|
||||
export { prisma };
|
||||
export { APIs };
|
||||
export { pathAssetImage };
|
||||
export { RealtimeProvider };
|
||||
|
||||
// Router
|
||||
export { RouterImagePreview };
|
||||
export { RouterAdminGlobal };
|
||||
5
src/lib/limit.ts
Normal file
5
src/lib/limit.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
import pLimit from "p-limit";
|
||||
|
||||
const global_limit = pLimit(1);
|
||||
|
||||
export default global_limit;
|
||||
6
src/lib/path_asset_image.tsx
Normal file
6
src/lib/path_asset_image.tsx
Normal file
@@ -0,0 +1,6 @@
|
||||
export const pathAssetImage = {
|
||||
no_image: "/aset/global/no-image.svg",
|
||||
avatar: "/aset/global/avatar.png",
|
||||
main_background: "/aset/global/main_background.png",
|
||||
new_loader: "/aset/global/loading.gif",
|
||||
};
|
||||
44
src/lib/prisma.back.txt
Normal file
44
src/lib/prisma.back.txt
Normal file
@@ -0,0 +1,44 @@
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
|
||||
let prisma: PrismaClient;
|
||||
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
prisma = new PrismaClient();
|
||||
} else {
|
||||
const globalWithPrisma = global as typeof globalThis & {
|
||||
prisma: PrismaClient;
|
||||
};
|
||||
if (!globalWithPrisma.prisma) {
|
||||
globalWithPrisma.prisma = new PrismaClient();
|
||||
}
|
||||
prisma = globalWithPrisma.prisma;
|
||||
}
|
||||
|
||||
// Handle uncaught errors
|
||||
process.on('uncaughtException', async (error) => {
|
||||
console.error('Uncaught Exception:', error);
|
||||
await prisma.$disconnect();
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
// Handle unhandled promise rejections
|
||||
process.on('unhandledRejection', async (error) => {
|
||||
console.error('Unhandled Rejection:', error);
|
||||
await prisma.$disconnect();
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
// Handle graceful shutdown
|
||||
process.on('SIGINT', async () => {
|
||||
console.log('Received SIGINT signal. Closing database connections...');
|
||||
await prisma.$disconnect();
|
||||
process.exit(0);
|
||||
});
|
||||
|
||||
process.on('SIGTERM', async () => {
|
||||
console.log('Received SIGTERM signal. Closing database connections...');
|
||||
await prisma.$disconnect();
|
||||
process.exit(0);
|
||||
});
|
||||
|
||||
export default prisma;
|
||||
53
src/lib/prisma.ts
Normal file
53
src/lib/prisma.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
import { PrismaClient } from "@prisma/client";
|
||||
|
||||
// Deklarasikan variabel global untuk menandai apakah listener sudah ditambahkan
|
||||
declare global {
|
||||
var prisma: PrismaClient;
|
||||
var prismaListenersAdded: boolean; // Flag untuk menandai listener
|
||||
}
|
||||
|
||||
let prisma: PrismaClient;
|
||||
|
||||
if (process.env.NODE_ENV === "production") {
|
||||
prisma = new PrismaClient();
|
||||
} else {
|
||||
if (!global.prisma) {
|
||||
global.prisma = new PrismaClient();
|
||||
}
|
||||
prisma = global.prisma;
|
||||
}
|
||||
|
||||
// Tambahkan listener hanya jika belum ditambahkan sebelumnya
|
||||
if (!global.prismaListenersAdded) {
|
||||
// Handle uncaught errors
|
||||
process.on("uncaughtException", async (error) => {
|
||||
console.error("Uncaught Exception:", error);
|
||||
await prisma.$disconnect();
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
// Handle unhandled promise rejections
|
||||
process.on("unhandledRejection", async (error) => {
|
||||
console.error("Unhandled Rejection:", error);
|
||||
await prisma.$disconnect();
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
// Handle graceful shutdown
|
||||
process.on("SIGINT", async () => {
|
||||
console.log("Received SIGINT signal. Closing database connections...");
|
||||
await prisma.$disconnect();
|
||||
process.exit(0);
|
||||
});
|
||||
|
||||
process.on("SIGTERM", async () => {
|
||||
console.log("Received SIGTERM signal. Closing database connections...");
|
||||
await prisma.$disconnect();
|
||||
process.exit(0);
|
||||
});
|
||||
|
||||
// Tandai bahwa listener sudah ditambahkan
|
||||
global.prismaListenersAdded = true;
|
||||
}
|
||||
|
||||
export default prisma;
|
||||
261
src/lib/realtime_provider.tsx
Normal file
261
src/lib/realtime_provider.tsx
Normal file
@@ -0,0 +1,261 @@
|
||||
"use client";
|
||||
|
||||
import { useShallowEffect } from "@mantine/hooks";
|
||||
import { useAtom } from "jotai";
|
||||
import { WibuRealtime } from "wibu-pkg";
|
||||
import {
|
||||
gs_access_user,
|
||||
gs_admin_ntf,
|
||||
gs_adminDonasi_triggerReview,
|
||||
gs_adminEvent_triggerReview,
|
||||
gs_adminInvestasi_triggerReview,
|
||||
gs_adminJob_triggerReview,
|
||||
gs_adminVoting_triggerReview,
|
||||
gs_donasiTriggerBeranda,
|
||||
gs_eventTriggerBeranda,
|
||||
gs_investasiTriggerBeranda,
|
||||
gs_jobTiggerBeranda,
|
||||
gs_realtimeData,
|
||||
gs_user_ntf,
|
||||
gs_votingTiggerBeranda,
|
||||
IRealtimeData,
|
||||
} from "./global_state";
|
||||
|
||||
// const WIBU_REALTIME_TOKEN: string | undefined =
|
||||
// process.env.NEXT_PUBLIC_WIBU_REALTIME_TOKEN;
|
||||
|
||||
// Pasang tipe data di package WibuRealtime sebagai type adata setData
|
||||
export type TypeNotification = {
|
||||
type: "message" | "notification" | "trigger";
|
||||
pushNotificationTo: "ADMIN" | "USER";
|
||||
dataMessage?: IRealtimeData;
|
||||
userId?: string;
|
||||
};
|
||||
|
||||
// Tambahkan flag global untuk mencegah inisialisasi ulang
|
||||
let isWibuRealtimeInitialized = false;
|
||||
|
||||
export default function RealtimeProvider({
|
||||
userId,
|
||||
WIBU_REALTIME_TOKEN,
|
||||
}: {
|
||||
userId: string;
|
||||
WIBU_REALTIME_TOKEN: string;
|
||||
}) {
|
||||
const [dataRealtime, setDataRealtime] = useAtom(gs_realtimeData);
|
||||
const [newAdminNtf, setNewAdminNtf] = useAtom(gs_admin_ntf);
|
||||
const [newUserNtf, setNewUserNtf] = useAtom(gs_user_ntf);
|
||||
|
||||
// ACCESS USER
|
||||
const [isAccessUser, setIsAccessUser] = useAtom(gs_access_user);
|
||||
|
||||
// JOB
|
||||
const [isTriggerJobBeranda, setIsTriggerJobBeranda] =
|
||||
useAtom(gs_jobTiggerBeranda);
|
||||
const [isAdminJob_TriggerReview, setIsAdminJob_TriggerReview] = useAtom(
|
||||
gs_adminJob_triggerReview
|
||||
);
|
||||
|
||||
// EVENT
|
||||
const [isTriggerEventBeranda, setIsTriggerEventBeranda] = useAtom(
|
||||
gs_eventTriggerBeranda
|
||||
);
|
||||
const [isAdminEvent_TriggerReview, setIsAdminEvent_TriggerReview] = useAtom(
|
||||
gs_adminEvent_triggerReview
|
||||
);
|
||||
|
||||
// VOTING
|
||||
const [isTriggerVotingBeranda, setIsTriggerVotingBeranda] = useAtom(
|
||||
gs_votingTiggerBeranda
|
||||
);
|
||||
const [isAdminVoting_TriggerReview, setIsAdminVoting_TriggerReview] = useAtom(
|
||||
gs_adminVoting_triggerReview
|
||||
);
|
||||
|
||||
// DONASI
|
||||
const [isAdminDonasi_TriggerReview, setIsAdminDonasi_TriggerReview] = useAtom(
|
||||
gs_adminDonasi_triggerReview
|
||||
);
|
||||
const [isTriggerDonasiBeranda, setIsTriggerDonasiBeranda] = useAtom(
|
||||
gs_donasiTriggerBeranda
|
||||
);
|
||||
|
||||
// INVESTASI
|
||||
const [isAdminInvestasi_TriggerReview, setIsAdminInvestasi_TriggerReview] =
|
||||
useAtom(gs_adminInvestasi_triggerReview);
|
||||
|
||||
const [isTriggerInvestasiBeranda, setIsTriggerInvestasiBeranda] = useAtom(
|
||||
gs_investasiTriggerBeranda
|
||||
);
|
||||
|
||||
useShallowEffect(() => {
|
||||
try {
|
||||
if (!isWibuRealtimeInitialized) {
|
||||
WibuRealtime.init({
|
||||
project: "hipmi",
|
||||
WIBU_REALTIME_TOKEN: WIBU_REALTIME_TOKEN,
|
||||
onData(data: TypeNotification) {
|
||||
// Notifikasi ke admin
|
||||
if (
|
||||
data.type == "notification" &&
|
||||
data.pushNotificationTo == "ADMIN"
|
||||
) {
|
||||
setNewAdminNtf((e) => e + 1);
|
||||
}
|
||||
|
||||
// trigger access
|
||||
if (
|
||||
data.type == "trigger" &&
|
||||
data.pushNotificationTo == "USER" &&
|
||||
data.dataMessage?.kategoriApp == "ACCESS" &&
|
||||
data.dataMessage?.userId == userId
|
||||
) {
|
||||
setIsAccessUser(data.dataMessage.status as any);
|
||||
}
|
||||
|
||||
// Notifikasi ke semua user , yang datanya di acc admin
|
||||
if (
|
||||
data.type == "notification" &&
|
||||
data.pushNotificationTo == "USER" &&
|
||||
data.dataMessage?.userId == userId
|
||||
) {
|
||||
setNewUserNtf((e) => e + 1);
|
||||
setDataRealtime(data.dataMessage as any);
|
||||
}
|
||||
|
||||
// ---------------------- JOB ------------------------- //
|
||||
if (
|
||||
data.type == "trigger" &&
|
||||
data.pushNotificationTo == "ADMIN" &&
|
||||
data.dataMessage?.kategoriApp == "JOB"
|
||||
) {
|
||||
setIsAdminJob_TriggerReview(true);
|
||||
}
|
||||
|
||||
if (
|
||||
data.type == "trigger" &&
|
||||
data.pushNotificationTo == "USER" &&
|
||||
data.dataMessage?.kategoriApp == "JOB" &&
|
||||
data.dataMessage.status == "Publish"
|
||||
) {
|
||||
setIsTriggerJobBeranda(true);
|
||||
}
|
||||
// ---------------------- JOB ------------------------- //
|
||||
|
||||
// ---------------------- EVENT ------------------------- //
|
||||
if (
|
||||
data.type == "trigger" &&
|
||||
data.pushNotificationTo == "ADMIN" &&
|
||||
data.dataMessage?.kategoriApp == "EVENT"
|
||||
) {
|
||||
setIsAdminEvent_TriggerReview(true);
|
||||
}
|
||||
|
||||
if (
|
||||
data.type == "trigger" &&
|
||||
data.pushNotificationTo == "USER" &&
|
||||
data.dataMessage?.kategoriApp == "EVENT" &&
|
||||
data.dataMessage.status == "Publish"
|
||||
) {
|
||||
setIsTriggerEventBeranda(true);
|
||||
}
|
||||
|
||||
if (
|
||||
data.type == "notification" &&
|
||||
data.pushNotificationTo == "USER" &&
|
||||
data.dataMessage?.status == "Peserta Event" &&
|
||||
userId !== data.dataMessage?.userId
|
||||
) {
|
||||
setNewUserNtf((e) => e + 1);
|
||||
}
|
||||
// ---------------------- EVENT ------------------------- //
|
||||
|
||||
// ---------------------- VOTING ------------------------- //
|
||||
if (
|
||||
data.type == "trigger" &&
|
||||
data.pushNotificationTo == "ADMIN" &&
|
||||
data.dataMessage?.kategoriApp == "VOTING"
|
||||
) {
|
||||
setIsAdminVoting_TriggerReview(true);
|
||||
}
|
||||
|
||||
if (
|
||||
data.type == "trigger" &&
|
||||
data.pushNotificationTo == "USER" &&
|
||||
data.dataMessage?.kategoriApp == "VOTING" &&
|
||||
data.dataMessage.status == "Publish"
|
||||
) {
|
||||
setIsTriggerVotingBeranda(true);
|
||||
}
|
||||
|
||||
if (
|
||||
data.type == "notification" &&
|
||||
data.pushNotificationTo == "USER" &&
|
||||
data.dataMessage?.status == "Voting Masuk" &&
|
||||
userId !== data.dataMessage?.userId
|
||||
) {
|
||||
setNewUserNtf((e) => e + 1);
|
||||
}
|
||||
// ---------------------- VOTING ------------------------- //
|
||||
|
||||
// ---------------------- DONASI ------------------------- //
|
||||
if (
|
||||
data.type == "trigger" &&
|
||||
data.pushNotificationTo == "ADMIN" &&
|
||||
data.dataMessage?.kategoriApp == "DONASI"
|
||||
) {
|
||||
setIsAdminDonasi_TriggerReview(true);
|
||||
}
|
||||
|
||||
if (
|
||||
data.type == "trigger" &&
|
||||
data.pushNotificationTo == "USER" &&
|
||||
data.dataMessage?.kategoriApp == "DONASI" &&
|
||||
data.dataMessage.status == "Publish"
|
||||
) {
|
||||
setIsTriggerDonasiBeranda(true);
|
||||
}
|
||||
|
||||
// if (
|
||||
// data.type == "notification" &&
|
||||
// data.pushNotificationTo == "ADMIN" &&
|
||||
// data.dataMessage?.status == "Menunggu" &&
|
||||
// userId !== data.dataMessage?.userId
|
||||
// ) {
|
||||
|
||||
// }
|
||||
// ---------------------- DONASI ------------------------- //
|
||||
|
||||
// ---------------------- INVESTASI ------------------------- //
|
||||
|
||||
if (
|
||||
data.type == "trigger" &&
|
||||
data.pushNotificationTo == "ADMIN" &&
|
||||
data.dataMessage?.kategoriApp == "INVESTASI"
|
||||
) {
|
||||
setIsAdminInvestasi_TriggerReview(true);
|
||||
}
|
||||
|
||||
if (
|
||||
data.type == "trigger" &&
|
||||
data.pushNotificationTo == "USER" &&
|
||||
data.dataMessage?.kategoriApp == "INVESTASI" &&
|
||||
data.dataMessage.status == "Publish"
|
||||
) {
|
||||
setIsTriggerInvestasiBeranda(true);
|
||||
}
|
||||
|
||||
// ---------------------- INVESTASI ------------------------- //
|
||||
},
|
||||
});
|
||||
|
||||
// Tandai bahwa WibuRealtime telah diinisialisasi
|
||||
isWibuRealtimeInitialized = true;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log("Error Realtime:", error);
|
||||
}
|
||||
}, []);
|
||||
|
||||
return null;
|
||||
}
|
||||
6
src/lib/router_admin/router_admin_colab.ts
Normal file
6
src/lib/router_admin/router_admin_colab.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export const RouterAdminColab = {
|
||||
dashboard: "/dev/admin/colab/dashboard",
|
||||
table_publish: "/dev/admin/colab/sub-menu/publish",
|
||||
table_group: "/dev/admin/colab/sub-menu/group",
|
||||
table_reject: "/dev/admin/colab/sub-menu/reject",
|
||||
};
|
||||
3
src/lib/router_admin/router_admin_developer.ts
Normal file
3
src/lib/router_admin/router_admin_developer.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export const RouterAdminDeveloper = {
|
||||
main: "/dev/admin/developer",
|
||||
};
|
||||
11
src/lib/router_admin/router_admin_donasi.ts
Normal file
11
src/lib/router_admin/router_admin_donasi.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
export const RouterAdminDonasi = {
|
||||
main: "/dev/admin/donasi/main",
|
||||
table_publish: "/dev/admin/donasi/sub-menu/publish",
|
||||
table_review: "/dev/admin/donasi/sub-menu/review",
|
||||
table_reject: "/dev/admin/donasi/sub-menu/reject",
|
||||
table_kategori: "/dev/admin/donasi/sub-menu/kategori",
|
||||
transfer_invoice: "/dev/admin/donasi/sub-detail/transfer-invoice/",
|
||||
transfer_invoice_reimbursement:
|
||||
"/dev/admin/donasi/sub-detail/transfer-invoice-reimbursement/",
|
||||
informasi: "/dev/admin/donasi/sub-menu/informasi",
|
||||
};
|
||||
20
src/lib/router_admin/router_admin_event.ts
Normal file
20
src/lib/router_admin/router_admin_event.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
export const RouterAdminEvent = {
|
||||
main_event: "/dev/admin/event/main",
|
||||
|
||||
// detail
|
||||
detail_peserta: "/dev/admin/event/detail/peserta/",
|
||||
detail_publish: "/dev/admin/event/detail/publish/",
|
||||
detail_sponsor: "/dev/admin/event/detail/detail_sponsor/",
|
||||
|
||||
// child
|
||||
detail_tipe_acara: "/dev/admin/event/child/tipe_acara",
|
||||
detail_riwayat: "/dev/admin/event/child/riwayat",
|
||||
|
||||
// table
|
||||
table_review: "/dev/admin/event/table/review",
|
||||
table_publish: "/dev/admin/event/table/publish",
|
||||
table_reject: "/dev/admin/event/table/reject",
|
||||
|
||||
|
||||
|
||||
};
|
||||
16
src/lib/router_admin/router_admin_forum.ts
Normal file
16
src/lib/router_admin/router_admin_forum.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
export const RouterAdminForum = {
|
||||
// main
|
||||
main: "/dev/admin/forum/main",
|
||||
|
||||
// sub menu
|
||||
table_posting: "/dev/admin/forum/sub-menu/posting",
|
||||
table_report_posting: "/dev/admin/forum/sub-menu/report-posting",
|
||||
table_report_komentar: "/dev/admin/forum/sub-menu/report-komentar",
|
||||
|
||||
// detail
|
||||
detail_posting: "/dev/admin/forum/detail/",
|
||||
|
||||
// sub detail
|
||||
report_komentar: "/dev/admin/forum/sub-detail/report-komentar/",
|
||||
report_posting: "/dev/admin/forum/sub-detail/report-posting/",
|
||||
};
|
||||
7
src/lib/router_admin/router_admin_global.ts
Normal file
7
src/lib/router_admin/router_admin_global.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
export const RouterAdminGlobal = {
|
||||
/**
|
||||
* @param fileId | file id from wibu storage , atau bisa diambil di DB
|
||||
* @type {string}
|
||||
*/
|
||||
preview_image: ({ id }: { id: string }) => `/dev/admin/preview-image/${id}`,
|
||||
};
|
||||
15
src/lib/router_admin/router_admin_investasi.ts
Normal file
15
src/lib/router_admin/router_admin_investasi.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
export const RouterAdminInvestasi = {
|
||||
// API
|
||||
api_bukti_transfer: "/api/investasi/bukti-transfer/",
|
||||
|
||||
main: "/dev/admin/investasi/main",
|
||||
table_publish: "/dev/admin/investasi/sub-menu/publish",
|
||||
table_review: "/dev/admin/investasi/sub-menu/review",
|
||||
table_reject: "/dev/admin/investasi/sub-menu/reject",
|
||||
|
||||
// detail
|
||||
detail_publish: "/dev/admin/investasi/detail/publish/",
|
||||
detail_review: "/dev/admin/investasi/detail/review/",
|
||||
detail_reject: "/dev/admin/investasi/detail/reject/",
|
||||
bukti_transfer: "/dev/admin/investasi/bukti-transfer/",
|
||||
};
|
||||
8
src/lib/router_admin/router_admin_job.ts
Normal file
8
src/lib/router_admin/router_admin_job.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
export const RouterAdminJob = {
|
||||
main: "/dev/admin/job/main",
|
||||
publish: "/dev/admin/job/child/publish",
|
||||
review: "/dev/admin/job/child/review",
|
||||
reject: "/dev/admin/job/child/reject",
|
||||
arsip: "/dev/admin/job/child/arsip",
|
||||
detail_poster: "/dev/admin/job/detail/poster/",
|
||||
};
|
||||
3
src/lib/router_admin/router_admin_map.ts
Normal file
3
src/lib/router_admin/router_admin_map.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export const RouterAdminMap = {
|
||||
main: "/dev/admin/map",
|
||||
};
|
||||
8
src/lib/router_admin/router_admin_vote.ts
Normal file
8
src/lib/router_admin/router_admin_vote.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
export const RouterAdminVote = {
|
||||
// main
|
||||
main: "/dev/admin/vote/main",
|
||||
table_publish: "/dev/admin/vote/child/table_publish",
|
||||
table_review: "/dev/admin/vote/child/table_review",
|
||||
table_reject: "/dev/admin/vote/child/table_reject",
|
||||
riwayat: "/dev/admin/vote/child/riwayat",
|
||||
};
|
||||
3
src/lib/router_admin/router_admn_user_acces.ts
Normal file
3
src/lib/router_admin/router_admn_user_acces.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export const RouterAdminUserAccess = {
|
||||
main: "/dev/admin/user-access",
|
||||
};
|
||||
3
src/lib/router_admin/router_app_information.ts
Normal file
3
src/lib/router_admin/router_app_information.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export const RouterAdminAppInformation = {
|
||||
main: "/dev/admin/app-information/main",
|
||||
};
|
||||
41
src/lib/router_hipmi/router_admin.ts
Normal file
41
src/lib/router_hipmi/router_admin.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
export const RouterAdminDashboard = {
|
||||
main_admin: "/dev/admin/main/dashboard",
|
||||
splash_admin: "/dev/splash/admin",
|
||||
};
|
||||
|
||||
export const RouterAdminInvestasi_OLD = {
|
||||
main_investasi: "/dev/admin/investasi/main",
|
||||
halaman_aksi: "/dev/admin/investasi/halaman_aksi/",
|
||||
konfirmasi: "/dev/admin/investasi/konfirmasi/",
|
||||
bukti_transfer: "/dev/admin/investasi/bukti_transfer",
|
||||
status_transfer: "/dev/admin/investasi/status_transfer",
|
||||
table_status_publish: "/dev/admin/investasi/table_status/publish",
|
||||
table_status_review: "/dev/admin/investasi/table_status/review",
|
||||
table_status_reject: "/dev/admin/investasi/table_status/reject",
|
||||
};
|
||||
|
||||
export const RouterAdminDonasi_OLD = {
|
||||
api_gambar_bukti_transfer: "/api/donasi/gambar_bukti_transfer/",
|
||||
|
||||
main_donasi: "/dev/admin/donasi/main",
|
||||
// table
|
||||
table_publish: "/dev/admin/donasi/table/publish",
|
||||
table_review: "/dev/admin/donasi/table/review",
|
||||
table_reject: "/dev/admin/donasi/table/reject",
|
||||
table_kategori: "/dev/admin/donasi/table/kategori",
|
||||
|
||||
// detail
|
||||
detail_publish: "/dev/admin/donasi/detail/publish/",
|
||||
detail_review: "/dev/admin/donasi/detail/review/",
|
||||
detail_reject: "/dev/admin/donasi/detail/reject/",
|
||||
|
||||
// proses
|
||||
proses_transaksi: "/dev/admin/donasi/proses_transaksi/",
|
||||
pencairan_dana: "/dev/admin/donasi/pencairan_dana/",
|
||||
};
|
||||
|
||||
|
||||
|
||||
export const RouterAdminAward = {
|
||||
main_award: "/dev/admin/award/main",
|
||||
};
|
||||
6
src/lib/router_hipmi/router_auth.ts
Normal file
6
src/lib/router_hipmi/router_auth.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export const RouterAuth = {
|
||||
login: "/dev/auth/login",
|
||||
validasi: "/dev/auth/validasi/",
|
||||
register: "/dev/auth/register/",
|
||||
check_cookies: "/dev/check-cookies",
|
||||
};
|
||||
29
src/lib/router_hipmi/router_colab.ts
Normal file
29
src/lib/router_hipmi/router_colab.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
export const RouterColab = {
|
||||
//splash
|
||||
splash: "/dev/colab/splash",
|
||||
|
||||
//main
|
||||
beranda: "/dev/colab/main/beranda",
|
||||
status: "/dev/colab/main/status",
|
||||
proyek: "/dev/colab/main/proyek",
|
||||
grup_diskusi: "/dev/colab/main/grup",
|
||||
notifikasi: "/dev/colab/main/notifikasi",
|
||||
|
||||
// create
|
||||
create: "/dev/colab/create",
|
||||
edit: "/dev/colab/edit/",
|
||||
|
||||
//detail
|
||||
main_detail: "/dev/colab/detail/main_detail/",
|
||||
status_review: "/dev/colab/detail/status/review/",
|
||||
status_reject: "/dev/colab/detail/status/reject/",
|
||||
status_publish: "/dev/colab/detail/status/publish/",
|
||||
detail_partisipasi_proyek: "/dev/colab/detail/proyek/partisipasi/",
|
||||
detail_proyek_saya: "/dev/colab/detail/proyek/saya/",
|
||||
detail_grup: "/dev/colab/detail/grup/",
|
||||
info_grup: "/dev/colab/detail/info-grup/",
|
||||
detail_notifikasi: "/dev/colab/detail/notifikasi/",
|
||||
group_chat: "/dev/colab/detail/group/",
|
||||
|
||||
// proyek
|
||||
};
|
||||
5
src/lib/router_hipmi/router_crowd.ts
Normal file
5
src/lib/router_hipmi/router_crowd.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export const RouterCrowd = {
|
||||
main: "/dev/crowd/main",
|
||||
investasi: "/dev/investasi/main",
|
||||
donasi: "/dev/donasi/main/beranda"
|
||||
}
|
||||
58
src/lib/router_hipmi/router_donasi.ts
Normal file
58
src/lib/router_hipmi/router_donasi.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
export const RouterDonasi = {
|
||||
//api
|
||||
api_gambar: "/api/donasi/gambar/",
|
||||
api_gambar_cerita: "/api/donasi/gambar_cerita/",
|
||||
api_image: "/api/donasi/image/",
|
||||
api_image_cerita: "/api/donasi/image_cerita/",
|
||||
api_gambar_kabar: "/api/donasi/gambar_kabar/",
|
||||
api_gambar_pencairan: "/api/donasi/gambar_pencairan/",
|
||||
|
||||
//main
|
||||
main_beranda: "/dev/donasi/main/beranda",
|
||||
status_galang_dana: ({ id }: { id: string }) => `/dev/donasi/main/galang_dana/${id}`,
|
||||
main_donasi_saya: "/dev/donasi/main/donasi_saya",
|
||||
|
||||
// create
|
||||
create_donasi: "/dev/donasi/create/create_donasi",
|
||||
create_cerita_penggalang: "/dev/donasi/create/cerita_penggalang/",
|
||||
create_kabar: "/dev/donasi/create/create_kabar/",
|
||||
|
||||
// edit
|
||||
update_kabar: "/dev/donasi/edit/update_kabar/",
|
||||
edit_donasi: "/dev/donasi/edit/edit_donasi/",
|
||||
edit_cerita_penggalang: "/dev/donasi/edit/edit_cerita/",
|
||||
edit_rekening: "/dev/donasi/edit/edit_rekening/",
|
||||
edit_kabar: ({ id }: { id: string }) => `/dev/donasi/edit/kabar/${id}`,
|
||||
|
||||
//pop up
|
||||
page_pop_up_create: "/dev/donasi/page_pop_up/create",
|
||||
|
||||
//detail
|
||||
detail_main: "/dev/donasi/detail/main/",
|
||||
detail_publish: "/dev/donasi/detail/publish/",
|
||||
detail_review: "/dev/donasi/detail/review/",
|
||||
detail_draft: "/dev/donasi/detail/draft/",
|
||||
detail_reject: "/dev/donasi/detail/reject/",
|
||||
detail_donasi_saya: "/dev/donasi/detail/donasi_saya/",
|
||||
|
||||
detail_kabar: "/dev/donasi/detail/kabar/",
|
||||
detail_notif: "/dev/donasi/detail/detail_notif/",
|
||||
|
||||
//alur donasi
|
||||
kabar: ({ id }: { id: string }) => `/dev/donasi/kabar/${id}`,
|
||||
daftar_kabar: ({ id }: { id: string }) => `/dev/donasi/kabar/daftar/${id}`,
|
||||
rekap_kabar: ({ id }: { id: string }) => `/dev/donasi/kabar/rekap/${id}`,
|
||||
donatur: "/dev/donasi/donatur/",
|
||||
pencairan_dana: "/dev/donasi/pencairan_dana/",
|
||||
penggalang_dana: "/dev/donasi/penggalang_dana/",
|
||||
cerita_penggalang: "/dev/donasi/cerita_penggalang/",
|
||||
list_kabar: "/dev/donasi/list_kabar/",
|
||||
notif_page: "/dev/donasi/notif_page/",
|
||||
bukti_transfer: "/dev/donasi/bukti-transfer/",
|
||||
|
||||
// proses donasi
|
||||
masukan_donasi: "/dev/donasi/proses_donasi/masukan_donasi/",
|
||||
metode_pembayaran: "/dev/donasi/proses_donasi/metode_pembayaran/",
|
||||
invoice: "/dev/donasi/proses_donasi/invoice/",
|
||||
proses_transaksi: "/dev/donasi/proses_donasi/proses_transaksi/",
|
||||
};
|
||||
53
src/lib/router_hipmi/router_event.ts
Normal file
53
src/lib/router_hipmi/router_event.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
export const RouterEvent = {
|
||||
//main
|
||||
splash: "/dev/event/splash",
|
||||
beranda: "/dev/event/main/beranda",
|
||||
// status_page: "/dev/event/main/status_page",
|
||||
kontribusi: "/dev/event/main/kontribusi",
|
||||
riwayat: ({ id }: { id: string }) => `/dev/event/main/riwayat/${id}`,
|
||||
|
||||
/**
|
||||
*
|
||||
* @param statusId | 1 - 4 | 1: Publish, 2: Review, 3: Draft, 4: Reject
|
||||
* @type string
|
||||
*/
|
||||
// status
|
||||
status: ({ id }: { id?: string }) => `/dev/event/main/status/${id}`,
|
||||
// status_publish: "/dev/event/main/status_page/publish",
|
||||
// status_review: "/dev/event/main/status_page/review",
|
||||
// status_draft: "/dev/event/main/status_page/draft",
|
||||
// status_reject: "/dev/event/main/status_page/reject",
|
||||
|
||||
//create
|
||||
create: "/dev/event/create",
|
||||
|
||||
// edit
|
||||
edit: "/dev/event/edit/",
|
||||
|
||||
// detail
|
||||
detail_main: "/dev/event/detail/main/",
|
||||
detail_kontribusi: "/dev/event/detail/kontribusi/",
|
||||
detail_publish: "/dev/event/detail/publish/",
|
||||
detail_review: "/dev/event/detail/review/",
|
||||
detail_draft: "/dev/event/detail/draft/",
|
||||
detail_reject: "/dev/event/detail/reject/",
|
||||
detail_riwayat: "/dev/event/detail/riwayat/",
|
||||
|
||||
//peserta
|
||||
daftar_peserta: ({ id }: { id: string }) => `/dev/event/detail/peserta/${id}`,
|
||||
|
||||
//sponsor
|
||||
daftar_sponsor: ({ id }: { id: string }) => `/dev/event/detail/sponsor/${id}`,
|
||||
edit_sponsor: "/dev/event/detail/sponsor/edit_sponsor/",
|
||||
tambah_sponsor: ({ id }: { id: string }) =>
|
||||
`/dev/event/detail/sponsor/tambah_sponsor/${id}`,
|
||||
detail_sponsor: ({ id }: { id: string }) =>
|
||||
`/dev/event/detail/detail_sponsor/${id}`,
|
||||
nominal_sponsor: ({ id }: { id: string }) =>
|
||||
`/dev/event/detail/sponsor/nominal_sponsor/${id}`,
|
||||
|
||||
metode_pembayaran: ({ id }: { id: string }) =>
|
||||
`/dev/event/detail/sponsor/metode_pembayaran/${id}`,
|
||||
invoice: ({ id }: { id: string }) =>
|
||||
`/dev/event/invoice/${id}`,
|
||||
};
|
||||
28
src/lib/router_hipmi/router_forum.ts
Normal file
28
src/lib/router_hipmi/router_forum.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
export const RouterForum = {
|
||||
splash: "/dev/forum/splash",
|
||||
|
||||
// main
|
||||
beranda: "/dev/forum/main",
|
||||
forumku: "/dev/forum/forumku/",
|
||||
|
||||
// create
|
||||
create: "/dev/forum/create",
|
||||
|
||||
//edit
|
||||
edit_posting: "/dev/forum/edit/posting/",
|
||||
edit_komentar: "/dev/forum/edit/komentar/",
|
||||
|
||||
//detail
|
||||
main_detail: "/dev/forum/detail/main-detail/",
|
||||
detail_report_komentar: "/dev/forum/detail/report-komentar/",
|
||||
detail_report_posting: "/dev/forum/detail/report-posting/",
|
||||
|
||||
// komentar
|
||||
komentar: "/dev/forum/komentar/",
|
||||
|
||||
//report
|
||||
report_posting: "/dev/forum/report/posting/",
|
||||
report_komentar: "/dev/forum/report/komentar/",
|
||||
report_posting_lainnya: "/dev/forum/report/posting-lainnya/",
|
||||
report_komentar_lainnya: "/dev/forum/report/komentar-lainnya/",
|
||||
};
|
||||
4
src/lib/router_hipmi/router_home.ts
Normal file
4
src/lib/router_hipmi/router_home.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export const RouterHome = {
|
||||
main_home: "/dev/home",
|
||||
home_user_non_active: "/dev/user-not-active",
|
||||
};
|
||||
4
src/lib/router_hipmi/router_image_preview.ts
Normal file
4
src/lib/router_hipmi/router_image_preview.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export const RouterImagePreview = {
|
||||
main: ({ id }: { id: string }) => `/dev/image-preview/${id}`,
|
||||
not_user_image: ({ id }: { id: string }) => `/preview-image/${id}`,
|
||||
};
|
||||
167
src/lib/router_hipmi/router_investasi.ts
Normal file
167
src/lib/router_hipmi/router_investasi.ts
Normal file
@@ -0,0 +1,167 @@
|
||||
export const NEW_RouterInvestasi = {
|
||||
// API
|
||||
api_gambar: "/api/investasi/gambar/",
|
||||
|
||||
// MAIN
|
||||
/**
|
||||
*
|
||||
* @param param status id | 1: Publish, 2: Review, 3: Draft, 4: Reject
|
||||
* @type string
|
||||
*/
|
||||
portofolio: ({ id }: { id: "1" | "2" | "3" | "4" }) => `/dev/investasi/main/portofolio/${id}`,
|
||||
// portofolio: ({ id }: { id?: string }) => `/dev/investasi/main/portofolio/${id}`,
|
||||
|
||||
// TRANSAKSI
|
||||
pembelian: "/dev/investasi/transaksi/pembelian/",
|
||||
metode_pembayaran: "/dev/investasi/transaksi/metode-pembayaran/",
|
||||
invoice: "/dev/investasi/transaksi/invoice/",
|
||||
proses_transaksi: "/dev/investasi/transaksi/proses-transaksi/",
|
||||
|
||||
// STATUS TRANSAKSI
|
||||
transaksi_gagal: "/dev/investasi/status-transaksi/gagal/",
|
||||
transaksi_berhasil: "/dev/investasi/status-transaksi/berhasil/",
|
||||
|
||||
// FILE VIEW
|
||||
file_prospektus: ({ id }: { id: string }) =>
|
||||
`/dev/investasi/file-view/prospektus/${id}`,
|
||||
|
||||
OLD_file_view_prospektus: "/dev/investasi/file-view/prospektus/",
|
||||
OLD_file_view_dokumen: "/dev/investasi/file-view/dokumen/",
|
||||
|
||||
// DETAIL
|
||||
detail_main: ({ id }: { id: string }) => `/dev/investasi/detail/${id}`,
|
||||
detail_portofolio: ({ id }: { id: string }) =>
|
||||
`/dev/investasi/detail/portofolio/${id}`,
|
||||
detail_prospektus: ({ id }: { id: string }) =>
|
||||
`/dev/investasi/detail/prospektus/${id}`,
|
||||
|
||||
detail_saham: "/dev/investasi/detail/saham/",
|
||||
detail_publish: "/dev/investasi/detail_portofolio/publish/",
|
||||
detail_review: "/dev/investasi/detail_portofolio/review/",
|
||||
detail_draft: "/dev/investasi/detail_portofolio/draft/",
|
||||
detail_reject: "/dev/investasi/detail_portofolio/reject/",
|
||||
|
||||
// DOKUMEN
|
||||
/**
|
||||
* @param id | investasiId
|
||||
* @type string
|
||||
*/
|
||||
daftar_dokumen: ({ id }: { id: string }) =>
|
||||
`/dev/investasi/dokumen/daftar/${id}`,
|
||||
/**
|
||||
* @param id | investasiId
|
||||
* @type string
|
||||
*/
|
||||
rekap_dokumen: ({ id }: { id: string }) =>
|
||||
`/dev/investasi/dokumen/rekap/${id}`,
|
||||
|
||||
// BERITA
|
||||
/**
|
||||
* @param id | beritaId
|
||||
* @type string
|
||||
*/
|
||||
berita: ({ id }: { id: string }) => `/dev/investasi/berita/${id}`,
|
||||
|
||||
/**
|
||||
* @param id | investasiId
|
||||
* @type string
|
||||
*/
|
||||
daftar_berita: ({ id }: { id: string }) =>
|
||||
`/dev/investasi/berita/daftar/${id}`,
|
||||
/**
|
||||
* @param id | investasiId
|
||||
* @type string
|
||||
*/
|
||||
rekap_berita: ({ id }: { id: string }) => `/dev/investasi/berita/rekap/${id}`,
|
||||
|
||||
// CREATE
|
||||
/**
|
||||
* @param id | investasiId
|
||||
* @type string
|
||||
*/
|
||||
create_dokumen: ({ id }: { id: string }) =>
|
||||
`/dev/investasi/create/dokumen/${id}`,
|
||||
|
||||
/**
|
||||
* @param id | investasiId
|
||||
* @type string
|
||||
*/
|
||||
create_berita: ({ id }: { id: string }) =>
|
||||
`/dev/investasi/create/berita/${id}`,
|
||||
|
||||
// EDIT
|
||||
/**
|
||||
* @param id | investasiId
|
||||
* @type string
|
||||
*/
|
||||
edit_investasi: ({ id }: { id: string }) => `/dev/investasi/edit/${id}`,
|
||||
|
||||
/**
|
||||
* @param id | dokumenId
|
||||
* @type string
|
||||
*/
|
||||
edit_dokumen: ({ id }: { id: string }) => `/dev/investasi/edit/dokumen/${id}`,
|
||||
|
||||
/**
|
||||
* @param id | investasiId
|
||||
* @type string
|
||||
*/
|
||||
edit_prospektus: ({ id }: { id: string }) =>
|
||||
`/dev/investasi/edit/prospektus/${id}`,
|
||||
};
|
||||
|
||||
export const RouterInvestasi_OLD = {
|
||||
api_gambar: "/api/investasi/gambar/",
|
||||
api_file_prospektus: "/api/investasi/prospektus/",
|
||||
api_file_dokumen: "/api/investasi/dokumen/",
|
||||
api_get_notif_midtrans: "/api/investasi/midtrans",
|
||||
|
||||
//INVESTASI
|
||||
main: "/dev/investasi/main",
|
||||
create: "/dev/investasi/create/investasi",
|
||||
main_porto: "/dev/investasi/main/portofolio",
|
||||
main_investasi: "/dev/investasi/main/saham_saya",
|
||||
main_transaksi: "/dev/investasi/main/transaksi",
|
||||
transfer: "/dev/investasi/transfer/",
|
||||
dialog_transaksi: "/dev/investasi/dialog_page/transaksi_saham",
|
||||
dialog_create: "/dev/investasi/dialog_page/create",
|
||||
|
||||
// portofolio
|
||||
portofolio: "/dev/investasi/main/portofolio",
|
||||
|
||||
// proses beli saham
|
||||
proses_investasi: "/dev/investasi/proses_investasi/",
|
||||
proses_transaksi: "/dev/investasi/proses_transaksi/",
|
||||
status_transaksi: "/dev/investasi/status_transaksi/berhasil",
|
||||
status_pesanan: "/dev/investasi/status_pesanan/",
|
||||
status_transaksi_gagal: "/dev/investasi/status_transaksi/gagal/",
|
||||
metode_transfer: "/dev/investasi/metode_transfer/",
|
||||
|
||||
// edit //
|
||||
edit: "/dev/investasi/edit/",
|
||||
edit_intro: "/dev/investasi/edit_intro/",
|
||||
edit_prospektus: "/dev/investasi/edit_prospektus/",
|
||||
edit_dokumen: "/dev/investasi/edit_dokumen/",
|
||||
edit_berita: "/dev/investasi/edit_berita/",
|
||||
|
||||
// detail //
|
||||
detail: "/dev/investasi/detail/",
|
||||
detail_portofolio: "",
|
||||
detail_saham_terbeli: "/dev/investasi/detail_saham_terbeli/",
|
||||
detail_prospektus: "/dev/investasi/detail_prospektus/",
|
||||
detail_dokumen: "/dev/investasi/detail_dokumen/",
|
||||
detail_berita: "/dev/investasi/detail_berita/",
|
||||
detail_draft: "/dev/investasi/detail_portofolio/draft/",
|
||||
detail_publish: "/dev/investasi/detail_portofolio/publish/",
|
||||
detail_review: "/dev/investasi/detail_portofolio/review/",
|
||||
detail_reject: "/dev/investasi/detail_portofolio/reject/",
|
||||
|
||||
// berita
|
||||
daftar_berita: "/dev/investasi/berita/",
|
||||
create_berita: "/dev/investasi/create_berita/",
|
||||
list_edit_berita: "/dev/investasi/list_edit_berita/",
|
||||
|
||||
//upload
|
||||
upload_prospektus: "/dev/investasi/upload_prospektus/",
|
||||
upload_dokumen: "/dev/investasi/upload_dokumen/",
|
||||
};
|
||||
33
src/lib/router_hipmi/router_job.ts
Normal file
33
src/lib/router_hipmi/router_job.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
export const RouterJob = {
|
||||
//api
|
||||
api_gambar: "/api/job/gambar/",
|
||||
|
||||
//spalsh
|
||||
spalsh: "/dev/job/splash",
|
||||
|
||||
// main
|
||||
beranda: "/dev/job/main/beranda",
|
||||
/**
|
||||
*
|
||||
* @param statusId | 1 - 4 | 1: Publish, 2: Review, 3: Draft, 4: Reject
|
||||
* @returns
|
||||
*/
|
||||
status: ({ id }: { id?: string }) => `/dev/job/main/status/${id}`,
|
||||
arsip: "/dev/job/main/arsip",
|
||||
|
||||
// create & edit
|
||||
create: "/dev/job/create",
|
||||
edit: "/dev/job/edit/",
|
||||
|
||||
// detail
|
||||
main_detail: "/dev/job/detail/main/",
|
||||
detail_publish: "/dev/job/detail/publish/",
|
||||
detail_review: "/dev/job/detail/review/",
|
||||
detail_draft: "/dev/job/detail/draft/",
|
||||
detail_reject: "/dev/job/detail/reject/",
|
||||
detail_arsip: "/dev/job/detail/arsip/",
|
||||
|
||||
// non user
|
||||
non_user_view: "/dev/job/non_user_view/",
|
||||
"job_vacancy_non_user": ({ id }: { id: string }) => `/job-vacancy/${id}`,
|
||||
};
|
||||
34
src/lib/router_hipmi/router_katalog.ts
Normal file
34
src/lib/router_hipmi/router_katalog.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
export const RouterProfile = {
|
||||
katalogOLD: "/dev/katalog/",
|
||||
"katalog": ({id}:{id: string}) => `/dev/katalog/${id}`,
|
||||
|
||||
// create
|
||||
create: "/dev/profile/create",
|
||||
|
||||
// edit
|
||||
edit: "/dev/profile/edit/",
|
||||
|
||||
// api
|
||||
api_foto_profile: "/api/profile/foto/",
|
||||
api_background_profile: "/api/profile/background/",
|
||||
api_url_foto: "/api/profile/url_foto/",
|
||||
api_url_background: "/api/profile/url_background/",
|
||||
|
||||
// upload
|
||||
update_foto_profile: "/dev/profile/upload/foto/",
|
||||
update_foto_background: "/dev/profile/upload/background/",
|
||||
};
|
||||
|
||||
export const RouterPortofolio = {
|
||||
main_detail: "/dev/portofolio/main/",
|
||||
|
||||
api_logo_porto: "/api/portofolio/logo/",
|
||||
create: "/dev/portofolio/create/",
|
||||
|
||||
daftar_portofolio: "/dev/portofolio/daftar-portofolio/",
|
||||
|
||||
//edit
|
||||
edit_data_bisnis: "/dev/portofolio/edit/data/",
|
||||
edit_logo_bisnis: "/dev/portofolio/edit/logo/",
|
||||
edit_medsos_bisnis: "/dev/portofolio/edit/medsos/",
|
||||
};
|
||||
12
src/lib/router_hipmi/router_map.ts
Normal file
12
src/lib/router_hipmi/router_map.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
export const RouterMap = {
|
||||
// api
|
||||
api_foto: "/api/map/foto/",
|
||||
api_custom_pin: "/api/map/pin/",
|
||||
|
||||
// main
|
||||
splash: "/dev/map/splash",
|
||||
main_view: "/dev/map/main",
|
||||
create: "/dev/map/create/",
|
||||
edit: "/dev/map/edit/",
|
||||
custom_pin: "/dev/map/custom-pin/",
|
||||
};
|
||||
4
src/lib/router_hipmi/router_notifikasi.ts
Normal file
4
src/lib/router_hipmi/router_notifikasi.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export const RouterNotifikasi = {
|
||||
// main: ({ name }: { name: string }) => `/dev/notifikasi/${name}`,
|
||||
categoryApp: ({ name }: { name: string }) => `/dev/notifikasi/${name}`,
|
||||
};
|
||||
3
src/lib/router_hipmi/router_user_search.ts
Normal file
3
src/lib/router_hipmi/router_user_search.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export const RouterUserSearch = {
|
||||
main: "/dev/user-search"
|
||||
}
|
||||
31
src/lib/router_hipmi/router_vote.ts
Normal file
31
src/lib/router_hipmi/router_vote.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
export const RouterVote = {
|
||||
// main
|
||||
splash: "/dev/vote/splash",
|
||||
beranda: "/dev/vote/main/beranda",
|
||||
status: ({ id }: { id?: string }) => `/dev/vote/main/status/${id}`,
|
||||
kontribusi: "/dev/vote/main/kontribusi",
|
||||
|
||||
/**
|
||||
*
|
||||
* @param riwayatId | 1 & 2 | 1: Semua, 2: Saya
|
||||
* @type string
|
||||
*/
|
||||
riwayat: ({ id }: { id?: string }) => `/dev/vote/main/riwayat/${id}`,
|
||||
|
||||
// create
|
||||
create: "/dev/vote/create",
|
||||
|
||||
//
|
||||
edit: "/dev/vote/edit/",
|
||||
|
||||
//detail
|
||||
main_detail: "/dev/vote/detail/main/",
|
||||
detail_publish: "/dev/vote/detail/publish/",
|
||||
detail_review: "/dev/vote/detail/review/",
|
||||
detail_draft: "/dev/vote/detail/draft/",
|
||||
detail_reject: "/dev/vote/detail/reject/",
|
||||
detail_kontribusi: "/dev/vote/detail/kontribusi/",
|
||||
detail_semua_riwayat: "/dev/vote/detail/semua_riwayat/",
|
||||
detail_riwayat_saya: "/dev/vote/detail/riwayat_saya/",
|
||||
daftar_kontributor: "/dev/vote/detail/daftar-kontributor/",
|
||||
};
|
||||
16
src/lib/server_env.ts
Normal file
16
src/lib/server_env.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
type ENV = {
|
||||
DATABASE_URL: string;
|
||||
WIBU_PWD: string;
|
||||
Client_KEY: string;
|
||||
Server_KEY: string;
|
||||
MAPBOX_TOKEN: string;
|
||||
WS_APIKEY: string;
|
||||
NEXT_PUBLIC_WIBU_REALTIME_TOKEN: string;
|
||||
};
|
||||
export class ServerEnv {
|
||||
static value: ENV | null = null;
|
||||
|
||||
static set(val: ENV) {
|
||||
ServerEnv.value = val;
|
||||
}
|
||||
}
|
||||
41
src/lib/token.ts
Normal file
41
src/lib/token.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
"use client";
|
||||
|
||||
class TokenStorage {
|
||||
static value = "";
|
||||
static get() {
|
||||
return TokenStorage.value;
|
||||
}
|
||||
static set(value: string) {
|
||||
TokenStorage.value = value;
|
||||
}
|
||||
}
|
||||
|
||||
type ENV = {
|
||||
DATABASE_URL: string;
|
||||
WIBU_PWD: string;
|
||||
Client_KEY: string;
|
||||
Server_KEY: string;
|
||||
MAPBOX_TOKEN: string;
|
||||
WS_APIKEY: string;
|
||||
};
|
||||
export class GlobalEnv {
|
||||
static value: ENV | null = null;
|
||||
|
||||
static set(val: ENV) {
|
||||
GlobalEnv.value = val;
|
||||
}
|
||||
}
|
||||
|
||||
function TokenProvider({
|
||||
token,
|
||||
envObject,
|
||||
}: {
|
||||
token: string;
|
||||
envObject: ENV;
|
||||
}) {
|
||||
TokenStorage.set(token);
|
||||
GlobalEnv.set(envObject);
|
||||
return null;
|
||||
}
|
||||
|
||||
export { TokenStorage, TokenProvider };
|
||||
10
src/lib/warna.ts
Normal file
10
src/lib/warna.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
export const Warna = {
|
||||
hijau_tua: "#297646",
|
||||
hijau_muda: "#3da18d",
|
||||
hijau_cerah: "#42c748",
|
||||
kuning: "#fed630",
|
||||
biru: "#3175b1",
|
||||
merah: "#DE2E2D",
|
||||
hitam: "#121517",
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user