Fix rejected Apple:
Penambahan fitur checklist terms of service dan penambahan database blockuser Add: - prisma/migrations/20251124061947_add_terms_of_service_accepted/ - prisma/migrations/20251124081155_add_blocked_user_and_menu_feature/ - prisma/migrations/20251124083155_fix_master_kategori_app_and_delete_menu_feature/ - public/terms-of-service.html - src/app/api/auth/term-service/ Fix: - prisma/schema.prisma - src/app/api/auth/register/route.ts - src/app/api/auth/validasi/route.ts - src/app_modules/_global/fun/generate_seeder.ts - src/bin/seeder/master/master_kategori_app.json - src/bin/seeder/user_seeder.json - src/middleware.tsx ### No Issue
This commit is contained in:
@@ -14,6 +14,8 @@ export async function POST(req: Request) {
|
||||
try {
|
||||
const { data } = await req.json();
|
||||
|
||||
console.log("data >>", data);
|
||||
|
||||
const cekUsername = await prisma.user.findUnique({
|
||||
where: {
|
||||
username: data.username,
|
||||
@@ -26,11 +28,20 @@ export async function POST(req: Request) {
|
||||
message: "Username sudah digunakan",
|
||||
});
|
||||
|
||||
// ✅ Validasi wajib setuju Terms
|
||||
if (data.termsOfServiceAccepted !== true) {
|
||||
return NextResponse.json({
|
||||
success: false,
|
||||
message: "You must agree to the Terms of Service",
|
||||
});
|
||||
}
|
||||
|
||||
const createUser = await prisma.user.create({
|
||||
data: {
|
||||
username: data.username,
|
||||
nomor: data.nomor,
|
||||
active: false,
|
||||
termsOfServiceAccepted: data.termsOfServiceAccepted,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -51,7 +62,7 @@ export async function POST(req: Request) {
|
||||
success: true,
|
||||
message: "Registrasi Berhasil, Anda Sedang Login",
|
||||
token: token,
|
||||
// data: createUser,
|
||||
// data: createUser,x
|
||||
},
|
||||
{ status: 201 }
|
||||
);
|
||||
@@ -65,7 +76,5 @@ export async function POST(req: Request) {
|
||||
},
|
||||
{ status: 500 }
|
||||
);
|
||||
} finally {
|
||||
await prisma.$disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
29
src/app/api/auth/term-service/route.ts
Normal file
29
src/app/api/auth/term-service/route.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import { NextResponse } from "next/server";
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export async function POST(req: Request) {
|
||||
try {
|
||||
const { data } = await req.json();
|
||||
console.log("data >>", data);
|
||||
|
||||
const updateTermService = await prisma.user.update({
|
||||
where: {
|
||||
id: data.id,
|
||||
},
|
||||
data: {
|
||||
termsOfServiceAccepted: data.termsOfServiceAccepted,
|
||||
},
|
||||
});
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
message: "Berhasil",
|
||||
});
|
||||
} catch (error) {
|
||||
console.log("error >>", error);
|
||||
return NextResponse.json({
|
||||
success: false,
|
||||
message: "Gagal",
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,7 @@ export async function POST(req: Request) {
|
||||
username: true,
|
||||
active: true,
|
||||
masterUserRoleId: true,
|
||||
termsOfServiceAccepted: true,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -52,6 +53,7 @@ export async function POST(req: Request) {
|
||||
message: "Berhasil Login",
|
||||
roleId: dataUser.masterUserRoleId,
|
||||
active: dataUser.active,
|
||||
termsOfServiceAccepted: dataUser.termsOfServiceAccepted,
|
||||
token: token,
|
||||
},
|
||||
{ status: 200 }
|
||||
@@ -76,7 +78,5 @@ export async function POST(req: Request) {
|
||||
},
|
||||
{ status: 500 }
|
||||
);
|
||||
} finally {
|
||||
await prisma.$disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,12 +60,14 @@ async function seederUser() {
|
||||
username: i.name,
|
||||
masterUserRoleId: i.masterUserRoleId,
|
||||
active: i.active,
|
||||
termsOfServiceAccepted: i.termsOfServiceAccepted,
|
||||
},
|
||||
update: {
|
||||
nomor: i.nomor,
|
||||
username: i.name,
|
||||
masterUserRoleId: i.masterUserRoleId,
|
||||
active: i.active,
|
||||
termsOfServiceAccepted: i.termsOfServiceAccepted,
|
||||
},
|
||||
});
|
||||
}
|
||||
@@ -564,10 +566,12 @@ async function masterKategoriApp() {
|
||||
create: {
|
||||
id: a.id,
|
||||
name: a.name,
|
||||
value: a.value,
|
||||
},
|
||||
update: {
|
||||
id: a.id,
|
||||
name: a.name,
|
||||
value: a.value,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,30 +1,37 @@
|
||||
[
|
||||
{
|
||||
"id": "1",
|
||||
"name": "Event"
|
||||
"name": "Event",
|
||||
"value": "event"
|
||||
},
|
||||
{
|
||||
"id": "2",
|
||||
"name": "Job"
|
||||
"name": "Job",
|
||||
"value": "job"
|
||||
},
|
||||
{
|
||||
"id": "3",
|
||||
"name": "Voting"
|
||||
"name": "Voting",
|
||||
"value": "voting"
|
||||
},
|
||||
{
|
||||
"id": "4",
|
||||
"name": "Donasi"
|
||||
"name": "Donasi",
|
||||
"value": "donasi"
|
||||
},
|
||||
{
|
||||
"id": "5",
|
||||
"name": "Investasi"
|
||||
"name": "Investasi",
|
||||
"value": "investasi"
|
||||
},
|
||||
{
|
||||
"id": "6",
|
||||
"name": "Forum"
|
||||
"name": "Forum",
|
||||
"value": "forum"
|
||||
},
|
||||
{
|
||||
"id": "7",
|
||||
"name": "Collaboration"
|
||||
"name": "Collaboration",
|
||||
"value": "collaboration"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -3,12 +3,14 @@
|
||||
"name": "bagas_admin",
|
||||
"nomor": "6282340374412",
|
||||
"masterUserRoleId": "3",
|
||||
"active": true
|
||||
"active": true,
|
||||
"termsOfServiceAccepted": true
|
||||
},
|
||||
{
|
||||
"name": "fahmi_admin",
|
||||
"nomor": "628123833845",
|
||||
"masterUserRoleId": "2",
|
||||
"active": true
|
||||
"active": true,
|
||||
"termsOfServiceAccepted": true
|
||||
}
|
||||
]
|
||||
|
||||
@@ -19,6 +19,7 @@ const CONFIG: MiddlewareConfig = {
|
||||
publicRoutes: [
|
||||
"/",
|
||||
"/.well-known/*",
|
||||
"/terms-of-service.html",
|
||||
"/privacy-policy.html",
|
||||
"/api/helper/*",
|
||||
"/api/not-user/*",
|
||||
|
||||
Reference in New Issue
Block a user