Test server

This commit is contained in:
2024-09-17 08:51:27 +08:00
parent 2fef481e2f
commit 2ccbca6566
21 changed files with 51 additions and 137 deletions

View File

@@ -47,6 +47,7 @@
"autoprefixer": "10.4.14", "autoprefixer": "10.4.14",
"bufferutil": "^4.0.8", "bufferutil": "^4.0.8",
"dayjs": "^1.11.10", "dayjs": "^1.11.10",
"dotenv": "^16.4.5",
"echarts": "^5.4.3", "echarts": "^5.4.3",
"echarts-for-react": "^3.0.2", "echarts-for-react": "^3.0.2",
"embla-carousel-react": "^8.0.0-rc14", "embla-carousel-react": "^8.0.0-rc14",

View File

@@ -1,14 +1,9 @@
import { sealData } from "iron-session";
import { myConsole } from "@/app/fun/my_console"; import { myConsole } from "@/app/fun/my_console";
import { PwdCookies } from "@/app/lib";
import prisma from "@/app/lib/prisma"; import prisma from "@/app/lib/prisma";
import { data } from "autoprefixer"; import { sealData } from "iron-session";
import { NextResponse } from "next/server";
import { cookies } from "next/headers"; import { cookies } from "next/headers";
import { getConfig } from "@/bin/config"; import { NextResponse } from "next/server";
import fs from "fs";
import yaml from "yaml";
const config = yaml.parse(fs.readFileSync("config.yaml").toString());
export async function POST(req: Request) { export async function POST(req: Request) {
if (req.method === "POST") { if (req.method === "POST") {
@@ -40,7 +35,7 @@ export async function POST(req: Request) {
username: data.username, username: data.username,
}), }),
{ {
password: await config.server.password, password: PwdCookies,
} }
); );

View File

@@ -1,13 +1,10 @@
import { myConsole } from "@/app/fun/my_console"; import { myConsole } from "@/app/fun/my_console";
import { PwdCookies } from "@/app/lib";
import prisma from "@/app/lib/prisma"; import prisma from "@/app/lib/prisma";
import { NextResponse } from "next/server"; import { sealData } from "iron-session";
import { cookies } from "next/headers";
import { sealData, unsealData } from "iron-session";
import { getConfig } from "@/bin/config";
import { revalidatePath } from "next/cache"; import { revalidatePath } from "next/cache";
import fs from "fs"; import { cookies } from "next/headers";
import yaml from "yaml"; import { NextResponse } from "next/server";
const config = yaml.parse(fs.readFileSync("config.yaml").toString());
export async function POST(req: Request) { export async function POST(req: Request) {
if (req.method === "POST") { if (req.method === "POST") {
@@ -36,7 +33,7 @@ export async function POST(req: Request) {
username: data.username, username: data.username,
}), }),
{ {
password: await config.server.password, password: await PwdCookies,
} }
); );

View File

@@ -1,9 +1,6 @@
import { Login } from "@/app_modules/auth"; import { Login } from "@/app_modules/auth";
import { cookies } from "next/headers";
export default function Page() { export default function Page() {
const c: any = cookies().getAll();
return ( return (
<> <>
<Login /> <Login />

View File

@@ -1,16 +1,6 @@
import { SplashScreen } from "@/app_modules/auth"; import { SplashScreen } from "@/app_modules/auth";
import { useShallowEffect } from "@mantine/hooks";
import { cookies } from "next/headers";
import { useRouter } from "next/navigation";
import { useState } from "react";
import { unsealData } from "iron-session";
import { getConfig } from "@/bin/config";
import yaml from "yaml";
import fs from "fs";
import { user_funGetOneUserId } from "@/app_modules/fun_global"; import { user_funGetOneUserId } from "@/app_modules/fun_global";
const config = yaml.parse(fs.readFileSync("config.yaml").toString());
export default async function PageSplash() { export default async function PageSplash() {
const userLoginId = await user_funGetOneUserId(); const userLoginId = await user_funGetOneUserId();

View File

@@ -1,23 +1,12 @@
import { InvestasiCreate } from "@/app_modules/investasi"; import { InvestasiCreate } from "@/app_modules/investasi";
import { unsealData } from "iron-session"; import getPembagianDeviden from "@/app_modules/investasi/fun/master/get_pembagian_deviden";
import { cookies } from "next/headers";
import yaml from "yaml";
import fs from "fs";
import { funCreateInvestasi } from "@/app_modules/investasi/fun/fun_create_investasi";
import getPencarianInvestor from "@/app_modules/investasi/fun/master/get_pencarian_investor"; import getPencarianInvestor from "@/app_modules/investasi/fun/master/get_pencarian_investor";
import getPeriodeDeviden from "@/app_modules/investasi/fun/master/get_periode_deviden"; import getPeriodeDeviden from "@/app_modules/investasi/fun/master/get_periode_deviden";
import getPembagianDeviden from "@/app_modules/investasi/fun/master/get_pembagian_deviden";
import getStatusInvestasi from "@/app_modules/investasi/fun/master/get_status_investasi"; import getStatusInvestasi from "@/app_modules/investasi/fun/master/get_status_investasi";
import { unsealData } from "iron-session";
const config = yaml.parse(fs.readFileSync("config.yaml").toString()); import { cookies } from "next/headers";
export default async function Page() { export default async function Page() {
const c = cookies().get("ssn");
const tkn = JSON.parse(
await unsealData(c?.value as string, {
password: config.server.password,
})
);
const pencarianInvestor = await getPencarianInvestor(); const pencarianInvestor = await getPencarianInvestor();
const periodeDeviden = await getPeriodeDeviden(); const periodeDeviden = await getPeriodeDeviden();
@@ -27,7 +16,6 @@ export default async function Page() {
return ( return (
<> <>
<InvestasiCreate <InvestasiCreate
id={tkn.id}
pencarianInvestor={pencarianInvestor as any} pencarianInvestor={pencarianInvestor as any}
periodeDeviden={periodeDeviden as any} periodeDeviden={periodeDeviden as any}
pembagianDeviden={pembagianDeviden as any} pembagianDeviden={pembagianDeviden as any}

View File

@@ -1,18 +1,7 @@
import { investasi_funGetSuccessTransactionById } from "@/app_modules/investasi/_fun"; import { investasi_funGetSuccessTransactionById } from "@/app_modules/investasi/_fun";
import { Investasi_UiSahamSaya } from "@/app_modules/investasi/_ui"; import { Investasi_UiSahamSaya } from "@/app_modules/investasi/_ui";
import fs from "fs";
import yaml from "yaml";
const config = yaml.parse(fs.readFileSync("config.yaml").toString());
export default async function Page() { export default async function Page() {
// const c = cookies().get("ssn");
// const user = JSON.parse(
// await unsealData(c?.value as string, {
// password: config.server.password,
// })
// );
// const listTransaksi = await getListTransaksiBerhasilInvestasi(user.id);
const dataSaham = await investasi_funGetSuccessTransactionById({ page: 1 }); const dataSaham = await investasi_funGetSuccessTransactionById({ page: 1 });
return ( return (

View File

@@ -1,17 +1,9 @@
import { TransaksiInvestasi } from "@/app_modules/investasi";
import getListAllTransaksiById_Investasi from "@/app_modules/investasi/fun/get_list_all_transaksi_by_id"; import getListAllTransaksiById_Investasi from "@/app_modules/investasi/fun/get_list_all_transaksi_by_id";
import getMaster_StatusTransaksiInvestasi from "@/app_modules/investasi/fun/master/get_status_transaksi"; import getMaster_StatusTransaksiInvestasi from "@/app_modules/investasi/fun/master/get_status_transaksi";
import fs from "fs";
import yaml from "yaml";
import { unsealData } from "iron-session";
import { cookies } from "next/headers";
import funCountDown from "@/app_modules/investasi/fun/fun_countdown_investasi";
import funCekSisaWaktuTransaksiInvestasi from "@/app_modules/investasi/fun/fun_cek_sisa_waktu";
import { user_funGetOneUserId } from "@/app_modules/fun_global/get_user_token"; import { user_funGetOneUserId } from "@/app_modules/fun_global/get_user_token";
import { investasi_funGetTransaksiByUserId } from "@/app_modules/investasi/_fun"; import { investasi_funGetTransaksiByUserId } from "@/app_modules/investasi/_fun";
import { Investasi_UiDaftarTransaksi } from "@/app_modules/investasi/_ui"; import { Investasi_UiDaftarTransaksi } from "@/app_modules/investasi/_ui";
const config = yaml.parse(fs.readFileSync("config.yaml").toString());
export default async function Page() { export default async function Page() {
const userId = await user_funGetOneUserId(); const userId = await user_funGetOneUserId();
@@ -19,7 +11,7 @@ export default async function Page() {
const listTransaksi = await getListAllTransaksiById_Investasi(userId); const listTransaksi = await getListAllTransaksiById_Investasi(userId);
// NEW // NEW
const dataTransaksi = await investasi_funGetTransaksiByUserId({page: 1}); const dataTransaksi = await investasi_funGetTransaksiByUserId({ page: 1 });
return ( return (
<> <>
@@ -27,7 +19,7 @@ export default async function Page() {
statusTransaksi={statusTransaksi as any} statusTransaksi={statusTransaksi as any}
listTransaksi={listTransaksi as any} listTransaksi={listTransaksi as any}
/> */} /> */}
<Investasi_UiDaftarTransaksi dataTransaksi={dataTransaksi}/> <Investasi_UiDaftarTransaksi dataTransaksi={dataTransaksi} />
</> </>
); );
} }

View File

@@ -2,21 +2,10 @@ import { MetodeTransferInvestasi } from "@/app_modules/investasi";
import getOneInvestasiById from "@/app_modules/investasi/fun/get_one_investasi_by_id"; import getOneInvestasiById from "@/app_modules/investasi/fun/get_one_investasi_by_id";
import getMaster_NamaBank from "@/app_modules/investasi/fun/master/get_nama_bank"; import getMaster_NamaBank from "@/app_modules/investasi/fun/master/get_nama_bank";
import yaml from "yaml"; import { user_funGetOneUserId } from "@/app_modules/fun_global";
import fs from "fs";
import { cookies } from "next/headers";
import { unsealData } from "iron-session";
const config = yaml.parse(fs.readFileSync("config.yaml").toString());
export default async function Page({ params }: { params: { id: string } }) { export default async function Page({ params }: { params: { id: string } }) {
const c = cookies().get("ssn"); const authorId = await user_funGetOneUserId();
const usr = JSON.parse(
await unsealData(c?.value as string, {
password: config.server.password,
})
);
const authorId = usr.id;
const dataInvestasi = await getOneInvestasiById(params.id); const dataInvestasi = await getOneInvestasiById(params.id);
const namaBank = await getMaster_NamaBank(); const namaBank = await getMaster_NamaBank();
// console.log(namaBank) // console.log(namaBank)

View File

@@ -1,21 +1,11 @@
import { user_funGetOneUserId } from "@/app_modules/fun_global";
import { funGetUserProfile } from "@/app_modules/fun_global/get_user_profile";
import { ProsesTransaksiInvestasi } from "@/app_modules/investasi"; import { ProsesTransaksiInvestasi } from "@/app_modules/investasi";
import getOneInvestasiById from "@/app_modules/investasi/fun/get_one_investasi_by_id"; import getOneInvestasiById from "@/app_modules/investasi/fun/get_one_investasi_by_id";
import { unsealData } from "iron-session";
import { cookies } from "next/headers";
import { funGetUserProfile } from "@/app_modules/fun_global/get_user_profile";
import yaml from "yaml";
import fs from "fs";
const config = yaml.parse(fs.readFileSync("config.yaml").toString());
export default async function Page({ params }: { params: { id: string } }) { export default async function Page({ params }: { params: { id: string } }) {
const c = cookies().get("ssn"); const authorId = await user_funGetOneUserId();
const user = JSON.parse( const userLogin = await funGetUserProfile(authorId);
await unsealData(c?.value as string, {
password: config.server.password,
})
);
const userLogin = await funGetUserProfile(user.id);
const dataInvestasi = await getOneInvestasiById(params.id); const dataInvestasi = await getOneInvestasiById(params.id);
// console.log(dataInvestasi); // console.log(dataInvestasi);

View File

@@ -4,18 +4,15 @@ import "./globals.css";
import { TokenProvider } from "./lib/token"; import { TokenProvider } from "./lib/token";
const token = process.env.WS_APIKEY; const token = process.env.WS_APIKEY;
const pwdCookies = process.env.PWD;
export default function RootLayout({ export default function RootLayout({
children, children,
}: { }: {
children: React.ReactNode; children: React.ReactNode;
}) { }) {
if (!token) if (!token) return <>Require Token Storage</>;
return ( console.log(pwdCookies)
<>
<center style={{ height: "100vh" }}>Require Token Storage</center>
</>
);
return ( return (
<RootStyleRegistry> <RootStyleRegistry>
<MqttLoader /> <MqttLoader />

View File

@@ -1,7 +1,9 @@
import APIs from "./APIs"; import APIs from "./APIs";
import DIRECTORY_ID from "./id-derectory"; import DIRECTORY_ID from "./id-derectory";
import prisma from "./prisma"; import prisma from "./prisma";
import { PwdCookies } from "./pwd";
export { DIRECTORY_ID }; export { DIRECTORY_ID };
export { prisma }; export { prisma };
export { APIs }; export { APIs };
export { PwdCookies };

5
src/app/lib/pwd.ts Normal file
View File

@@ -0,0 +1,5 @@
import "dotenv/config";
const dotenv = require("dotenv").config(".env");
const PwdCookies = dotenv?.parsed.PWD;
export { PwdCookies };

View File

@@ -1,13 +1,13 @@
"use client"; "use client";
import { RouterAdminJob } from "@/app/lib/router_admin/router_admin_job"; import { RouterAdminJob } from "@/app/lib/router_admin/router_admin_job";
import { ComponentAdminGlobal_TitlePage } from "@/app_modules/admin/_admin_global/_component";
import ComponentAdminGlobal_HeaderTamplate from "@/app_modules/admin/_admin_global/header_tamplate"; import ComponentAdminGlobal_HeaderTamplate from "@/app_modules/admin/_admin_global/header_tamplate";
import { MODEL_JOB } from "@/app_modules/job/model/interface"; import { MODEL_JOB } from "@/app_modules/job/model/interface";
import { import {
Badge, Badge,
Button, Button,
Center, Center,
Group,
Pagination, Pagination,
Paper, Paper,
ScrollArea, ScrollArea,
@@ -16,14 +16,11 @@ import {
Table, Table,
Text, Text,
TextInput, TextInput,
Title,
} from "@mantine/core"; } from "@mantine/core";
import { IconEyeCheck, IconSearch } from "@tabler/icons-react"; import { IconPhotoCheck, IconSearch } from "@tabler/icons-react";
import { useRouter } from "next/navigation"; import { useRouter } from "next/navigation";
import { useState } from "react"; import { useState } from "react";
import adminJob_getListPublish from "../../fun/get/get_list_publish"; import adminJob_getListPublish from "../../fun/get/get_list_publish";
import { IconPhotoCheck } from "@tabler/icons-react";
import { ComponentAdminGlobal_TitlePage } from "@/app_modules/admin/_admin_global/_component";
export default function AdminJob_TablePublish({ export default function AdminJob_TablePublish({
dataPublish, dataPublish,

View File

@@ -1,14 +1,13 @@
"use server"; "use server";
import { PwdCookies } from "@/app/lib";
import prisma from "@/app/lib/prisma"; import prisma from "@/app/lib/prisma";
import { sealData } from "iron-session"; import { sealData } from "iron-session";
import { cookies } from "next/headers"; import { cookies } from "next/headers";
import fs from "fs";
import yaml from "yaml";
const config = yaml.parse(fs.readFileSync("config.yaml").toString());
export async function Auth_funRegister(data: any) { export async function Auth_funRegister(data: any) {
const cekUsername = await prisma.user.findUnique({ const cekUsername = await prisma.user.findUnique({
where: { where: {
username: data.username, username: data.username,
@@ -35,7 +34,7 @@ export async function Auth_funRegister(data: any) {
username: create.username, username: create.username,
}), }),
{ {
password: await config.server.password, password: PwdCookies
} }
); );

View File

@@ -2,12 +2,11 @@
import prisma from "@/app/lib/prisma"; import prisma from "@/app/lib/prisma";
import { sealData } from "iron-session"; import { sealData } from "iron-session";
import fs from "fs";
import yaml from "yaml";
import { cookies } from "next/headers"; import { cookies } from "next/headers";
import { revalidatePath } from "next/cache"; import { revalidatePath } from "next/cache";
import { RouterHome } from "@/app/lib/router_hipmi/router_home"; import { RouterHome } from "@/app/lib/router_hipmi/router_home";
const config = yaml.parse(fs.readFileSync("config.yaml").toString()); import { PwdCookies } from "@/app/lib";
export async function auth_funValidasi(nomor: string) { export async function auth_funValidasi(nomor: string) {
const cek = await prisma.user.findUnique({ const cek = await prisma.user.findUnique({
@@ -30,7 +29,7 @@ export async function auth_funValidasi(nomor: string) {
username: cek.username, username: cek.username,
}), }),
{ {
password: await config.server.password, password: PwdCookies,
} }
); );

View File

@@ -15,7 +15,7 @@ import {
Center, Center,
Stack, Stack,
Text, Text,
Title Title,
} from "@mantine/core"; } from "@mantine/core";
import { useFocusTrap } from "@mantine/hooks"; import { useFocusTrap } from "@mantine/hooks";
import { useAtom } from "jotai"; import { useAtom } from "jotai";
@@ -56,22 +56,6 @@ export default function Login() {
// }, // },
// body: JSON.stringify(body), // body: JSON.stringify(body),
// }) // })
// .then((res) => res.json())
// .then((val) => {
// // console.log(val);
// if (val.success === true) {
// router.push(RouterAdminDashboard.splash_admin);
// } else {
// if (val.status == 200) {
// setCode(val.body.otp);
// setInputNumber(val.body.nomor);
// router.push("/dev/auth/validasi");
// return NotifBerhasil("Nomor OTP terkirim");
// } else {
// NotifGagal(val.message);
// }
// }
// });
} }
return ( return (

View File

@@ -1,13 +1,12 @@
"use server"; "use server";
import { cookies } from "next/headers"; import { cookies } from "next/headers";
import yaml from "yaml";
import fs from "fs";
import { unsealData } from "iron-session"; import { unsealData } from "iron-session";
import { redirect } from "next/navigation"; import { redirect } from "next/navigation";
import { RouterAuth } from "@/app/lib/router_hipmi/router_auth"; import { RouterAuth } from "@/app/lib/router_hipmi/router_auth";
import _ from "lodash"; import _ from "lodash";
const config = yaml.parse(fs.readFileSync("config.yaml").toString()); import { PwdCookies } from "@/app/lib";
export async function user_funGetOneUserId() { export async function user_funGetOneUserId() {
const kukis = cookies(); const kukis = cookies();
@@ -17,7 +16,7 @@ export async function user_funGetOneUserId() {
const token = JSON.parse( const token = JSON.parse(
await unsealData(c?.value as string, { await unsealData(c?.value as string, {
password: config.server.password, password: PwdCookies,
}) })
); );

View File

@@ -39,12 +39,10 @@ import { funCreateInvestasi } from "../fun/fun_create_investasi";
import { gs_investas_menu, gs_investasi_status } from "../g_state"; import { gs_investas_menu, gs_investasi_status } from "../g_state";
export default function InvestasiCreate({ export default function InvestasiCreate({
id,
pencarianInvestor, pencarianInvestor,
periodeDeviden, periodeDeviden,
pembagianDeviden, pembagianDeviden,
}: { }: {
id: string;
pencarianInvestor: MODEL_DEFAULT_MASTER_OLD[]; pencarianInvestor: MODEL_DEFAULT_MASTER_OLD[];
periodeDeviden: MODEL_DEFAULT_MASTER_OLD[]; periodeDeviden: MODEL_DEFAULT_MASTER_OLD[];
pembagianDeviden: MODEL_DEFAULT_MASTER_OLD[]; pembagianDeviden: MODEL_DEFAULT_MASTER_OLD[];
@@ -74,7 +72,6 @@ export default function InvestasiCreate({
async function onSubmit() { async function onSubmit() {
const body = { const body = {
authorId: id,
title: value.title, title: value.title,
targetDana: value.targetDana, targetDana: value.targetDana,
hargaLembar: value.hargaLembar, hargaLembar: value.hargaLembar,

View File

@@ -8,12 +8,14 @@ import { revalidatePath } from "next/cache";
import { RouterInvestasi_OLD } from "@/app/lib/router_hipmi/router_investasi"; import { RouterInvestasi_OLD } from "@/app/lib/router_hipmi/router_investasi";
import { MODEL_INVESTASI } from "../_lib/interface"; import { MODEL_INVESTASI } from "../_lib/interface";
import funUploadProspektusInvestasi from "./fun_upload_prospek"; import funUploadProspektusInvestasi from "./fun_upload_prospek";
import { user_funGetOneUserId } from "@/app_modules/fun_global";
export async function funCreateInvestasi( export async function funCreateInvestasi(
fileGambar: FormData, fileGambar: FormData,
filePdf: FormData, filePdf: FormData,
data: MODEL_INVESTASI data: MODEL_INVESTASI
) { ) {
const authorId = await user_funGetOneUserId();
// Function upload gambar // Function upload gambar
const gambar: any = fileGambar.get("file"); const gambar: any = fileGambar.get("file");
const gambarName = gambar.name; const gambarName = gambar.name;
@@ -42,7 +44,7 @@ export async function funCreateInvestasi(
const createInvest = await prisma.investasi.create({ const createInvest = await prisma.investasi.create({
data: { data: {
authorId: data.authorId, authorId: authorId,
title: _.startCase(data.title), title: _.startCase(data.title),
targetDana: data.targetDana.toString(), targetDana: data.targetDana.toString(),
hargaLembar: data.hargaLembar.toString(), hargaLembar: data.hargaLembar.toString(),

View File

@@ -2826,6 +2826,11 @@ domutils@^2.8.0:
domelementtype "^2.2.0" domelementtype "^2.2.0"
domhandler "^4.2.0" domhandler "^4.2.0"
dotenv@^16.4.5:
version "16.4.5"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f"
integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==
drawille-blessed-contrib@>=0.0.1: drawille-blessed-contrib@>=0.0.1:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/drawille-blessed-contrib/-/drawille-blessed-contrib-1.0.0.tgz#15c27934f57a0056ad13596e1561637bc941f0b7" resolved "https://registry.yarnpkg.com/drawille-blessed-contrib/-/drawille-blessed-contrib-1.0.0.tgz#15c27934f57a0056ad13596e1561637bc941f0b7"