박권수

feat. validate doctor's license api

...@@ -35,5 +35,13 @@ manage.post('/doctor/accept', manageCtrl.acceptDoctorRegReq); ...@@ -35,5 +35,13 @@ manage.post('/doctor/accept', manageCtrl.acceptDoctorRegReq);
35 */ 35 */
36 manage.post('/doctor/reject', manageCtrl.rejectDoctorRegReq); 36 manage.post('/doctor/reject', manageCtrl.rejectDoctorRegReq);
37 37
38 +/**
39 + * 의사 요청을 한 회원의 자격 번호가 유효한지 검증한다
40 + * reqeust parameter : doctor License
41 + * url : http://localhost:4000/api/manage/doctor/validate
42 + * return : result true or false
43 + */
44 +manage.post('/doctor/validate', manageCtrl.validateDoctorLicense);
45 +
38 46
39 module.exports = manage; 47 module.exports = manage;
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -264,3 +264,33 @@ exports.acceptDoctorRegReq = async ctx => { ...@@ -264,3 +264,33 @@ exports.acceptDoctorRegReq = async ctx => {
264 } 264 }
265 }; 265 };
266 266
267 +/**
268 + * 회원가입을 요청한 의사의 유효한 자격 번호인지를 검증한다.
269 + * @param {*} ctx
270 + * @returns
271 + */
272 +exports.validateDoctorLicense = async ctx => {
273 + const token = ctx.req.headers.authorization;
274 + if (!token || !token.length) {
275 + ctx.status = 401;
276 + return;
277 + }
278 +
279 + // eslint-disable-next-line no-undef
280 + const { userId } = jwt.verify(token, process.env.JWT_SECRET);
281 + const user = await User.findByUserId(userId);
282 + if(!user || user.userTypeCd !== 'MANAGER' || user.useYn !== 'Y') {
283 + ctx.status = 403;
284 + return;
285 + }
286 +
287 + const { doctorLicense } = ctx.request.body;
288 + const doctorInfo = await DoctorInfo.find({ 'info.doctorLicense' : doctorLicense });
289 +
290 + ctx.status = 200;
291 + ctx.body = {
292 + result : doctorInfo.length > 1 ? false : true,
293 + };
294 +
295 +};
296 +
......