เช็ค User ซ้ำ

This commit is contained in:
x2Skyz
2025-11-23 15:54:16 +07:00
parent 02b1a6f31b
commit 18a8548596
4 changed files with 21 additions and 7 deletions

3
.gitignore vendored
View File

@@ -1,3 +1,4 @@
node_modules
package-lock.json
package-lock.json
/exthernal-rentroom-api

View File

@@ -13,7 +13,7 @@ SMTP_USER=lalisakuty@gmail.com
SMTP_PASS=lurl pckw qugk tzob
# REDIS
REDIS_HOST=10.9.0.0x
REDIS_HOST=10.9.0.0
REDIS_PORT=6379
OTP_TTL_SECONDS=300

View File

@@ -23,18 +23,20 @@ export class RegisterController {
async onRegisterController(req, res, database) {
let idx = -1
let result = []
let aryUserDuplicate = [];
try {
// 1. ดึง Sequence ล่าสุดจาก Service (เพื่อเอามา +1)
const Seq = await this.registerService.genNum(database);
var Seq = await this.registerService.genNum(database);
// 2. Hash Password
let passwordRaw = req.body.request.password;
const saltRounds = 10;
const hashedPassword = await bcrypt.hash(passwordRaw, saltRounds);
var hashedPassword = await bcrypt.hash(passwordRaw, saltRounds);
// 3. เรียก makeArySave เพื่อเตรียมข้อมูลและบันทึกผ่าน saveInterface
// ส่ง nextSeq และ hashedPassword เข้าไป
result = await this.makeArySave(req, Seq, hashedPassword);
aryUserDuplicate = await this.registerService.checkUserDuplicate(database, req.body.request.email);
this.generalService.devhint(1, 'registercontroller.js', 'Register success');
@@ -42,6 +44,8 @@ export class RegisterController {
idx = 1;
} finally {
if (idx === 1) return sendError('เกิดข้อผิดพลาดไม่คาดคิดเกิดขึ้น', 'Unexpected error');
if (aryUserDuplicate.length > 0) return sendError('มีชื่อผู้ใช้หรืออีเมลนี้ในระบบแล้ว', 'Username or Email already exists');
result = await this.makeArySave(req, Seq, hashedPassword);
if (!result) return sendError('ไม่สามารถลงทะเบียนได้', 'Registration failed');
return result
}
@@ -51,10 +55,10 @@ export class RegisterController {
// Map ข้อมูลเข้า Field ตามตาราง usrmst
let arysave = {
methods: 'post', // สั่งให้ saveInterface ทำการ INSERT
usrseq: seq + 1, // PK: integer
usrseq: seq, // PK: integer
usrnam: validateSave(req.body.request.username, 'username'),
usrpwd: hashedPassword, // character varying(255)
usreml: validateSave(req.body.request.email, 'Email'), // character varying(50)
usreml: req.body.request.email, // character varying(50)
usrthinam: validateSave(req.body.request.firstname, 'firstname'), // character varying(100)
usrthilstnam: validateSave(req.body.request.lastname, 'lastname'), // character varying(100)

View File

@@ -40,6 +40,15 @@ export class RegisterService {
}
}
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;
}
async genNum(database) {
const sql = `