Change Audiens
This commit is contained in:
@@ -4,48 +4,34 @@ import bcrypt from 'bcryptjs';
|
||||
|
||||
export async function POST(request: Request) {
|
||||
try {
|
||||
const { username, nim, password } = await request.json();
|
||||
const { nip, password } = await request.json();
|
||||
|
||||
// Validate input
|
||||
if (!username || !nim || !password) {
|
||||
if (!nip || !password) {
|
||||
return NextResponse.json(
|
||||
{ error: 'Semua field harus diisi' },
|
||||
{ error: 'NIP dan password harus diisi' },
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
|
||||
// Validate NIM format (11 characters)
|
||||
if (nim.length !== 11) {
|
||||
// Validate password length
|
||||
if (password.length < 6) {
|
||||
return NextResponse.json(
|
||||
{ error: 'NIM harus 11 karakter' },
|
||||
{ error: 'Password minimal 6 karakter' },
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
|
||||
// Check if NIM exists in mahasiswa table
|
||||
const { data: mahasiswa, error: mahasiswaError } = await supabase
|
||||
.from('mahasiswa')
|
||||
.select('nim')
|
||||
.eq('nim', nim)
|
||||
.single();
|
||||
|
||||
if (mahasiswaError || !mahasiswa) {
|
||||
return NextResponse.json(
|
||||
{ error: 'NIM tidak terdaftar sebagai mahasiswa' },
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
|
||||
// Check if NIM already exists in user_app table
|
||||
// Check if NIP already exists in user_app table
|
||||
const { data: existingUsers, error: userError } = await supabase
|
||||
.from('user_app')
|
||||
.select('nim')
|
||||
.eq('nim', nim)
|
||||
.select('nip')
|
||||
.eq('nip', nip)
|
||||
.single();
|
||||
|
||||
if (!userError && existingUsers) {
|
||||
return NextResponse.json(
|
||||
{ error: 'NIM sudah terdaftar sebagai pengguna' },
|
||||
{ error: 'NIP sudah terdaftar sebagai pengguna' },
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
@@ -53,14 +39,13 @@ export async function POST(request: Request) {
|
||||
// Hash password
|
||||
const hashedPassword = await bcrypt.hash(password, 10);
|
||||
|
||||
// Insert new user
|
||||
// Insert new user with default role 'dosen'
|
||||
const { data: newUser, error: insertError } = await supabase
|
||||
.from('user_app')
|
||||
.insert({
|
||||
nim: nim,
|
||||
username: username,
|
||||
nip: nip,
|
||||
password: hashedPassword,
|
||||
role: 'mahasiswa'
|
||||
role_user: 'dosen' // Default role for registration
|
||||
})
|
||||
.select()
|
||||
.single();
|
||||
|
||||
Reference in New Issue
Block a user