Compare commits

...

2 Commits

Author SHA1 Message Date
x2Skyz
74dead1f4b Merge branch 'master' of http://10.9.0.0/ttc/micro-service-api
All checks were successful
Build Docker Image / Build Docker Image (push) Successful in 3m10s
# Conflicts:
#	exthernal-accountingwep-api/.env
2025-11-23 15:55:40 +07:00
x2Skyz
18a8548596 เช็ค User ซ้ำ 2025-11-23 15:54:16 +07:00
3 changed files with 20 additions and 6 deletions

3
.gitignore vendored
View File

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

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 = `