Skip to content

Commit

Permalink
Swagger ๊ตฌํ˜„ (#66)
Browse files Browse the repository at this point in the history
* build : H2 database ์ถ”๊ฐ€

๋กœ์ปฌ ํ…Œ์ŠคํŠธ ์šฉ๋„

* save

* build : JWT test secret key ์ถ”๊ฐ€

* feat : ์ธ์ฆ์„ ์œ„ํ•œ user entity ์ถ”๊ฐ€

* feat : jwt ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat : security config ์ถ”๊ฐ€

* feat : ์ธ์ฆ ๊ด€๋ จ ์„œ๋น„์Šค ์ถ”๊ฐ€

* feat : ๋กœ๊ทธ์ธ ํ•„ํ„ฐ ์ถ”๊ฐ€

* delete : ๋ถˆํ•„์š” ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค ์‚ญ์ œ

* fix : ๋ถˆํ•„์š” import ์ œ๊ฑฐ, JwtFilter ์˜ค๋ฅ˜ ์ˆ˜์ •

* feat: ์ƒํƒœ๊ฐ’ ํ•„๋“œ๋ช… ์ˆ˜์ •

* feat: chat ์—”ํ‹ฐํ‹ฐ์— ์ƒํƒœ ๊ด€๋ จ ํ•„๋“œ ์ถ”๊ฐ€

* feat: chart- ์ธ์ง€๊ด€๋ฆฌ ์—”ํ‹ฐํ‹ฐ ์ถ”๊ฐ€
- chart ์—”ํ‹ฐํ‹ฐ์™€ ์ผ๋Œ€์ผ ์—ฐ๊ด€๊ด€๊ณ„ ์„ค์ •

* feat: ์‹ ์ฒด ํ™œ๋™ ์—”ํ‹ฐํ‹ฐ์—์„œ ์™ธ์ถœ ์—ฌ๋ถ€ ๊ฐ์ฒด ๋ถ„๋ฆฌ

* feat: ์‹ ์ฒด ํ™œ๋™ ์„ธ๋ถ€ ์กฐํšŒ dto ์ž‘์„ฑ

* feat: ์‹ ์ฒด ํ™œ๋™ ์„ธ๋ถ€ ์กฐํšŒ dto ์ƒ์„ฑ์ž ์ถ”๊ฐ€

* feat: ๊ฐ„ํ˜ธ ๊ด€๋ฆฌ ์„ธ๋ถ€ ์กฐํšŒ dto ์ƒ์„ฑ์ž ์ถ”๊ฐ€

* refactor: chart ๊ด€๋ จ response๋Š” ๋ณ„๋„ ํŒจํ‚ค์ง€๋กœ ๋ถ„๋ฆฌ

* feat: ์ธ์ง€ ๊ด€๋ฆฌ ์„ธ๋ถ€ ์กฐํšŒ dto ์ž‘์„ฑ

* feat-chart ๊ณ ๋‚˜๋ จ ์—”ํ‹ฐํ‹ฐ์— comment ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ import๋ฌธ ์‚ญ์ œ

* feat: ํšŒ๋ณต ํ›ˆ๋ จ response dto ์ž‘์„ฑ

* feat: chart detail response dto ์ž‘์„ฑ

* refactor: ๋„๋ฉ”์ธ ๋ณ„ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ

* feat: chartController ์ž‘์„ฑ
- ํ™˜์ž id๋กœ ์ผ์ง€ ์ „์ฒด ์กฐํšŒ ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: ํ™˜์ž id๋กœ ์ผ์ง€ ์ „์ฒด ์กฐํšŒ ํ•จ์ˆ˜์— pagable ์ถ”๊ฐ€

* feat: chartRepository ์ž‘์„ฑ
- ํ™˜์ž id๋กœ ์ผ๊ธฐ ์ „์ฒด ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feat: util ํด๋ž˜์Šค ์ƒ์„ฑ
- default_page_size ์„ ์–ธ

* feat: chart ๊ด€๋ จ response ์ „์ฒด์— builder ์–ด๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€

* feat: chart ๊ด€๋ จ ์—”ํ‹ฐํ‹ฐ ์ „๋ถ€์— getter ์ถ”๊ฐ€

* chore: ํ•„๋“œ๋ช… ์นด๋ฉœ ์ผ€์ด์Šค๋กœ ํ†ต์ผ

* feat: ChartDetailResponse ๊ฐ์ฒด ์ƒ์„ฑ ํ•จ์ˆ˜ ๊ตฌํ˜„
- ์„ธ๋ถ€ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ DTO ์ƒ์„ฑ ํ›„ ChartDetailResponse ๊ฐ์ฒด์— ๋„ฃ์Œ

* feat: chartService ์ž‘์„ฑ
- ํ™˜์žid๋ฅผ ํ†ตํ•ด ์ผ์ง€ ์ „์ฒด ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feat: ์ฐจํŠธid๋กœ ์ฐจํŠธ ์„ธ๋ถ€ ์กฐํšŒ api ๊ตฌํ˜„

* fix: ์ฐจํŠธ ํŠน์ด์‚ฌํ•ญ ์ž๋ฃŒํ˜• ๋ณ€๊ฒฝ
- ๊ธฐ์กด String์—์„œ TEXT ์ž๋ฃŒํ˜•์œผ๋กœ ๋ณ€๊ฒฝ

* ๊ณ„์ธต ๋ถ„๋ฆฌ, ํ…Œ์ด๋ธ”๋ช…์„ ์ œ์™ธํ•˜๊ณ  ์ „๋ถ€ ๋‹จ์ˆ˜ํ˜• ์ฒ˜๋ฆฌ, ๊ฐ„๋‹จํ•œ ๋ฆฌํŒฉํ† ๋ง ์ž‘์—… (#24)

* feat :
1. ๋„๋ฉ”์ธ ๋‹จ์œ„๋กœ ๊ณ„์ธต ๋ถ„๋ฆฌ
2. ํ…Œ์ด๋ธ”๋ช…์„ ์ œ์™ธํ•˜๊ณ  ์ „๋ถ€ ๋‹จ์ˆ˜ํ˜•์œผ๋กœ ๋ฐ”๊พธ๊ธฐ
3. ๊ฐ„๋‹จํ•œ ๋ฆฌํŒฉํ† ๋ง

* feat : ๋ณดํ˜ธ์ž, ์š”์–‘๋ณดํ˜ธ์‚ฌ ์•„์ด๋”” ๋น„๋ฒˆ ์ถ”๊ฐ€

* refactor : ํ˜œ์—ฐ๋‹˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์ „๋ถ€ ๋ฐ˜์˜

* refactor : ํ˜œ์—ฐ๋‹˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์ „๋ถ€ ๋ฐ˜์˜ - 2

* refactor : ์ƒ์„ฑ์ž ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* refactor : ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* feat(security): ๊ถŒํ•œ Role ์ถ”๊ฐ€

* feat : ๋ณดํ˜ธ์ž ํšŒ์›๊ฐ€์ž… ์‹œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ+์•”ํ˜ธํ™” ์ถ”๊ฐ€

GuardianService์—์„œ ํŒจ์Šค์›Œ๋“œ ์•”ํ˜ธํ™”๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

* feat : SecurityConfig ์ž„์‹œ ์„ธํŒ… ์ถ”๊ฐ€

๊ด€๋ฆฌ์ž ๋„๋ฉ”์ธ์ด ์—†์œผ๋ฏ€๋กœ permit all ๋กœ ์„ค์ •

* test : ๋ณดํ˜ธ์ž ํšŒ์›๊ฐ€์ž… + ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™” ํ…Œ์ŠคํŠธ

* feat : ๋ณดํ˜ธ์ž ๋กœ๊ทธ์ธ ์ถ”๊ฐ€ + ๊ถŒํ•œ ์„ค์ •

* refactor: ๋ณดํ˜ธ์ž, ์š”์–‘์‚ฌ api controller ๋ถ„๋ฆฌ

* feat: ์ฐจํŠธ ์‚ญ์ œ api ๊ตฌํ˜„

* refactor: reseponse ์ „์ฒด record ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝ

* feat: chart request ์ž‘์„ฑ

* feat: ์—”ํ‹ฐํ‹ฐ mapper ๊ตฌํ˜„

* feat: ChartMapper์— id ignore ์˜ต์…˜ ์ถ”๊ฐ€

* Revert "feat: ChartMapper์— id ignore ์˜ต์…˜ ์ถ”๊ฐ€"

This reverts commit ae92004.

* refactor : ๋ถˆํ•„์š” ํด๋ž˜์Šค ์‚ญ์ œ

* feat : config jwt ์ ์šฉ๋œ ์ƒํƒœ๋กœ ์ˆ˜์ •

* feat : JWT + security userdetails ์„ค์ •

* feat : ๋ณดํ˜ธ์ž ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* test : ๋ณดํ˜ธ์ž ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ ํ…Œ์ŠคํŠธ - swagger

* feat : ๊ธฐ์กด ๋ณดํ˜ธ์ž ๋„๋ฉ”์ธ ์ผ๋ถ€ ์ˆ˜์ • (๊ถŒํ•œ ๊ฒ€์‚ฌ, ID ์กฐํšŒ)

* refactor : ๋ถˆํ•„์š” ํ•„๋“œ ์‚ญ์ œ

* bug : security ๊ถŒํ•œ ์„ค์ • ๋ฌธ์ œ ๋ฐœ์ƒ

* feat: MapStruct ์‚ฌ์šฉ์„ ์œ„ํ•œ getter,setter ์ถ”๊ฐ€

* feat: chart ํ•„๋“œ ์„ธ๋ถ€ ๋งคํ•‘ ๋ช…์‹œ

* test: MapStruct ๋งคํ•‘ ํ™•์ธ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: ์‚ฌ์šฉ์ž์— ๋”ฐ๋ฅธ api prefix ๊ตฌ๋ถ„

* merge: week4์™€ merge

* feat: ์ฐจํŠธ ์ž‘์„ฑ api ๊ตฌํ˜„

* feat: ์ฐจํŠธ ์ˆ˜์ • api ๊ตฌํ˜„

* fix : Role ๋ฌธ์ œ ํ•ด๊ฒฐ

* feat : ์ปจํŠธ๋กค๋Ÿฌ ๊ถŒํ•œ ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* feat : ๋น„๋ฐ€๋ฒˆํ˜ธ ๋กœ์ง ์ถ”๊ฐ€

* refactor : ๋ถˆํ•„์š” ๋กœ๊ทธ ์ œ๊ฑฐ

* feat : ์—ญํ• ์— ๋”ฐ๋ฅธ ๊ถŒํ•œ ๋ถ€์—ฌ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat : ์ „ํ™”๋ฒˆํ˜ธ ์กฐํšŒ ๋ช…์‹œ์  ์ถ”๊ฐ€

* fix : ๋ถˆํ•„์š” import์ œ๊ฑฐ, ํฌ๋ฉงํŒ…

* feat : careworker ๋กœ๊ทธ์ธ ๊ถŒํ•œ ํ—ˆ์šฉ

* fix : ๋กœ๊ทธ์ธ ์Šคํ”„๋ง ๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝ

* fix : careworker ์ปจํŠธ๋กค๋Ÿฌ ๊ถŒํ•œ์ˆ˜์ •

* fix : appversion ๋ถ€๋ถ„ ์™€์ผ๋“œ์นด๋“œ ์ ์šฉ

* fix : valid ์ถ”๊ฐ€

* fix : bulid ํŒจํ„ด ์ œ๊ฑฐ

* fix : careworker ํœด๋Œ€ํฐ ๋ฒˆํ˜ธ ์ค‘๋ณต ๊ฒ€์‚ฌ

* comment : ๊ฐœํ–‰ ์กฐ์ ˆ

* feat : ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋กœ์ง ์ถ”๊ฐ€

* feat : ํ† ํฐ ๋งŒ๋ฃŒ error ์ถ”๊ฐ€

* feat : ํ† ํฐ ๋งŒ๋ฃŒ ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* [๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€] ์š”์–‘์› ๋„๋ฉ”์ธ CRUD (#39)

* feat: ์š”์–‘์› ๋„๋ฉ”์ธ

* refactor: admin์—์„œ developer๋กœ ๋ณ€๊ฒฝ

* refactor: developer -> admin

* refactor: admin->institution ์š”์–‘์›์ด ๊ด€๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„

* feat : ์ ‘๊ทผ๊ถŒํ•œ ๊ด€๋ จ ์ปค์Šคํ…€ ํ•„ํ„ฐ ํ‘œํ˜„์‹ ์ถ”๊ฐ€

๊ทธ์— ๋งž์ถฐ์„œ BaseUserDetails์— Id์™€ getRole ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€

* save : ์ž„์‹œ careworker ์ €์žฅ

* chore : LoginController ํ†ต์ผ๋กœ ์ธํ•œ ์‚ญ์ œ

* chore : root ๊ฒฝ๋กœ ๋ณ€๊ฒฝ

* build : ์„ค์ •๊ฐ’ ๋ถ„๋ฆฌ

* chore : ์š”์–‘์› Role ์ถ”๊ฐ€

* feat : ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore : ๋ถˆํ•„์š” test ์‚ญ์ œ

* fix : ์ž˜๋ชป๋œ wildcard ์‚ฌ์šฉ ์ˆ˜์ •

* feat : ๋กœ๊ทธ์ธ endpoint ํ†ต์ผ

custom provider ์ถ”๊ฐ€ ์ง„ํ–‰

* chore : ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ถˆ์ผ์น˜ ์˜ค๋ฅ˜ ์ถ”๊ฐ€ ์™ธ

์ผ๋ฐ˜์ ์ธ ๊ฐœํ–‰์กฐ์ ˆ

* fix : ๋กœ๊ทธ์ธ ๊ณผ์ • ๋กœ๊ทธ์ธ ๋ถˆ๊ฐ€ ๋ฌธ์ œ ํ•ด๊ฒฐ

@value ์–ด๋…ธํ…Œ์ด์…˜ ์•ž์— "/" ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์–ด์„œ ํ—ค๋” ๋ณ€ํ™˜์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ๊ฒƒ์ด์˜€์Œ.

* chore : ๋ถˆํ•„์š” ํด๋ž˜์Šค ์‚ญ์ œ

* feat : Principal ๋‚ด๋ถ€ InstitutionNumber ์ถ”๊ฐ€

* feat : ๊ถŒํ™˜ํ™•์ธ ์ปค์Šคํ…€ ์–ด๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€

* chore : ๊ฐœํ–‰์กฐ์ ˆ, ์–ด๋…ธํ…Œ์ด์…˜ ์ œ๊ฑฐ

* chore : merge ๋ฌธ์ œ ํ•ด๊ฒฐ

* ๋Œ๋ด„๋Œ€์ƒ์ž/๋ณดํ˜ธ์ž/์š”์–‘๋ณดํ˜ธ์‚ฌ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ์ž…์ถœ๋ ฅ ๊ธฐ๋Šฅ ๊ตฌํ˜„ (#49)

* feat: ์—‘์…€ ์ •๋ณด ์ฒ˜๋ฆฌ (#34)

* fix: ํ˜•์‹ ๋ฐ˜ํ™˜ ์ˆ˜์ • (#34)

* feat: ์‹œํŠธ์ด๋ฆ„ ๋ฐ ํ•ญ๋ชฉ ์ด๋ฆ„ ํ•œ๊ธ€๋กœ ๋ณ€๊ฒฝ (#34)

* feat: ์„œ๋น„์Šค ๋กœ์ง ๋ถ„๋ฆฌ(#34)

* chore : ๋ถˆํ•„์š” ์ฃผ์„ ์‚ญ์ œ

* chore : getter ์ˆ˜์ •, ๊ฐœํ–‰์กฐ์ ˆ

* chore : ๊ฐœํ–‰์กฐ์ ˆ, ๋ชจํ˜ธํ•œ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ

* chore : ์‹œํฌ๋ฆฟํ‚ค ์ˆ˜์ •, ์ด์ „๋ฒ„์ „ ์„œ๋น„์Šค ์ œ๊ฑฐ

* fix: chart ๊ด€๋ จ ์—”ํ‹ฐํ‹ฐ cascade ์„ค์ •

* ์ฐจํŠธ ์ž‘์„ฑ ์˜ค๋ฅ˜ ์ˆ˜์ • (#54)

* build : H2 database ์ถ”๊ฐ€

๋กœ์ปฌ ํ…Œ์ŠคํŠธ ์šฉ๋„

* save

* build : JWT test secret key ์ถ”๊ฐ€

* feat : ์ธ์ฆ์„ ์œ„ํ•œ user entity ์ถ”๊ฐ€

* feat : jwt ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat : security config ์ถ”๊ฐ€

* feat : ์ธ์ฆ ๊ด€๋ จ ์„œ๋น„์Šค ์ถ”๊ฐ€

* feat : ๋กœ๊ทธ์ธ ํ•„ํ„ฐ ์ถ”๊ฐ€

* delete : ๋ถˆํ•„์š” ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค ์‚ญ์ œ

* fix : ๋ถˆํ•„์š” import ์ œ๊ฑฐ, JwtFilter ์˜ค๋ฅ˜ ์ˆ˜์ •

* feat: ์ƒํƒœ๊ฐ’ ํ•„๋“œ๋ช… ์ˆ˜์ •

* feat: chat ์—”ํ‹ฐํ‹ฐ์— ์ƒํƒœ ๊ด€๋ จ ํ•„๋“œ ์ถ”๊ฐ€

* feat: chart- ์ธ์ง€๊ด€๋ฆฌ ์—”ํ‹ฐํ‹ฐ ์ถ”๊ฐ€
- chart ์—”ํ‹ฐํ‹ฐ์™€ ์ผ๋Œ€์ผ ์—ฐ๊ด€๊ด€๊ณ„ ์„ค์ •

* feat: ์‹ ์ฒด ํ™œ๋™ ์—”ํ‹ฐํ‹ฐ์—์„œ ์™ธ์ถœ ์—ฌ๋ถ€ ๊ฐ์ฒด ๋ถ„๋ฆฌ

* feat: ์‹ ์ฒด ํ™œ๋™ ์„ธ๋ถ€ ์กฐํšŒ dto ์ž‘์„ฑ

* feat: ์‹ ์ฒด ํ™œ๋™ ์„ธ๋ถ€ ์กฐํšŒ dto ์ƒ์„ฑ์ž ์ถ”๊ฐ€

* feat: ๊ฐ„ํ˜ธ ๊ด€๋ฆฌ ์„ธ๋ถ€ ์กฐํšŒ dto ์ƒ์„ฑ์ž ์ถ”๊ฐ€

* refactor: chart ๊ด€๋ จ response๋Š” ๋ณ„๋„ ํŒจํ‚ค์ง€๋กœ ๋ถ„๋ฆฌ

* feat: ์ธ์ง€ ๊ด€๋ฆฌ ์„ธ๋ถ€ ์กฐํšŒ dto ์ž‘์„ฑ

* feat-chart ๊ณ ๋‚˜๋ จ ์—”ํ‹ฐํ‹ฐ์— comment ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ import๋ฌธ ์‚ญ์ œ

* feat: ํšŒ๋ณต ํ›ˆ๋ จ response dto ์ž‘์„ฑ

* feat: chart detail response dto ์ž‘์„ฑ

* refactor: ๋„๋ฉ”์ธ ๋ณ„ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ

* feat: chartController ์ž‘์„ฑ
- ํ™˜์ž id๋กœ ์ผ์ง€ ์ „์ฒด ์กฐํšŒ ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: ํ™˜์ž id๋กœ ์ผ์ง€ ์ „์ฒด ์กฐํšŒ ํ•จ์ˆ˜์— pagable ์ถ”๊ฐ€

* feat: chartRepository ์ž‘์„ฑ
- ํ™˜์ž id๋กœ ์ผ๊ธฐ ์ „์ฒด ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feat: util ํด๋ž˜์Šค ์ƒ์„ฑ
- default_page_size ์„ ์–ธ

* feat: chart ๊ด€๋ จ response ์ „์ฒด์— builder ์–ด๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€

* feat: chart ๊ด€๋ จ ์—”ํ‹ฐํ‹ฐ ์ „๋ถ€์— getter ์ถ”๊ฐ€

* chore: ํ•„๋“œ๋ช… ์นด๋ฉœ ์ผ€์ด์Šค๋กœ ํ†ต์ผ

* feat: ChartDetailResponse ๊ฐ์ฒด ์ƒ์„ฑ ํ•จ์ˆ˜ ๊ตฌํ˜„
- ์„ธ๋ถ€ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ DTO ์ƒ์„ฑ ํ›„ ChartDetailResponse ๊ฐ์ฒด์— ๋„ฃ์Œ

* feat: chartService ์ž‘์„ฑ
- ํ™˜์žid๋ฅผ ํ†ตํ•ด ์ผ์ง€ ์ „์ฒด ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feat: ์ฐจํŠธid๋กœ ์ฐจํŠธ ์„ธ๋ถ€ ์กฐํšŒ api ๊ตฌํ˜„

* fix: ์ฐจํŠธ ํŠน์ด์‚ฌํ•ญ ์ž๋ฃŒํ˜• ๋ณ€๊ฒฝ
- ๊ธฐ์กด String์—์„œ TEXT ์ž๋ฃŒํ˜•์œผ๋กœ ๋ณ€๊ฒฝ

* ๊ณ„์ธต ๋ถ„๋ฆฌ, ํ…Œ์ด๋ธ”๋ช…์„ ์ œ์™ธํ•˜๊ณ  ์ „๋ถ€ ๋‹จ์ˆ˜ํ˜• ์ฒ˜๋ฆฌ, ๊ฐ„๋‹จํ•œ ๋ฆฌํŒฉํ† ๋ง ์ž‘์—… (#24)

* feat :
1. ๋„๋ฉ”์ธ ๋‹จ์œ„๋กœ ๊ณ„์ธต ๋ถ„๋ฆฌ
2. ํ…Œ์ด๋ธ”๋ช…์„ ์ œ์™ธํ•˜๊ณ  ์ „๋ถ€ ๋‹จ์ˆ˜ํ˜•์œผ๋กœ ๋ฐ”๊พธ๊ธฐ
3. ๊ฐ„๋‹จํ•œ ๋ฆฌํŒฉํ† ๋ง

* feat : ๋ณดํ˜ธ์ž, ์š”์–‘๋ณดํ˜ธ์‚ฌ ์•„์ด๋”” ๋น„๋ฒˆ ์ถ”๊ฐ€

* refactor : ํ˜œ์—ฐ๋‹˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์ „๋ถ€ ๋ฐ˜์˜

* refactor : ํ˜œ์—ฐ๋‹˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์ „๋ถ€ ๋ฐ˜์˜ - 2

* refactor : ์ƒ์„ฑ์ž ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* refactor : ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* feat(security): ๊ถŒํ•œ Role ์ถ”๊ฐ€

* feat : ๋ณดํ˜ธ์ž ํšŒ์›๊ฐ€์ž… ์‹œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ+์•”ํ˜ธํ™” ์ถ”๊ฐ€

GuardianService์—์„œ ํŒจ์Šค์›Œ๋“œ ์•”ํ˜ธํ™”๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

* feat : SecurityConfig ์ž„์‹œ ์„ธํŒ… ์ถ”๊ฐ€

๊ด€๋ฆฌ์ž ๋„๋ฉ”์ธ์ด ์—†์œผ๋ฏ€๋กœ permit all ๋กœ ์„ค์ •

* test : ๋ณดํ˜ธ์ž ํšŒ์›๊ฐ€์ž… + ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™” ํ…Œ์ŠคํŠธ

* feat : ๋ณดํ˜ธ์ž ๋กœ๊ทธ์ธ ์ถ”๊ฐ€ + ๊ถŒํ•œ ์„ค์ •

* refactor: ๋ณดํ˜ธ์ž, ์š”์–‘์‚ฌ api controller ๋ถ„๋ฆฌ

* feat: ์ฐจํŠธ ์‚ญ์ œ api ๊ตฌํ˜„

* refactor: reseponse ์ „์ฒด record ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝ

* feat: chart request ์ž‘์„ฑ

* feat: ์—”ํ‹ฐํ‹ฐ mapper ๊ตฌํ˜„

* feat: ChartMapper์— id ignore ์˜ต์…˜ ์ถ”๊ฐ€

* Revert "feat: ChartMapper์— id ignore ์˜ต์…˜ ์ถ”๊ฐ€"

This reverts commit ae92004.

* refactor : ๋ถˆํ•„์š” ํด๋ž˜์Šค ์‚ญ์ œ

* feat : config jwt ์ ์šฉ๋œ ์ƒํƒœ๋กœ ์ˆ˜์ •

* feat : JWT + security userdetails ์„ค์ •

* feat : ๋ณดํ˜ธ์ž ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* test : ๋ณดํ˜ธ์ž ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ ํ…Œ์ŠคํŠธ - swagger

* feat : ๊ธฐ์กด ๋ณดํ˜ธ์ž ๋„๋ฉ”์ธ ์ผ๋ถ€ ์ˆ˜์ • (๊ถŒํ•œ ๊ฒ€์‚ฌ, ID ์กฐํšŒ)

* refactor : ๋ถˆํ•„์š” ํ•„๋“œ ์‚ญ์ œ

* bug : security ๊ถŒํ•œ ์„ค์ • ๋ฌธ์ œ ๋ฐœ์ƒ

* feat: MapStruct ์‚ฌ์šฉ์„ ์œ„ํ•œ getter,setter ์ถ”๊ฐ€

* feat: chart ํ•„๋“œ ์„ธ๋ถ€ ๋งคํ•‘ ๋ช…์‹œ

* test: MapStruct ๋งคํ•‘ ํ™•์ธ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: ์‚ฌ์šฉ์ž์— ๋”ฐ๋ฅธ api prefix ๊ตฌ๋ถ„

* merge: week4์™€ merge

* feat: ์ฐจํŠธ ์ž‘์„ฑ api ๊ตฌํ˜„

* feat: ์ฐจํŠธ ์ˆ˜์ • api ๊ตฌํ˜„

* fix : Role ๋ฌธ์ œ ํ•ด๊ฒฐ

* feat : ์ปจํŠธ๋กค๋Ÿฌ ๊ถŒํ•œ ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* feat : ๋น„๋ฐ€๋ฒˆํ˜ธ ๋กœ์ง ์ถ”๊ฐ€

* refactor : ๋ถˆํ•„์š” ๋กœ๊ทธ ์ œ๊ฑฐ

* feat : ์—ญํ• ์— ๋”ฐ๋ฅธ ๊ถŒํ•œ ๋ถ€์—ฌ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat : ์ „ํ™”๋ฒˆํ˜ธ ์กฐํšŒ ๋ช…์‹œ์  ์ถ”๊ฐ€

* fix : ๋ถˆํ•„์š” import์ œ๊ฑฐ, ํฌ๋ฉงํŒ…

* feat : careworker ๋กœ๊ทธ์ธ ๊ถŒํ•œ ํ—ˆ์šฉ

* fix : ๋กœ๊ทธ์ธ ์Šคํ”„๋ง ๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝ

* fix : careworker ์ปจํŠธ๋กค๋Ÿฌ ๊ถŒํ•œ์ˆ˜์ •

* fix : appversion ๋ถ€๋ถ„ ์™€์ผ๋“œ์นด๋“œ ์ ์šฉ

* fix : valid ์ถ”๊ฐ€

* fix : bulid ํŒจํ„ด ์ œ๊ฑฐ

* fix : careworker ํœด๋Œ€ํฐ ๋ฒˆํ˜ธ ์ค‘๋ณต ๊ฒ€์‚ฌ

* comment : ๊ฐœํ–‰ ์กฐ์ ˆ

* feat : ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋กœ์ง ์ถ”๊ฐ€

* feat : ํ† ํฐ ๋งŒ๋ฃŒ error ์ถ”๊ฐ€

* feat : ํ† ํฐ ๋งŒ๋ฃŒ ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* feat : ์ ‘๊ทผ๊ถŒํ•œ ๊ด€๋ จ ์ปค์Šคํ…€ ํ•„ํ„ฐ ํ‘œํ˜„์‹ ์ถ”๊ฐ€

๊ทธ์— ๋งž์ถฐ์„œ BaseUserDetails์— Id์™€ getRole ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€

* save : ์ž„์‹œ careworker ์ €์žฅ

* chore : LoginController ํ†ต์ผ๋กœ ์ธํ•œ ์‚ญ์ œ

* chore : root ๊ฒฝ๋กœ ๋ณ€๊ฒฝ

* build : ์„ค์ •๊ฐ’ ๋ถ„๋ฆฌ

* chore : ์š”์–‘์› Role ์ถ”๊ฐ€

* feat : ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore : ๋ถˆํ•„์š” test ์‚ญ์ œ

* fix : ์ž˜๋ชป๋œ wildcard ์‚ฌ์šฉ ์ˆ˜์ •

* feat : ๋กœ๊ทธ์ธ endpoint ํ†ต์ผ

custom provider ์ถ”๊ฐ€ ์ง„ํ–‰

* chore : ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ถˆ์ผ์น˜ ์˜ค๋ฅ˜ ์ถ”๊ฐ€ ์™ธ

์ผ๋ฐ˜์ ์ธ ๊ฐœํ–‰์กฐ์ ˆ

* fix : ๋กœ๊ทธ์ธ ๊ณผ์ • ๋กœ๊ทธ์ธ ๋ถˆ๊ฐ€ ๋ฌธ์ œ ํ•ด๊ฒฐ

@value ์–ด๋…ธํ…Œ์ด์…˜ ์•ž์— "/" ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์–ด์„œ ํ—ค๋” ๋ณ€ํ™˜์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ๊ฒƒ์ด์˜€์Œ.

* chore : ๋ถˆํ•„์š” ํด๋ž˜์Šค ์‚ญ์ œ

* feat : Principal ๋‚ด๋ถ€ InstitutionNumber ์ถ”๊ฐ€

* feat : ๊ถŒํ™˜ํ™•์ธ ์ปค์Šคํ…€ ์–ด๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€

* chore : ๊ฐœํ–‰์กฐ์ ˆ, ์–ด๋…ธํ…Œ์ด์…˜ ์ œ๊ฑฐ

* chore : merge ๋ฌธ์ œ ํ•ด๊ฒฐ

* ๋Œ๋ด„๋Œ€์ƒ์ž/๋ณดํ˜ธ์ž/์š”์–‘๋ณดํ˜ธ์‚ฌ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ์ž…์ถœ๋ ฅ ๊ธฐ๋Šฅ ๊ตฌํ˜„ (#49)

* feat: ์—‘์…€ ์ •๋ณด ์ฒ˜๋ฆฌ (#34)

* fix: ํ˜•์‹ ๋ฐ˜ํ™˜ ์ˆ˜์ • (#34)

* feat: ์‹œํŠธ์ด๋ฆ„ ๋ฐ ํ•ญ๋ชฉ ์ด๋ฆ„ ํ•œ๊ธ€๋กœ ๋ณ€๊ฒฝ (#34)

* feat: ์„œ๋น„์Šค ๋กœ์ง ๋ถ„๋ฆฌ(#34)

* chore : ๋ถˆํ•„์š” ์ฃผ์„ ์‚ญ์ œ

* chore : getter ์ˆ˜์ •, ๊ฐœํ–‰์กฐ์ ˆ

* chore : ๊ฐœํ–‰์กฐ์ ˆ, ๋ชจํ˜ธํ•œ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ

* chore : ์‹œํฌ๋ฆฟํ‚ค ์ˆ˜์ •, ์ด์ „๋ฒ„์ „ ์„œ๋น„์Šค ์ œ๊ฑฐ

* fix: chart ๊ด€๋ จ ์—”ํ‹ฐํ‹ฐ cascade ์„ค์ •

---------

Co-authored-by: mac <[email protected]>
Co-authored-by: ๊น€ํƒœ์œค <[email protected]>
Co-authored-by: Jinsol Lee <[email protected]>
Co-authored-by: 20jcode <[email protected]>

* fix: ChartDetailResponse ๋ณ€๊ฒฝ
- conditionDisease ํ•ญ๋ชฉ ์ถ”๊ฐ€

* chore : Repository ์กด์žฌํ™•์ธ ๋ฉ”์†Œ๋“œ๋ช… ๋ณ€๊ฒฝ (#56)

* fix: ๋ถˆํ•„์š”ํ•œ ๊ถŒํ•œ ์–ด๋…ธํ…Œ์ด์…˜ ์ œ๊ฑฐ

* feat: openai summarization(7์ผ์น˜)

* feat: swagger-ui

* feat: swagger-ui ๋น ์ง„ ๋‚ด์šฉ

* refactor: Swagger๊ฐ€ ์•„๋‹Œ, ํ•„์š”์—†๋Š” ๋‚ด์šฉ ์‚ญ์ œํ•˜๊ธฐ

* refactor: Swagger๊ฐ€ ์•„๋‹Œ, ํ•„์š”์—†๋Š” ๋‚ด์šฉ ์‚ญ์ œํ•˜๊ธฐ

* refactor: Swagger๊ฐ€ ์•„๋‹Œ, ํ•„์š”์—†๋Š” ๋‚ด์šฉ ์‚ญ์ œํ•˜๊ธฐ

* feat: swagger์— security ์ถ”๊ฐ€

---------

Co-authored-by: mac <[email protected]>
Co-authored-by: Yoo KyeongMi <[email protected]>
Co-authored-by: ๊น€ํƒœ์œค <[email protected]>
Co-authored-by: Jinsol Lee <[email protected]>
Co-authored-by: 20jcode <[email protected]>
Co-authored-by: Yoo KyeongMi <[email protected]>
  • Loading branch information
7 people authored Oct 30, 2024
1 parent 1643bca commit e79bb5b
Show file tree
Hide file tree
Showing 36 changed files with 341 additions and 86 deletions.
3 changes: 3 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

// SpringDoc OpenAPI (Swagger UI ํฌํ•จ)
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0'

// ํ…Œ์ŠคํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'com.h2database:h2' // H2๋Š” ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,20 @@
import dbdr.domain.careworker.dto.request.CareworkerRequestDTO;
import dbdr.domain.careworker.dto.response.CareworkerResponseDTO;
import dbdr.domain.careworker.service.CareworkerService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import java.net.URI;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;

import java.net.URI;
import java.util.List;

@Tag(name = "[๊ด€๋ฆฌ์ž] ์š”์–‘๋ณดํ˜ธ์‚ฌ (Careworker)", description = "์š”์–‘๋ณดํ˜ธ์‚ฌ ์ •๋ณด ์กฐํšŒ, ์ˆ˜์ •, ์‚ญ์ œ, ์ถ”๊ฐ€")
@RestController
@RequestMapping("/${spring.app.version}/careworker")
@RequiredArgsConstructor
Expand All @@ -29,6 +27,7 @@ public class CareworkerController {
@Value("${spring.app.version}")
private String appVersion;

@Operation(summary = "์ „์ฒด ์š”์–‘๋ณดํ˜ธ์‚ฌ ์ •๋ณด๋ฅผ ํŠน์ • ์š”์–‘์›์•„์ด๋””๋กœ ์กฐํšŒ")
@GetMapping
public ResponseEntity<List<CareworkerResponseDTO>> getAllCareworkers(
@RequestParam(value = "institutionId", required = false) Long institutionId) {
Expand All @@ -41,13 +40,15 @@ public ResponseEntity<List<CareworkerResponseDTO>> getAllCareworkers(
return ResponseEntity.ok(careworkerList);
}

@Operation(summary = "์š”์–‘๋ณดํ˜ธ์‚ฌ ํ•œ ์‚ฌ๋žŒ์˜ ์ •๋ณด ์กฐํšŒ")
@GetMapping("/{id}")
public ResponseEntity<CareworkerResponseDTO> getCareworkerById(
@PathVariable Long id) {
@PathVariable("id") Long id) {
CareworkerResponseDTO careworker = careworkerService.getCareworkerById(id);
return ResponseEntity.ok(careworker);
}

@Operation(summary = "์š”์–‘๋ณดํ˜ธ์‚ฌ ์ถ”๊ฐ€")
@PostMapping
public ResponseEntity<CareworkerResponseDTO> createCareworker(
@Valid @RequestBody CareworkerRequestDTO careworkerDTO) {
Expand All @@ -57,16 +58,18 @@ public ResponseEntity<CareworkerResponseDTO> createCareworker(
.body(newCareworker);
}

@Operation(summary = "์š”์–‘๋ณดํ˜ธ์‚ฌ ์ •๋ณด ์ˆ˜์ •")
@PutMapping("/{id}")
public ResponseEntity<CareworkerResponseDTO> updateCareworker(@PathVariable Long id,
@Valid @RequestBody CareworkerRequestDTO careworkerDTO) {
public ResponseEntity<CareworkerResponseDTO> updateCareworker(@PathVariable("id") Long id,
@Valid @RequestBody CareworkerRequestDTO careworkerDTO) {
CareworkerResponseDTO updatedCareworker = careworkerService.updateCareworker(id,
careworkerDTO);
return ResponseEntity.ok(updatedCareworker);
}

@Operation(summary = "์š”์–‘๋ณดํ˜ธ์‚ฌ ์‚ญ์ œ")
@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteCareworker(@PathVariable Long id) {
public ResponseEntity<Void> deleteCareworker(@PathVariable("id") Long id) {
careworkerService.deleteCareworker(id);
return ResponseEntity.noContent().build();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dbdr.domain.careworker.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
Expand All @@ -13,16 +14,20 @@
@AllArgsConstructor
public class CareworkerRequestDTO {

@NotNull
@Schema(description = "์š”์–‘๊ธฐ๊ด€์•„์ด๋””", example = "1")
@NotNull(message = "์š”์–‘๊ธฐ๊ด€ ์•„์ด๋””๋Š” ํ•„์ˆ˜ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.")
private Long institutionId;

@Schema(description = "์š”์–‘๋ณดํ˜ธ์‚ฌ ์ด๋ฆ„", example = "๋ฐ•๊ฒฝ์˜ฅ")
@NotBlank(message = "์ด๋ฆ„์€ ํ•„์ˆ˜ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.")
private String name;

@Schema(description = "์š”์–‘๋ณดํ˜ธ์‚ฌ ์ด๋ฉ”์ผ", example = "[email protected]")
@NotBlank(message = "์ด๋ฉ”์ผ์€ ํ•„์ˆ˜ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.")
@Email(message = "์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ํ˜•์‹์ž…๋‹ˆ๋‹ค.")
private String email;

@Schema(description = "์š”์–‘๋ณดํ˜ธ์‚ฌ ํœด๋Œ€ํฐ ๋ฒˆํ˜ธ", example = "01022223333")
@NotBlank(message = "ํœด๋Œ€ํฐ ๋ฒˆํ˜ธ๋Š” ํ•„์ˆ˜ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.")
@Pattern(regexp = "010\\d{8}", message = "010XXXXXXXXํ˜•์‹์œผ๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.")
private String phone;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ public CareworkerResponseDTO getCareworkerById(Long id) {

@Transactional
public CareworkerResponseDTO createCareworker(CareworkerRequestDTO careworkerRequestDTO) {
emailExists(careworkerRequestDTO.getEmail());
phoneExists(careworkerRequestDTO.getPhone());
ensureUniqueEmail(careworkerRequestDTO.getEmail());
ensureUniquePhone(careworkerRequestDTO.getPhone());

Careworker careworker = new Careworker(careworkerRequestDTO.getInstitutionId(),
careworkerRequestDTO.getName(), careworkerRequestDTO.getEmail(),
Expand All @@ -53,8 +53,8 @@ public CareworkerResponseDTO createCareworker(CareworkerRequestDTO careworkerReq
@Transactional
public CareworkerResponseDTO updateCareworker(Long id,
CareworkerRequestDTO careworkerRequestDTO) {
emailExists(careworkerRequestDTO.getEmail());
phoneExists(careworkerRequestDTO.getPhone());
ensureUniqueEmail(careworkerRequestDTO.getEmail());
ensureUniquePhone(careworkerRequestDTO.getPhone());

Careworker careworker = findCareworkerById(id);

Expand All @@ -77,13 +77,13 @@ private Careworker findCareworkerById(Long id) {

}

private void emailExists(String email) {
private void ensureUniqueEmail(String email) {
if (careworkerRepository.existsByEmail(email)) {
throw new ApplicationException(ApplicationError.DUPLICATE_EMAIL);
}
}

private void phoneExists(String phone) {
private void ensureUniquePhone(String phone) {
if (careworkerRepository.findByPhone(phone).isPresent()) {
throw new ApplicationException(ApplicationError.DUPLICATE_PHONE);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
import dbdr.domain.chart.dto.response.ChartDetailResponse;
import dbdr.domain.chart.service.ChartService;
import dbdr.global.util.api.ApiUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
Expand All @@ -18,17 +20,20 @@
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

// ์š”์–‘์‚ฌ ๊ถŒํ•œ ํ•„์š”
@Tag(name = "์š”์–‘๊ด€๋ฆฌ์‚ฌ (Careworker) ์ฐจํŠธ", description = "์š”์–‘๊ด€๋ฆฌ์‚ฌ์˜ ์ฐจํŠธ ์กฐํšŒ, ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œ")
@RestController
@RequestMapping("/${spring.app.version}/careworker/chart")
@RequiredArgsConstructor
public class CareWorkerChartController {
private final ChartService chartService;

@Operation(summary = "๋Œ๋ด„๋Œ€์ƒ์ž ์•„์ด๋””๋กœ ์ฐจํŠธ ์ •๋ณด ์กฐํšŒ")
@GetMapping("/recipient")
public ResponseEntity<ApiUtils.ApiResult<Page<ChartDetailResponse>>> getAllChartByRecipientId(
@RequestParam(value = "recipient-id", required = false) Long recipientId,
Expand All @@ -38,30 +43,34 @@ public ResponseEntity<ApiUtils.ApiResult<Page<ChartDetailResponse>>> getAllChart
return ResponseEntity.ok(ApiUtils.success(recipients));
}

@Operation(summary = "์ฐจํŠธ ์•„์ด๋””๋กœ ์ฐจํŠธ ์ •๋ณด ์กฐํšŒ")
@GetMapping("/{chartId}")
public ResponseEntity<ApiUtils.ApiResult<ChartDetailResponse>> getChartById(@PathVariable Long chartId) {
public ResponseEntity<ApiUtils.ApiResult<ChartDetailResponse>> getChartById(@PathVariable("chartId") Long chartId) {
// ํ™˜์ž ์ •๋ณด ์ ‘๊ทผ ๊ถŒํ•œ ํ™•์ธ ๋กœ์ง ํ•„์š” -> ์š”์–‘์‚ฌ๊ฐ€ ๋งก์€ ํ™˜์ž ์ •๋ณด๋งŒ ์กฐํšŒ ๊ฐ€๋Šฅ
ChartDetailResponse chart = chartService.getChartById(chartId);
return ResponseEntity.ok(ApiUtils.success(chart));
}

@Operation(summary = "์ฐจํŠธ ์ถ”๊ฐ€")
@PostMapping
public ResponseEntity<ApiUtils.ApiResult<ChartDetailResponse>> saveChart(ChartDetailRequest request) {
public ResponseEntity<ApiUtils.ApiResult<ChartDetailResponse>> saveChart(@RequestBody ChartDetailRequest request) {
// ํ™˜์ž ์ •๋ณด ์ ‘๊ทผ ๊ถŒํ•œ ํ™•์ธ ๋กœ์ง ํ•„์š” -> ์š”์–‘์‚ฌ๊ฐ€ ๋งก์€ ํ™˜์ž ์ •๋ณด๋งŒ ์ €์žฅ ๊ฐ€๋Šฅ
ChartDetailResponse chart = chartService.saveChart(request);
return ResponseEntity.status(HttpStatus.CREATED).body(ApiUtils.success(chart));
}

@Operation(summary = "์ฐจํŠธ ์•„์ด๋””๋กœ ์ฐจํŠธ ์ˆ˜์ •")
@PutMapping("/{chartId}")
public ResponseEntity<ApiUtils.ApiResult<ChartDetailResponse>> updateChart(@PathVariable Long chartId,
ChartDetailRequest request) {
public ResponseEntity<ApiUtils.ApiResult<ChartDetailResponse>> updateChart(@PathVariable("chartId") Long chartId,
@RequestBody ChartDetailRequest request) {
// ํ™˜์ž ์ •๋ณด ์ ‘๊ทผ ๊ถŒํ•œ ํ™•์ธ ๋กœ์ง ํ•„์š” -> ์š”์–‘์‚ฌ๊ฐ€ ๋งก์€ ํ™˜์ž ์ •๋ณด๋งŒ ์ˆ˜์ • ๊ฐ€๋Šฅ
ChartDetailResponse chart = chartService.updateChart(chartId, request);
return ResponseEntity.ok(ApiUtils.success(chart));
}

@Operation(summary = "์ฐจํŠธ ์•„์ด๋””๋กœ ์ฐจํŠธ ์‚ญ์ œ")
@DeleteMapping("/{chartId}")
public ResponseEntity<ApiUtils.ApiResult<String>> deleteChart(@PathVariable Long chartId) {
public ResponseEntity<ApiUtils.ApiResult<String>> deleteChart(@PathVariable("chartId") Long chartId) {
// ํ™˜์ž ์ •๋ณด ์ ‘๊ทผ ๊ถŒํ•œ ํ™•์ธ ๋กœ์ง ํ•„์š” -> ์š”์–‘์‚ฌ๊ฐ€ ๋งก์€ ํ™˜์ž ์ •๋ณด๋งŒ ์‚ญ์ œ ๊ฐ€๋Šฅ
chartService.deleteChart(chartId);
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import dbdr.domain.chart.dto.response.ChartDetailResponse;
import dbdr.domain.chart.service.ChartService;
import dbdr.global.util.api.ApiUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
Expand All @@ -18,12 +20,14 @@
import org.springframework.web.bind.annotation.RestController;

// ๋ณดํ˜ธ์ž ๊ถŒํ•œ ํ•„์š”
@Tag(name = "๋ณดํ˜ธ์ž (Guardian) ์ฐจํŠธ", description = "๋ณดํ˜ธ์ž ์ฐจํŠธ ์กฐํšŒ")
@RestController
@RequestMapping("/${spring.app.version}/guardian/chart")
@RequiredArgsConstructor
public class GuardianChartController {
private final ChartService chartService;

@Operation(summary = "๋Œ๋ด„๋Œ€์ƒ์ž ์•„์ด๋””๋กœ ์ฐจํŠธ ์ •๋ณด ์กฐํšŒ")
@GetMapping("/recipient")
public ResponseEntity<ApiUtils.ApiResult<Page<ChartDetailResponse>>> getAllChartByRecipientId(
@RequestParam(value = "recipient-id", required = false) Long recipientId,
Expand All @@ -33,6 +37,7 @@ public ResponseEntity<ApiUtils.ApiResult<Page<ChartDetailResponse>>> getAllChart
return ResponseEntity.ok(ApiUtils.success(recipients));
}

@Operation(summary = "์ฐจํŠธ ์•„์ด๋””๋กœ ์ฐจํŠธ ์ •๋ณด ์กฐํšŒ")
@GetMapping("/{chartId}")
public ResponseEntity<ApiUtils.ApiResult<ChartDetailResponse>> getChartById(@PathVariable Long chartId) {
// ํ™˜์ž ์ •๋ณด ์ ‘๊ทผ ๊ถŒํ•œ ํ™•์ธ ๋กœ์ง ํ•„์š” -> ๋ณดํ˜ธ์ž๊ฐ€ ์ž์‹ ์˜ ํ™˜์ž ์ •๋ณด๋งŒ ์กฐํšŒ ๊ฐ€๋Šฅ
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,23 @@
package dbdr.domain.chart.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;

public record BodyManagementRequest(
boolean wash, // ์„ธ๋ฉด ์œ ๋ฌด
boolean bath, // ๋ชฉ์š• ์œ ๋ฌด
String mealType, // ์‹์‚ฌ ์ข…๋ฅ˜
String intakeAmount, // ์„ญ์ทจ๋Ÿ‰
int physicalRestroom, // ํ™”์žฅ์‹ค ํšŸ์ˆ˜
boolean has_walked, // ์‚ฐ์ฑ…
boolean has_companion, // ์™ธ์ถœ ๋™ํ–‰
String physicalNote // ํŠน์ด์‚ฌํ•ญ ์ž…๋ ฅ
@Schema(description = "์„ธ๋ฉด ์œ ๋ฌด", example = "true")
boolean wash, // ์„ธ๋ฉด ์œ ๋ฌด
@Schema(description = "๋ชฉ์š• ์œ ๋ฌด", example = "true")
boolean bath, // ๋ชฉ์š• ์œ ๋ฌด
@Schema(description = "์‹์‚ฌ ์ข…๋ฅ˜", example = "์ฑ„์‹")
String mealType, // ์‹์‚ฌ ์ข…๋ฅ˜
@Schema(description = "์„ญ์ทจ๋Ÿ‰", example = "3ํšŒ")
String intakeAmount, // ์„ญ์ทจ๋Ÿ‰
@Schema(description = "ํ™”์žฅ์‹ค ํšŸ์ˆ˜", example = "6")
int physicalRestroom, // ํ™”์žฅ์‹ค ํšŸ์ˆ˜
@Schema(description = "์‚ฐ์ฑ…", example = "false")
boolean has_walked, // ์‚ฐ์ฑ…
@Schema(description = "์™ธ์ถœ ๋™ํ–‰", example = "false")
boolean has_companion, // ์™ธ์ถœ ๋™ํ–‰
@Schema(description = "ํŠน์ด์‚ฌํ•ญ ์ž…๋ ฅ", example = "ํ‰์†Œ๋ณด๋‹ค ์ปจ๋””์…˜์ด ์ข‹์œผ์…จ๋‹ค.")
String physicalNote // ํŠน์ด์‚ฌํ•ญ ์ž…๋ ฅ
) {
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,25 @@
package dbdr.domain.chart.dto.request;

import dbdr.domain.recipient.entity.Recipient;
import io.swagger.v3.oas.annotations.media.Schema;

public record ChartDetailRequest(
@Schema(description = "์ƒํƒœ", example = "์˜ค๋Š˜์€ ์ƒํƒœ๊ฐ€ ๋งค์šฐ ์ข‹์œผ์…จ๋‹ค.")
String conditionDisease,
@Schema(description = "๋Œ๋ด„๋Œ€์ƒ์ž", example = "{\"id\":\"1\"}")
Recipient recipient,
@Schema(description = "์‹ ์ฒดํ™œ๋™", example = "{\"wash\": true,\"bath\": true,\"mealType\": \"์ฑ„์‹\","
+ "\"intakeAmount\": \"3ํšŒ\",\"physicalRestroom\": 6,\"has_walked\": false,"
+ "\"has_companion\": false, \"physicalNote\": \"ํ‰์†Œ๋ณด๋‹ค ์ปจ๋””์…˜์ด ์ข‹์œผ์…จ๋‹ค.\"}")
BodyManagementRequest bodyManagement,
@Schema(description = "๊ฐ„ํ˜ธ๊ด€๋ฆฌ", example = "{\"systolic\": 300,"
+ "\"diastolic\": 200,"
+ "\"healthTemperature\": \"32๋„\","
+ "\"healthNote\": \"์—†์Œ\"}")
NursingManagementRequest nursingManagement,
@Schema(description = "์ธ์ง€๊ด€๋ฆฌ", example = "{\"cognitiveHelp\": true,\"cognitiveNote\": \"์—†์Œ\"}")
CognitiveManagementRequest cognitiveManagement,
@Schema(description = "๊ธฐ๋ŠฅํšŒ๋ณตํ›ˆ๋ จ", example = "{\"recoveryProgram\":\"ํšŒ๋ณต\",\"recoveryTraining\": true,\"recoveryNote\": \"์—†์Œ\"}")
RecoveryTrainingRequest recoveryTraining
) {
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
package dbdr.domain.chart.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;

public record CognitiveManagementRequest(
boolean cognitiveHelp, // ์˜์‚ฌ์†Œํ†ต ๋„์›€ ์—ฌ๋ถ€
String cognitiveNote // ์ธ์ง€ ๊ด€๋ฆฌ ํŠน์ด์‚ฌํ•ญ
@Schema(description = "์˜์‚ฌ์†Œํ†ต ๋„์›€ ์—ฌ๋ถ€", example = "true")
boolean cognitiveHelp, // ์˜์‚ฌ์†Œํ†ต ๋„์›€ ์—ฌ๋ถ€
@Schema(description = "์ธ์ง€ ๊ด€๋ฆฌ ํŠน์ด์‚ฌํ•ญ", example = "์—†์Œ")
String cognitiveNote // ์ธ์ง€ ๊ด€๋ฆฌ ํŠน์ด์‚ฌํ•ญ
) {
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
package dbdr.domain.chart.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;

public record NursingManagementRequest(
int systolic, // ํ˜ˆ์•• ์ตœ๊ณ 
int diastolic, // ํ˜ˆ์•• ์ตœ์ €
String healthTemperature, // ์ฒด์˜จ
String healthNote // ๊ฑด๊ฐ• ๋ฐ ๊ฐ„ํ˜ธ๊ด€๋ฆฌ ํŠน์ด์‚ฌํ•ญ
@Schema(description = "ํ˜ˆ์•• ์ตœ๊ณ ", example = "300")
int systolic, // ํ˜ˆ์•• ์ตœ๊ณ 
@Schema(description = "ํ˜ˆ์•• ์ตœ์ €", example = "200")
int diastolic, // ํ˜ˆ์•• ์ตœ์ €
@Schema(description = "์ฒด์˜จ", example = "32๋„")
String healthTemperature, // ์ฒด์˜จ
@Schema(description = "๊ฑด๊ฐ• ๋ฐ ๊ฐ„ํ˜ธ๊ด€๋ฆฌ ํŠน์ด์‚ฌํ•ญ", example = "์—†์Œ")
String healthNote // ๊ฑด๊ฐ• ๋ฐ ๊ฐ„ํ˜ธ๊ด€๋ฆฌ ํŠน์ด์‚ฌํ•ญ
) {
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
package dbdr.domain.chart.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;

public record RecoveryTrainingRequest(
String recoveryProgram, // ํšŒ๋ณต ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„
boolean recoveryTraining, // ํšŒ๋ณตํ›ˆ๋ จ ์™„๋ฃŒ ์—ฌ๋ถ€
String recoveryNote // ํšŒ๋ณตํ›ˆ๋ จ ํŠน์ด์‚ฌํ•ญ
@Schema(description = "ํšŒ๋ณต ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„", example = "ํšŒ๋ณต")
String recoveryProgram, // ํšŒ๋ณต ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„
@Schema(description = "ํšŒ๋ณตํ›ˆ๋ จ ์™„๋ฃŒ ์—ฌ๋ถ€", example = "true")
boolean recoveryTraining, // ํšŒ๋ณตํ›ˆ๋ จ ์™„๋ฃŒ ์—ฌ๋ถ€
@Schema(description = "ํšŒ๋ณตํ›ˆ๋ จ ํŠน์ด์‚ฌํ•ญ", example = "์—†์Œ")
String recoveryNote // ํšŒ๋ณตํ›ˆ๋ จ ํŠน์ด์‚ฌํ•ญ
) {
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
package dbdr.domain.chart.dto.response;

import com.fasterxml.jackson.annotation.JsonProperty;

public record BodyManagementResponse(
Long id,
boolean wash, // ์„ธ๋ฉด ์œ ๋ฌด
boolean bath, // ๋ชฉ์š• ์œ ๋ฌด
String mealType, // ์‹์‚ฌ ์ข…๋ฅ˜
String intakeAmount, // ์„ญ์ทจ๋Ÿ‰
int physicalRestroom, // ํ™”์žฅ์‹ค ํšŸ์ˆ˜
boolean has_walked, // ์‚ฐ์ฑ…
boolean has_companion, // ์™ธ์ถœ ๋™ํ–‰
String physicalNote // ํŠน์ด์‚ฌํ•ญ ์ž…๋ ฅ
Long id,
@JsonProperty("์„ธ๋ฉด ์œ ๋ฌด") boolean wash, // ์„ธ๋ฉด ์œ ๋ฌด
@JsonProperty("๋ชฉ์š• ์œ ๋ฌด") boolean bath, // ๋ชฉ์š• ์œ ๋ฌด
@JsonProperty("์‹์‚ฌ ์ข…๋ฅ˜") String mealType, // ์‹์‚ฌ ์ข…๋ฅ˜
@JsonProperty("์„ญ์ทจ๋Ÿ‰") String intakeAmount, // ์„ญ์ทจ๋Ÿ‰
@JsonProperty("ํ™”์žฅ์‹ค ํšŸ์ˆ˜") int physicalRestroom, // ํ™”์žฅ์‹ค ํšŸ์ˆ˜
@JsonProperty("์‚ฐ์ฑ… ์œ ๋ฌด") boolean has_walked, // ์‚ฐ์ฑ…
@JsonProperty("์™ธ์ถœ ๋™ํ–‰ ์œ ๋ฌด") boolean has_companion, // ์™ธ์ถœ ๋™ํ–‰
@JsonProperty("ํŠน์ด์‚ฌํ•ญ ์ž…๋ ฅ") String physicalNote // ํŠน์ด์‚ฌํ•ญ ์ž…๋ ฅ
) {
}
Loading

0 comments on commit e79bb5b

Please sign in to comment.