Showing
5 changed files
with
56 additions
and
0 deletions
| ... | @@ -5,6 +5,7 @@ const Profile = require('../../models/profile'); | ... | @@ -5,6 +5,7 @@ const Profile = require('../../models/profile'); |
| 5 | const DoctorInfo = require('../../models/doctorInfo'); | 5 | const DoctorInfo = require('../../models/doctorInfo'); |
| 6 | const Joi = require('joi'); | 6 | const Joi = require('joi'); |
| 7 | const jwt = require('jsonwebtoken'); | 7 | const jwt = require('jsonwebtoken'); |
| 8 | +const axios = require('axios'); | ||
| 8 | 9 | ||
| 9 | 10 | ||
| 10 | exports.register = async(ctx) => { | 11 | exports.register = async(ctx) => { |
| ... | @@ -66,6 +67,26 @@ exports.register = async(ctx) => { | ... | @@ -66,6 +67,26 @@ exports.register = async(ctx) => { |
| 66 | 67 | ||
| 67 | }; | 68 | }; |
| 68 | 69 | ||
| 70 | +exports.searchHospital = async ctx => { | ||
| 71 | + const { | ||
| 72 | + hospitalNm, | ||
| 73 | + page, | ||
| 74 | + } = ctx.query; | ||
| 75 | + | ||
| 76 | + const url = 'http://apis.data.go.kr/B551182/hospInfoService1/getHospBasisList1'; | ||
| 77 | + let queryParams = '?' + encodeURIComponent('ServiceKey') + '=' + process.env.SERVICE_KEY; | ||
| 78 | + queryParams += '&' + encodeURIComponent('pageNo') + '=' + encodeURIComponent(page); | ||
| 79 | + queryParams += '&' + encodeURIComponent('numOfRows') + '=' + encodeURIComponent(10); | ||
| 80 | + queryParams += '&' + encodeURIComponent('yadmNm') + '=' + encodeURIComponent(hospitalNm); | ||
| 81 | + | ||
| 82 | + const result = await axios.get(url + queryParams); | ||
| 83 | + | ||
| 84 | + ctx.status = 200; | ||
| 85 | + ctx.body = { | ||
| 86 | + hospitalList : result.data.response.body.items.item, | ||
| 87 | + }; | ||
| 88 | +}; | ||
| 89 | + | ||
| 69 | exports.doctorRegister = async ctx => { | 90 | exports.doctorRegister = async ctx => { |
| 70 | const { | 91 | const { |
| 71 | userId, | 92 | userId, | ... | ... |
| ... | @@ -12,6 +12,14 @@ const auth = new Router() | ... | @@ -12,6 +12,14 @@ const auth = new Router() |
| 12 | auth.post('/register', authCtrl.register) | 12 | auth.post('/register', authCtrl.register) |
| 13 | 13 | ||
| 14 | /** | 14 | /** |
| 15 | + * 병원 검색 | ||
| 16 | + * url : http://localhost:4000/api/auth/hospital | ||
| 17 | + * request parameter : hospitalNm | ||
| 18 | + * return : xml type data | ||
| 19 | + */ | ||
| 20 | +auth.get('/hospital', authCtrl.searchHospital); | ||
| 21 | + | ||
| 22 | +/** | ||
| 15 | * 회원가입 (email type) : 의사 회원가입 | 23 | * 회원가입 (email type) : 의사 회원가입 |
| 16 | * url : http://localhost:4000/api/auth/register/doctor | 24 | * url : http://localhost:4000/api/auth/register/doctor |
| 17 | * request parameter : userId, password, passwordCheck, doctorInfo | 25 | * request parameter : userId, password, passwordCheck, doctorInfo | ... | ... |
| ... | @@ -11,6 +11,7 @@ exports.updateMedicineInfo = async() => { | ... | @@ -11,6 +11,7 @@ exports.updateMedicineInfo = async() => { |
| 11 | //queryUrl을 return하는 함수 : 한 페이지에 100개의 item씩 요청할 수 있다. | 11 | //queryUrl을 return하는 함수 : 한 페이지에 100개의 item씩 요청할 수 있다. |
| 12 | const getQueryURL = (i) => { | 12 | const getQueryURL = (i) => { |
| 13 | const url = 'http://apis.data.go.kr/1471000/DrbEasyDrugInfoService/getDrbEasyDrugList'; | 13 | const url = 'http://apis.data.go.kr/1471000/DrbEasyDrugInfoService/getDrbEasyDrugList'; |
| 14 | + // eslint-disable-next-line no-undef | ||
| 14 | const queryParams = '?' + encodeURIComponent('ServiceKey') + '=' + process.env.SERVICE_KEY; | 15 | const queryParams = '?' + encodeURIComponent('ServiceKey') + '=' + process.env.SERVICE_KEY; |
| 15 | const pageNum = '&' + encodeURIComponent('pageNo') + '=' + encodeURIComponent(i); | 16 | const pageNum = '&' + encodeURIComponent('pageNo') + '=' + encodeURIComponent(i); |
| 16 | const numOfItem = '&' + encodeURIComponent('numOfRows') + '=' + encodeURIComponent(100); | 17 | const numOfItem = '&' + encodeURIComponent('numOfRows') + '=' + encodeURIComponent(100); |
| ... | @@ -24,6 +25,7 @@ const getItemsList = async(queryUrl) => { | ... | @@ -24,6 +25,7 @@ const getItemsList = async(queryUrl) => { |
| 24 | let i = 1, getItem = null, items = null; | 25 | let i = 1, getItem = null, items = null; |
| 25 | const result = []; | 26 | const result = []; |
| 26 | 27 | ||
| 28 | + // eslint-disable-next-line no-constant-condition | ||
| 27 | while(true) { | 29 | while(true) { |
| 28 | getItem = await axios.get(queryUrl(i)); | 30 | getItem = await axios.get(queryUrl(i)); |
| 29 | items = getItem.data.body.items; | 31 | items = getItem.data.body.items; | ... | ... |
web/.eslintrc.js
0 → 100644
| 1 | +module.exports = { | ||
| 2 | + "env": { | ||
| 3 | + "browser": true, | ||
| 4 | + "es2021": true | ||
| 5 | + }, | ||
| 6 | + "extends": [ | ||
| 7 | + "eslint:recommended", | ||
| 8 | + "plugin:react/recommended", | ||
| 9 | + "plugin:@typescript-eslint/recommended" | ||
| 10 | + ], | ||
| 11 | + "parser": "@typescript-eslint/parser", | ||
| 12 | + "parserOptions": { | ||
| 13 | + "ecmaFeatures": { | ||
| 14 | + "jsx": true | ||
| 15 | + }, | ||
| 16 | + "ecmaVersion": 12, | ||
| 17 | + "sourceType": "module" | ||
| 18 | + }, | ||
| 19 | + "plugins": [ | ||
| 20 | + "react", | ||
| 21 | + "@typescript-eslint" | ||
| 22 | + ], | ||
| 23 | + "rules": { | ||
| 24 | + } | ||
| 25 | +}; |
web/package-lock.json
0 → 100644
This diff could not be displayed because it is too large.
-
Please register or login to post a comment