เช็ค User ซ้ำ
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
node_modules
|
node_modules
|
||||||
|
|
||||||
package-lock.json
|
package-lock.json
|
||||||
|
/exthernal-rentroom-api
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ SMTP_USER=lalisakuty@gmail.com
|
|||||||
SMTP_PASS=lurl pckw qugk tzob
|
SMTP_PASS=lurl pckw qugk tzob
|
||||||
|
|
||||||
# REDIS
|
# REDIS
|
||||||
REDIS_HOST=10.9.0.0x
|
REDIS_HOST=10.9.0.0
|
||||||
REDIS_PORT=6379
|
REDIS_PORT=6379
|
||||||
OTP_TTL_SECONDS=300
|
OTP_TTL_SECONDS=300
|
||||||
|
|
||||||
|
|||||||
@@ -23,18 +23,20 @@ export class RegisterController {
|
|||||||
async onRegisterController(req, res, database) {
|
async onRegisterController(req, res, database) {
|
||||||
let idx = -1
|
let idx = -1
|
||||||
let result = []
|
let result = []
|
||||||
|
let aryUserDuplicate = [];
|
||||||
try {
|
try {
|
||||||
// 1. ดึง Sequence ล่าสุดจาก Service (เพื่อเอามา +1)
|
// 1. ดึง Sequence ล่าสุดจาก Service (เพื่อเอามา +1)
|
||||||
const Seq = await this.registerService.genNum(database);
|
var Seq = await this.registerService.genNum(database);
|
||||||
|
|
||||||
// 2. Hash Password
|
// 2. Hash Password
|
||||||
let passwordRaw = req.body.request.password;
|
let passwordRaw = req.body.request.password;
|
||||||
const saltRounds = 10;
|
const saltRounds = 10;
|
||||||
const hashedPassword = await bcrypt.hash(passwordRaw, saltRounds);
|
var hashedPassword = await bcrypt.hash(passwordRaw, saltRounds);
|
||||||
|
|
||||||
// 3. เรียก makeArySave เพื่อเตรียมข้อมูลและบันทึกผ่าน saveInterface
|
// 3. เรียก makeArySave เพื่อเตรียมข้อมูลและบันทึกผ่าน saveInterface
|
||||||
// ส่ง nextSeq และ hashedPassword เข้าไป
|
// ส่ง 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');
|
this.generalService.devhint(1, 'registercontroller.js', 'Register success');
|
||||||
|
|
||||||
@@ -42,6 +44,8 @@ export class RegisterController {
|
|||||||
idx = 1;
|
idx = 1;
|
||||||
} finally {
|
} finally {
|
||||||
if (idx === 1) return sendError('เกิดข้อผิดพลาดไม่คาดคิดเกิดขึ้น', 'Unexpected error');
|
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');
|
if (!result) return sendError('ไม่สามารถลงทะเบียนได้', 'Registration failed');
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
@@ -51,10 +55,10 @@ export class RegisterController {
|
|||||||
// Map ข้อมูลเข้า Field ตามตาราง usrmst
|
// Map ข้อมูลเข้า Field ตามตาราง usrmst
|
||||||
let arysave = {
|
let arysave = {
|
||||||
methods: 'post', // สั่งให้ saveInterface ทำการ INSERT
|
methods: 'post', // สั่งให้ saveInterface ทำการ INSERT
|
||||||
usrseq: seq + 1, // PK: integer
|
usrseq: seq, // PK: integer
|
||||||
usrnam: validateSave(req.body.request.username, 'username'),
|
usrnam: validateSave(req.body.request.username, 'username'),
|
||||||
usrpwd: hashedPassword, // character varying(255)
|
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)
|
usrthinam: validateSave(req.body.request.firstname, 'firstname'), // character varying(100)
|
||||||
usrthilstnam: validateSave(req.body.request.lastname, 'lastname'), // character varying(100)
|
usrthilstnam: validateSave(req.body.request.lastname, 'lastname'), // character varying(100)
|
||||||
|
|
||||||
|
|||||||
@@ -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) {
|
async genNum(database) {
|
||||||
const sql = `
|
const sql = `
|
||||||
|
|||||||
Reference in New Issue
Block a user