Files
micro-service-api/exthernal-login-api/src/services/registerservice.js

66 lines
1.9 KiB
JavaScript
Raw Normal View History

import { GeneralService } from '../share/generalservice.js'
import bcrypt from 'bcrypt'
2025-11-11 12:36:06 +07:00
export class RegisterService {
constructor() {
this.generalService = new GeneralService()
2025-11-11 12:36:06 +07:00
}
async createUser(database, userData) {
// 1. ทำการ Hash Password
const saltRounds = 10;
const hashedPassword = await bcrypt.hash(userData.password, saltRounds);
// 2. เตรียม SQL
const sql = `
INSERT INTO ${database}.usrmst
(username, password, email, firstname, lastname, created_at)
VALUES (?, ?, ?, ?, ?, NOW())
`
// 3. ใช้ hashedPassword แทน password เดิม
const params = [
userData.username,
hashedPassword, // ส่งตัวที่ Hash แล้วเข้า DB
userData.email,
userData.firstname,
userData.lastname
]
2025-11-11 12:36:06 +07:00
try {
const result = await this.generalService.executeQueryParam(database, sql, params);
// เช็คผลลัพธ์ตาม Structure ของ GeneralService
// สมมติว่าถ้า Error ตัว executeQueryParam อาจจะ throw หรือ return null
return { status: true, message: 'Registration successful' };
2025-11-11 12:36:06 +07:00
} catch (error) {
console.error('Register Service Error:', error);
return null;
2025-11-11 12:36:06 +07:00
}
}
2025-11-23 15:54:16 +07:00
async checkUserDuplicate(database, email) {
const sql = `
SELECT * FROM nuttakit.usrmst
WHERE usreml = $1
`
const params = [email]
const aryResult = await this.generalService.executeQueryParam(database, sql, params);
return aryResult;
}
2025-11-11 12:36:06 +07:00
async genNum(database) {
const sql = `
SELECT
MAX(usrseq) as max_seq
FROM nuttakit.usrmst
`
const params = []
const aryResult = await this.generalService.executeQueryParam(database, sql, params);
2025-11-11 12:36:06 +07:00
const lastSeq = aryResult[0]?.max_seq || 0;
2025-11-11 12:36:06 +07:00
return lastSeq + 1;
2025-11-11 12:36:06 +07:00
}
}