diff --git a/vinyla/controllers/user.js b/vinyla/controllers/user.js index b3a1d74..1a585ee 100644 --- a/vinyla/controllers/user.js +++ b/vinyla/controllers/user.js @@ -38,6 +38,15 @@ module.exports = { }, duplicateCheck: async(req, res) => { - + const {nickname} = req.body; + if(!nickname){ + return await res.status(statusCode.BAD_REQUEST).send(util.fail(statusCode.BAD_REQUEST, resMessage.NULL_VALUE)); + } + const isDuplicate = await UserModel.duplicateCheck(nickname); + if(!isDuplicate){ + return await res.status(statusCode.BAD_REQUEST).send(util.fail(statusCode.BAD_REQUEST, resMessage.ALREADY_NICKNAME)); + } + + return await res.status(statusCode.OK).send(util.success(statusCode.OK, resMessage.NO_DUPLICATE, {nickname: nickname})); } }; \ No newline at end of file diff --git a/vinyla/models/user.js b/vinyla/models/user.js index 96a5569..11d49fe 100644 --- a/vinyla/models/user.js +++ b/vinyla/models/user.js @@ -33,6 +33,23 @@ const user = { console.log('[SIGNUP] err: ' + err); throw err; } + }, + + duplicateCheck : async({nickname}) => { + try{ + const sql = `SELECT COUNT(*) as cnt FROM user WHERE nickname = ?`; + const value = [nickname]; + const rs = await pool.queryParam_Parse(sql, value); + if(rs[0].cnt == 0){ + return true; + } + else{ + return false; + } + } catch (err) { + console.log('[DUPLICATECHECK] err: ' + err); + throw err; + } } }; diff --git a/vinyla/modules/responseMessage.js b/vinyla/modules/responseMessage.js index 412f7d5..6b42fb4 100644 --- a/vinyla/modules/responseMessage.js +++ b/vinyla/modules/responseMessage.js @@ -2,14 +2,13 @@ module.exports = { NULL_VALUE: "필요한 값이 없습니다", OUT_OF_VALUE: "파라미터 값이 잘못되었습니다", - // 회원가입 + // User CREATE_USER: "회원 가입 성공", DELETE_USER: "회원 탈퇴 성공", - ALREADY_NAME: "이미 사용중인 닉네임입니다.", - ALREADY_EMAIL: "이미 사용중인 이메일입니다.", - NO_DUPLICATE: "사용 가능한 이메일과 닉네임입니다.", + + ALREADY_NICKNAME: "사용 중인 닉네임입니다.", + NO_DUPLICATE: "사용 가능한 닉네임입니다.", - // 로그인 LOGIN_SUCCESS: "로그인 성공", LOGIN_FAIL: "로그인 실패", NO_USER: "존재하지 않는 회원입니다."