Skip to content

Commit

Permalink
[master] Week10 conflict fix ๋ฒ„์ „ (#136)
Browse files Browse the repository at this point in the history
* feat : build.gradle : MySQL ์˜์กด์„ฑ ์ถ”๊ฐ€

* feat : application.yml : AWS RDS ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ํฌํ•จ.

* chore: ์„ค์ • ํŒŒ์ผ ์ˆ˜์ •

* feat: ๊ณตํ†ต ์—”ํ‹ฐํ‹ฐ ์ž‘์„ฑ
- ์‹๋ณ„์ž, ์ƒ์„ฑ/์ˆ˜์ •์ผ์ž, ์‚ญ์ œ ์ƒํƒœ๊ฐ’ ๋“ฑ์˜ ๊ณตํ†ต ํ•„๋“œ๋ฅผ baseEntity๋กœ ์ •์˜

* feat: ์ฐจํŠธ ์—”ํ‹ฐํ‹ฐ ์ž‘์„ฑ

* feat: ์ฐจํŠธ ์‹ ์ฒดํ™œ๋™ ์—”ํ‹ฐํ‹ฐ ์ž‘์„ฑ
- ์ฒญ๊ฒฐ, ์‹์‚ฌ ๊ด€๋ จ ํ•„๋“œ๋Š” ์ž„๋ฒ ๋””๋“œ ํƒ€์ž…์œผ๋กœ ์„ ์–ธ

* feat: chart-bodyNote ์—ฐ๊ด€๊ด€๊ณ„ ์„ค์ •
- chart์™€ ์‹ ์ฒดํ™œ๋™(bodyNote)๋Š” ์ผ๋Œ€์ผ ์—ฐ๊ด€๊ด€๊ณ„ ์„ค์ •

* feat: ์‹ ์ฒด ํ™œ๋™ ๊ด€๋ จ ์ž„๋ฒ ๋””๋“œ ํƒ€์ž… ์ƒ์„ฑ์ž ์ถ”๊ฐ€

* feat: ์ฐจํŠธ ์„ธ๋ถ€ํ•ญ๋ชฉ - ๊ฐ„ํ˜ธ ํ™œ๋™ ์—”ํ‹ฐํ‹ฐ ์ž‘์„ฑ
- ํ˜ˆ์•• ๊ด€๋ จ ํ•„๋“œ๋Š” ์ž„๋ฒ ๋””๋“œ ํƒ€์ž…์œผ๋กœ ๊ด€๋ฆฌ

* chore: ์‹ ์ฒดํ™œ๋™ ์—”ํ‹ฐํ‹ฐ ์ด๋ฆ„ ๋ณ€๊ฒฝ

* feat: ์ฐจํŠธ- ๊ฐ„ํ˜ธํ™œ๋™ ์—ฐ๊ด€๊ด€๊ณ„ ์„ค์ •

* feat: ์ธ์ง€ ํ›ˆ๋ จ ์—”ํ‹ฐํ‹ฐ ์ž‘์„ฑ

* feat: ์ฐจํŠธ - ์ธ์ง€ ํ›ˆ๋ จ ์—”ํ‹ฐํ‹ฐ ์—ฐ๊ด€๊ด€๊ณ„ ์„ค์ •

* chore: ๋ถˆํ•„์š”ํ•œ ์ปฌ๋Ÿผ ์†์„ฑ ์‚ญ์ œ

* chore: ๊ฐ„ํ˜ธํ™œ๋™ ์—”ํ‹ฐํ‹ฐ ์ƒ์† ์ˆ˜์ •
- baseEntity ์ƒ์†

* build : H2 database ์ถ”๊ฐ€

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

* build: ์Šคํ”„๋ง ๋ฒ„์ „ ์ˆ˜์ •

* chore: ๋งˆ์ง€๋ง‰ ๊ฐœํ–‰ ์ถ”๊ฐ€

* chore: ๋งˆ์ง€๋ง‰ ๊ฐœํ–‰ ์ถ”๊ฐ€

* feat: baseEntity ์‚ญ์ œ ํ•จ์ˆ˜ ์ถ”๊ฐ€

* feat: baseEntity ์ƒํƒœ๊ฐ’ ํ•„๋“œ๋ช… ๋ณ€๊ฒฝ

* save

* Feat: ์š”์–‘๋ณดํ˜ธ์‚ฌ CRUD (#7)

* fix: API ์ฃผ์†Œ ์ˆ˜์ •

* feat: ๋Œ๋ด„๋Œ€์ƒ์ž CRUD (#6)

* feat: ์š”์–‘๋ณดํ˜ธ์‚ฌ ID ๊ฒ€์ฆ ์ถ”๊ฐ€

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

* fix: ์ผ๋ถ€ ๋ฉ”์„ธ์ง€ ๋ณ€๊ฒฝ

* refactor: DTO ๋ถ„๋ฆฌ

* refactor: chart ๋„๋ฉ”์ธ ์ผ๋ถ€ ๋ณ€๊ฒฝ

* [๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€] ๋ณดํ˜ธ์ž ๋„๋ฉ”์ธ CRUD (#15)

* feat: guardians

* feat: #8 guardians ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* fix: chart ๋„๋ฉ”์ธ ๋ถ€๋ถ„ ์ˆ˜์ •

* refactor: guardian ํด๋” ๋ถ„๋ฆฌ, exception ๋“ฑ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* fix: chart is_active ์ˆ˜์ •

* 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 : ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* ๊ณ„์ธต ๋ถ„๋ฆฌ, ํ…Œ์ด๋ธ”๋ช…์„ ์ œ์™ธํ•˜๊ณ  ์ „๋ถ€ ๋‹จ์ˆ˜ํ˜• ์ฒ˜๋ฆฌ, ๊ฐ„๋‹จํ•œ ๋ฆฌํŒฉํ† ๋ง ์ž‘์—… (#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.

* feat: ๊ฐ•์ฒ ๋ฉ˜ํ† ๋‹˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜, chart์ œ์™ธ (#28)

* 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 ํœด๋Œ€ํฐ ๋ฒˆํ˜ธ ์ค‘๋ณต ๊ฒ€์‚ฌ

* @RestControllerAdvice๋ฅผ ์ด์šฉํ•œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฐ logging ์„ค์ • (#30)

* feat: ์˜ˆ์™ธ์ฒ˜๋ฆฌ(#26)

* comment: message ํ†ต์ผ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* ์ฐจํŠธ CRUD ๊ตฌํ˜„, ๊ณตํ†ต Response ํฌ๋งท ์ž‘์„ฑ (#33)

* 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 ์ž๋ฃŒํ˜•์œผ๋กœ ๋ณ€๊ฒฝ

* 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.

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

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

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

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

* merge: week4์™€ merge

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

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

* feat: ๊ณตํ†ต response ํฌ๋งท ์ž‘์„ฑ

* chore: ๋ถˆํ•„์š”ํ•œ ๊ฐœํ–‰ ์‚ญ์ œ

* refactor: chart ๊ด€๋ จ api response ํ˜•์‹ ์ˆ˜์ •
- ๊ณตํ†ต ํฌ๋งท์œผ๋กœ ๋ณ€๊ฒฝ

* refactor: api prefix ํ”„๋กœํผํ‹ฐ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ

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

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

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

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

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

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

* [์š”์–‘๋ณดํ˜ธ์‚ฌ / ๋ณดํ˜ธ์ž] Line messaging API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์•Œ๋ฆผ ์„œ๋น„์Šค ๊ตฌํ˜„ํ•˜๊ธฐ (#42)

* feat : ์˜์กด์„ฑ ์ถ”๊ฐ€

* feat : line api ์˜์กด์„ฑ ์ถ”๊ฐ€ ๋ฐ exception ๋””๋ ‰ํ† ๋ฆฌ ์œ„์น˜ ๋ณ€๊ฒฝ

* feat : ์›ฐ์ปด ๋ฉ”์‹œ์ง€ ๋ฐ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ฉ”์‹œ์ง€ ๋ฐ›๊ธฐ ์™„๋ฃŒ!!

* feat : ์•Œ๋ฆผ ๋ฉ”์‹œ์ง€ ๊ตฌํ˜„ ์™„๋ฃŒ!!

* refactor : Stranger ์›ฐ์ปด ๋ฉ”์‹œ์ง€ ๋ณ€๊ฒฝ

* refactor : ๋””๋ ‰ํ† ๋ฆฌ ์œ„์น˜ ๋ณ€๊ฒฝ

* refactor : 30๋ถ„ ๋‹จ์œ„๋„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ณ€๊ฒฝ, ์›ฐ์ปด ๋ฉ”์‹œ์ง€ ๋ณ€๊ฒฝ

* refactor : unfollow ์ด๋ฒคํŠธ ๋Œ€์ฒ˜

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

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

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

* refactor: developer -> admin

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

* refactor : ํŒŒ์ผ ๋ถ„๋ฆฌ

* refactor : baseEntity ์œ„์น˜ ๋ณ€๊ฒฝ

* feat : ๊ธฐ๋ณธ๊ฐ’ ์ดˆ๊ธฐํ™”

* feat : ๊ธฐ๋ณธ๊ฐ’ ์ดˆ๊ธฐํ™”

* refactor : ์ „ํ™”๋ฒˆํ˜ธ ์ž…๋ ฅ ๋กœ์ง ๊ตฌ์ฒดํ™”

* refactor : Optional ์ œ๊ฑฐ

* refactor : ์˜ˆ์™ธ ์ผ€์ด์Šค ๋Œ€์ฒ˜

* refactor : ๋ฉ”์„œ๋“œ ๋ถ„๋ฆฌ

* refactor : mapper ๋ฆฌํŒฉํ† ๋ง

* refactor : ์ˆœํ™˜ ์ฐธ์กฐ ํ•ด๊ฒฐ

* refactor : ๋””๋ ‰ํ† ๋ฆฌ๋ช… ์ •์˜

* test : ํ…Œ์ŠคํŠธ ์™„๋ฃŒ!

* refactor : private์œผ๋กœ ๋ฐ”๊พธ๊ธฐ

---------

Co-authored-by: hyyyh0x <141637975+hyyyh0x@users.noreply.github.com>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* Week6 ์ตœ์ข… PR (#51)

* build : H2 database ์ถ”๊ฐ€

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

* save

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

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

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

* feat : security config ์ถ”๊ฐ€

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* 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 : ์‹œํฌ๋ฆฟํ‚ค ์ˆ˜์ •, ์ด์ „๋ฒ„์ „ ์„œ๋น„์Šค ์ œ๊ฑฐ

---------

Co-authored-by: ๊น€ํƒœ์œค <77539625+pykido@users.noreply.github.com>
Co-authored-by: Jinsol Lee <purnsol1001@naver.com>

* 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 <20j.code@gmail.com>
Co-authored-by: ๊น€ํƒœ์œค <77539625+pykido@users.noreply.github.com>
Co-authored-by: Jinsol Lee <purnsol1001@naver.com>
Co-authored-by: 20jcode <109460399+20jcode@users.noreply.github.com>

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

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

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

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

* build: redis ๊ด€๋ จ ์„ค์ • ์ถ”๊ฐ€

* feat: redis config ์„ค์ •

* test: redis ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* refactor: Jwt ๊ธฐ๋ณธ ์ •๋ณด JwtUtil๋กœ ๋ถ„๋ฆฌ
- ๊ธฐ์กด application-secret.yml์— ์žˆ๋˜ ๋ณ€์ˆ˜๋ฅผ JwtUtil๋กœ ์ด๋™

* feat: jwt ํ† ํฐ ์ƒ์„ฑ ์‹œ issuer ์ถ”๊ฐ€

* feat: redis์— refresh ํ† ํฐ ์ €์žฅ, ์กฐํšŒ, ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feat: ํ† ํฐ ์ƒ์„ฑ ์‹œ ์‚ฌ์šฉํ•  TokenDTO ์ž‘์„ฑ
- refresh token, access token

* feat: TokenDTO ํ•„๋“œ ์ˆ˜์ •
- email์—์„œ username์œผ๋กœ ์ˆ˜์ •

* feat: refresh ํ† ํฐ ์ƒ์„ฑ ๊ตฌํ˜„
- ์•ก์„ธ์Šค ํ† ํฐ๊ณผ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ํ•œ ๋ฒˆ์— ์ƒ์„ฑ

* feat: access, refresh ํ† ํฐ ์ƒ์„ฑ ํ•จ์ˆ˜ ์ ์šฉ
- service,controller์— TokenDTO ์‘๋‹ต์œผ๋กœ ๋ณ€๊ฒฝ

* feat: refresh ํ† ํฐ ๊ด€๋ จ exception code ์„ ์–ธ

* feat: ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ•จ์ˆ˜ ๊ตฌํ˜„
- redis์— ํ† ํฐ ์กฐํšŒ๋กœ ํ† ํฐ ์œ ํšจ์„ฑ ๊ฒ€์ฆ

* feat: refresh ํ† ํฐ์œผ๋กœ ์žฌ๋ฐœ๊ธ‰ api ๊ตฌํ˜„

* feat: blackList access token redis์— ์ €์žฅ, ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* refactor: auth ๊ด€๋ จ api ์ˆ˜์ •
- v1/login์—์„œ v1/auth/login์œผ๋กœ ์ˆ˜์ •

* feat: ์‹œํ๋ฆฌํ‹ฐ config ์ˆ˜์ •
- ๊ถŒํ•œ์ด ํ•„์š”์—†๋Š” url์— ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ api ์ถ”๊ฐ€

* feat: ๋กœ๊ทธ์•„์›ƒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
- ๋กœ๊ทธ์•„์›ƒ ์‹œ ์•ก์„ธ์Šค ํ† ํฐ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ๋“ฑ๋ก
- ๋กœ๊ทธ์•„์›ƒ ์‹œ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ๋ ˆ๋””์Šค์—์„œ ์‚ญ์ œ

* feat: ๋กœ๊ทธ์•„์›ƒ ๊ธฐ๋Šฅ ์ˆ˜์ •
- ์œ ์ € ์ •๋ณด ์กฐํšŒ ๋กœ์ง ์ถ”๊ฐ€

* feat: ๋ ˆ๋””์Šค์— ํ† ํฐ ์ €์žฅ ์‹œ ํ‚ค ๋กœ์ง ๋ณ€๊ฒฝ
- ๊ธฐ์กด userName์—์„œ role+userName์œผ๋กœ ๋ณ€๊ฒฝ

* feat: ๋กœ๊ทธ์•„์›ƒ api ๊ตฌํ˜„

* feat: redis ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ์กฐํšŒ ๋กœ์ง ๋ณ€๊ฒฝ
- ๋‹จ์ˆœ ์กฐํšŒ ๋Œ€์‹  ํ† ํฐ๊ฐ’ ๋น„๊ต ํ›„ boolean ๊ฐ’ ๋ฐ˜ํ™˜

* feat: ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์œ ์ € ์กฐํšŒ์‹œ ๊ฒ€์ฆ ๋กœ์ง ์ถ”๊ฐ€
- ํ•ด๋‹น ์•ก์„ธ์Šค ํ† ํฐ์ด ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ

* feat: ํ† ํฐ prefix ๊ฒ€์ฆ ๋กœ์ง ์ถ”๊ฐ€

* feat: security ์ธ์ฆ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ filter ๊ตฌํ˜„

* feat: jwtFilter์—์„œ ์ธ์ฆ ์˜ค๋ฅ˜ ์‹œ ์˜ค๋ฅ˜ ๋˜์ง€๊ธฐ

* feat: SecurityConfig์— ์ธ์ฆ ์˜ค๋ฅ˜ handler filter ์ถ”๊ฐ€

* feat: token_prefix ๊ฒ€์ฆ ์ถ”๊ฐ€

* feat: ์œ ํšจํ•œ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์ด ์•„๋‹ ๊ฒฝ์šฐ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ์‚ญ์ œ

* fix: ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ํ† ํฐ ์œ ํšจ์‹œ๊ฐ„ ์ˆ˜์ •

* Week7 ์ตœ์ข… PR (#64)

* 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 ์„ค์ •

* ์ฐจํŠธ ์ž‘์„ฑ ์˜ค๋ฅ˜ ์ˆ˜์ • (#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 <20j.code@gmail.com>
Co-authored-by: ๊น€ํƒœ์œค <77539625+pykido@users.noreply.github.com>
Co-authored-by: Jinsol Lee <purnsol1001@naver.com>
Co-authored-by: 20jcode <109460399+20jcode@users.noreply.github.com>

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

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

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

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

---------

Co-authored-by: Yoo KyeongMi <yookyungmi02@gmail.com>
Co-authored-by: ๊น€ํƒœ์œค <77539625+pykido@users.noreply.github.com>
Co-authored-by: Jinsol Lee <purnsol1001@naver.com>
Co-authored-by: Yoo KyeongMi <89245114+yooookm@users.noreply.github.com>

* chore: ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ƒ์ˆ˜ ์ฒ˜๋ฆฌ

* refactor: ํ•„์š”์—†๋Š” try-catch ์ œ๊ฑฐ

* [๊ธด๊ธ‰] : ๋กœ๊ทธ์ธ๋œ ๋ฉค๋ฒ„ ์—”ํ‹ฐํ‹ฐ ๋ฐ›๋Š” ์ปค์Šคํ…€์–ด๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€ (#67)

* feat : custom auth member ์–ด๋…ธํ…Œ์ด์…˜ ๋งŒ๋“ค๊ธฐ

* feat : custom auth member ์–ด๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€

GuardianController์—์„œ ํ…Œ์ŠคํŠธ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.
์ฐธ๊ณ ํ•˜์‹œ๋ฉด ๋  ๋“ฏ ํ•ฉ๋‹ˆ๋‹น !!!

* Swagger ๊ตฌํ˜„ (#66)

* 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 <20j.code@gmail.com>
Co-authored-by: ๊น€ํƒœ์œค <77539625+pykido@users.noreply.github.com>
Co-authored-by: Jinsol Lee <purnsol1001@naver.com>
Co-authored-by: 20jcode <109460399+20jcode@users.noreply.github.com>

* 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 <20j.code@gmail.com>
Co-authored-by: Yoo KyeongMi <yookyungmi02@gmail.com>
Co-authored-by: ๊น€ํƒœ์œค <77539625+pykido@users.noreply.github.com>
Co-authored-by: Jinsol Lee <purnsol1001@naver.com>
Co-authored-by: 20jcode <109460399+20jcode@users.noreply.github.com>
Co-authored-by: Yoo KyeongMi <89245114+yooookm@users.noreply.github.com>

* docs: ๋กœ๊ทธ์ธ ๊ด€๋ จ api swagger ๋ช…์„ธ ์ถ”๊ฐ€

* feat: ์ฐจํŠธ ์ž‘์„ฑ request ๋ณ€๊ฒฝ
- ๊ธฐ์กด recipient ๊ฐ์ฒด์—์„œ recipientId๋กœ ๋ณ€๊ฒฝ
- id๋กœ recipient ๊ฐ์ฒด ์ฐพ๊ธฐ

* Refactor: recipient, careworker (#68)

* refactor: recipient, careworker

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

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

* refactor: guardian, institution ์ˆ˜์ • (#69)

* feat: BodyManagement ํ•„๋“œ ์ˆ˜์ •

* feat: BodyManagement ๊ด€๋ จ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* feat: BodyManagement ํ•„๋“œ ์ˆ˜์ •์— ๋”ฐ๋ฅธ req/res ์ˆ˜์ •

* docs: BodyManagementRequest swagger ๋ช…์„ธ ์ˆ˜์ •

* fix: res jsonProperty ์ˆ˜์ •
- ๊ธฐ์กด ๋ณ€์ˆ˜๋ช…์œผ๋กœ ๋ฐ˜ํ™˜

* test: chartMapperTest๋ฅผ ์œ„ํ•œ yml ํŒŒ์ผ ์ž‘์„ฑ

* feat: CognitiveManagement ํ•„๋“œ ์ถ”๊ฐ€
- ๋ง๋ฒ— ๋ฐ ๊ฒฉ๋ ค ์‚ฌํ•ญ ํ•„๋“œ ์ถ”๊ฐ€
- req/res ๋ณ€๊ฒฝ

* feat: NursingManagement ํ•„๋“œ ์ถ”๊ฐ€
- ๊ฑด๊ฐ• ๊ด€๋ฆฌ, ๊ฐ„ํ˜ธ ๊ด€๋ฆฌ, ์‘๊ธ‰ ๊ด€๋ฆฌ ํ•„๋“œ ์ถ”๊ฐ€
- req/res ๋ณ€๊ฒฝ

* test: ๋ฐ”๋€ chart ์—”ํ‹ฐํ‹ฐ์— ๋”ฐ๋ผ test ์ฝ”๋“œ ๋ณ€๊ฒฝ

* feat: RecoveryTraining ํ•„๋“œ ์ถ”๊ฐ€
- ์ธ์ง€ ๊ธฐ๋Šฅ ํ›ˆ๋ จ, ๋ฌผ๋ฆฌ ์น˜๋ฃŒ ์ œ๊ณต ์—ฌ๋ถ€ ์ถ”๊ฐ€
- req/res ๋ณ€๊ฒฝ
- test ์ฝ”๋“œ ๋ณ€๊ฒฝ

* LLM์„ ํ™œ์šฉํ•˜์—ฌ ๋Œ๋ด„๋Œ€์ƒ์ž๋ณ„ ์ฐจํŠธ ์š”์•ฝํ•˜๊ธฐ (#59)

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

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

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

* refactor: developer -> admin

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

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

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

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

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

* refactor: developer -> admin

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

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

* feat: swagger, openAi

* ์š”์–‘๋ณดํ˜ธ์‚ฌ ๋งˆ์ดํŽ˜์ด์ง€ ๊ด€๋ จ API ๊ตฌํ˜„ + refactor ์—‘์…€ + refactor ์š”์–‘๋ณดํ˜ธ์‚ฌ ๋Œ๋ด„๋Œ€์ƒ์ž (#77)

* feat: careworker ๋งˆ์ดํŽ˜์ด์ง€, refactor recipient

* feat: adminController ์ถ”๊ฐ€

* refactor: Excel

* feat: ๊ทผ๋ฌด์ผ '์š”์ผ'๋กœ ์„ค์ •

* fix: ์š”์ผ java.time.dayofweek ์‚ฌ์šฉ

* refactor: List, ApiUtil, LoginInstitution ํ†ต์ผ

* feat: RecipientGuandianConstroller, ์ˆ˜์ •๊ถŒํ•œ๋“ค ์„ธ๋ถ„ํ™”

* feat: Excel ๊ถŒํ•œ ์ถ”๊ฐ€

* summarization api refactor (#78)

* feat: summary db์— ์ €์žฅ

* refactor: ์•ˆ์“ฐ๋Š” import๋ฌธ ์‚ญ์ œ

* refactor: ํ•„์š”์—†๋Š” import ์‚ญ์ œ, id๊ฐ’ ๋ฐ›์•„์˜ค๊ธฐ ์ˆ˜์ •

* refactor: summarization ์ˆ˜์ •

* feat: ์š”์•ฝ tag ์ถ”๊ฐ€

* refactor: responseํ†ต์ผ

* feat: guardian, institution ์‘๋‹ต ํ†ต์ผ, controller๋ถ„๋ฆฌ (#88)

* Week 10 PR ํ•ฉ์น˜๊ธฐ (#89)

* docs : ์‹œํ๋ฆฌํ‹ฐ ์„ค๋ช…

* chore : ๊ฒฝ๋กœ ์ˆ˜์ •

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

* feat : ๋ณดํ˜ธ์ž ๊ธฐ๊ด€ID ์ถ”๊ฐ€

* chore : ๊ตฌ๋ฒ„์ „ ์‚ญ์ œ

* chore : ์ถฉ๋Œํ•ด๊ฒฐ

* feat : JwtProvider ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

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

* chore : ๋ฉ”์„œ๋“œ ์ด๋ฆ„ ๋ณ€๊ฒฝ

* save : test ์ถ”๊ฐ€

* chore : secret ํ‚ค ์ˆจ๊ธฐ๊ธฐ

* test : Careworker ํ…Œ์ŠคํŠธ ์‹คํŒจ

* chore : Todo ์ž‘์„ฑ

* chore : ์ถฉ๋Œ ์ˆ˜์ •

* chore : ๋ถˆํ•„์š” ์ฃผ์„ ์ œ๊ฑฐ

* docs : ๊ถŒํ•œ ๊ฒ€์‚ฌ ํŒŒ๋ผ๋ฏธํ„ฐ ์ฃผ์„ ์ถ”๊ฐ€

* chore : ๋งค๊ฐœ๋ณ€์ˆ˜ ํƒ€์ž… ๋ณ€๊ฒฝ, enum ํด๋ž˜์Šค ์ฃผ์„ ์ถ”๊ฐ€

* feat : Null ์ฒดํฌ + role ํ™•์ธ ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€

* save

* chore : ์œ„์น˜ ๋ณ€๊ฒฝ

* test : ๊ถŒํ•œ ํ™•์ธ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* test : ํ†ตํ•ฉํ…Œ์ŠคํŠธ ๋ชจ๋“ˆ ์ถ”๊ฐ€์ค‘

* refactor: guardian, institution ์ˆ˜์ •

* chore : merge ์ถฉ๋Œํ•ด๊ฒฐ

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

* chore : ์ปดํŒŒ์ผ ์—๋Ÿฌ ์ˆ˜์ •

* chore : Requset DTO ์ด๋ฆ„ ํ†ต์ผ

* chore : ์„œ๋ฒ„๊ด€๋ฆฌ์ž ์—”ํ‹ฐํ‹ฐ ์ˆ˜์ •

* feat : ํ†ตํ•ฉ testmodule ์ถ”๊ฐ€

* feat : test๋ชจ๋“ˆ ์™„์„ฑ + spring ํ…Œ์ŠคํŠธ config ์ถ”๊ฐ€

* feat : ์„œ๋ฒ„ ๊ด€๋ฆฌ์ž ์ปจํŠธ๋กค๋Ÿฌ ์ถ”๊ฐ€ ๋ฐ ์„œ๋น„์Šค ์ผ๋ถ€ ์ˆ˜์ •

* chore : ๋ณดํ˜ธ์ž ๋„๋ฉ”์ธ ์ผ๋ถ€ ์˜ค๋ฅ˜ ์ˆ˜์ •

* fix : jwt header ํŒŒ์‹ฑ ์˜ค๋ฅ˜ ์ˆ˜์ •

* feat : ๊ถŒํ•œํ™•์ธ ๋กœ์ง AOP ์ ์šฉ

* test : adminํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

ํ˜„์žฌ test context๊ฐ„์— ์„œ๋กœ ๋…๋ฆฝ๋˜์ง€์•Š์€ ๋ฌธ์ œ ๋ฐœ์ƒ

* fix : ํ…Œ์ŠคํŠธ ๊ฐ„์— ๋…๋ฆฝ์„ฑ ์œ ์ง€ ์ถ”๊ฐ€

* test : ์š”์–‘์› ์ •๋ณด ๋ณ€๊ฒฝ ์ถ”๊ฐ€

response์—์„œ id๊ฐ’์„ ๋„˜๊ธฐ๋„๋ก ์„ค์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

* feat : EntityMapper ์ถ”๊ฐ€

entity <-> dto ๋ณ€ํ™˜๊ธฐ๋Šฅ ์ œ๊ณต

* test : ์š”์–‘์› ์ถ”๊ฐ€ ๋ฐ ๊ถŒํ•œ ๊ฒ€์‚ฌ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* test : ์š”์–‘๋ณดํ˜ธ์‚ฌ ๋“ฑ๋ก, ์š”์–‘๋ณดํ˜ธ์‚ฌ๊ฐ€ ์š”์–‘์› ์ปจํŠธ๋กค๋Ÿฌ ์ ‘๊ทผ ์ฐจ๋‹จ ํ…Œ์ŠคํŠธ

* fix : ์ปดํŒŒ์ผ error ํ•ด๊ฒฐ

* fix : ์ผ๋ถ€ ํ…Œ์ŠคํŠธ error ์ˆ˜์ •

---------

Co-authored-by: hyyyh0x <hyyyh0x@gmail.com>

* Admin ์ถ”๊ฐ€, ๋กœ๊ทธ์ธ ์„ฑ๊ณต test (#90)

* docs : ์‹œํ๋ฆฌํ‹ฐ ์„ค๋ช…

* chore : ๊ฒฝ๋กœ ์ˆ˜์ •

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

* feat : ๋ณดํ˜ธ์ž ๊ธฐ๊ด€ID ์ถ”๊ฐ€

* chore : ๊ตฌ๋ฒ„์ „ ์‚ญ์ œ

* chore : ์ถฉ๋Œํ•ด๊ฒฐ

* feat : JwtProvider ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

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

* chore : ๋ฉ”์„œ๋“œ ์ด๋ฆ„ ๋ณ€๊ฒฝ

* save : test ์ถ”๊ฐ€

* chore : secret ํ‚ค ์ˆจ๊ธฐ๊ธฐ

* test : Careworker ํ…Œ์ŠคํŠธ ์‹คํŒจ

* chore : Todo ์ž‘์„ฑ

* chore : ์ถฉ๋Œ ์ˆ˜์ •

* chore : ๋ถˆํ•„์š” ์ฃผ์„ ์ œ๊ฑฐ

* docs : ๊ถŒํ•œ ๊ฒ€์‚ฌ ํŒŒ๋ผ๋ฏธํ„ฐ ์ฃผ์„ ์ถ”๊ฐ€

* chore : ๋งค๊ฐœ๋ณ€์ˆ˜ ํƒ€์ž… ๋ณ€๊ฒฝ, enum ํด๋ž˜์Šค ์ฃผ์„ ์ถ”๊ฐ€

* feat : Null ์ฒดํฌ + role ํ™•์ธ ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€

* save

* chore : ์œ„์น˜ ๋ณ€๊ฒฝ

* test : ๊ถŒํ•œ ํ™•์ธ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* test : ํ†ตํ•ฉํ…Œ์ŠคํŠธ ๋ชจ๋“ˆ ์ถ”๊ฐ€์ค‘

* refactor: guardian, institution ์ˆ˜์ •

* chore : merge ์ถฉ๋Œํ•ด๊ฒฐ

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

* chore : ์ปดํŒŒ์ผ ์—๋Ÿฌ ์ˆ˜์ •

* chore : Requset DTO ์ด๋ฆ„ ํ†ต์ผ

* chore : ์„œ๋ฒ„๊ด€๋ฆฌ์ž ์—”ํ‹ฐํ‹ฐ ์ˆ˜์ •

* feat : ํ†ตํ•ฉ testmodule ์ถ”๊ฐ€

* feat : test๋ชจ๋“ˆ ์™„์„ฑ + spring ํ…Œ์ŠคํŠธ config ์ถ”๊ฐ€

* feat : ์„œ๋ฒ„ ๊ด€๋ฆฌ์ž ์ปจํŠธ๋กค๋Ÿฌ ์ถ”๊ฐ€ ๋ฐ ์„œ๋น„์Šค ์ผ๋ถ€ ์ˆ˜์ •

* chore : ๋ณดํ˜ธ์ž ๋„๋ฉ”์ธ ์ผ๋ถ€ ์˜ค๋ฅ˜ ์ˆ˜์ •

* fix : jwt header ํŒŒ์‹ฑ ์˜ค๋ฅ˜ ์ˆ˜์ •

* feat : ๊ถŒํ•œํ™•์ธ ๋กœ์ง AOP ์ ์šฉ

* test : adminํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

ํ˜„์žฌ test context๊ฐ„์— ์„œ๋กœ ๋…๋ฆฝ๋˜์ง€์•Š์€ ๋ฌธ์ œ ๋ฐœ์ƒ

* fix : ํ…Œ์ŠคํŠธ ๊ฐ„์— ๋…๋ฆฝ์„ฑ ์œ ์ง€ ์ถ”๊ฐ€

* test : ์š”์–‘์› ์ •๋ณด ๋ณ€๊ฒฝ ์ถ”๊ฐ€

response์—์„œ id๊ฐ’์„ ๋„˜๊ธฐ๋„๋ก ์„ค์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

* feat : EntityMapper ์ถ”๊ฐ€

entity <-> dto ๋ณ€ํ™˜๊ธฐ๋Šฅ ์ œ๊ณต

* test : ์š”์–‘์› ์ถ”๊ฐ€ ๋ฐ ๊ถŒํ•œ ๊ฒ€์‚ฌ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* test : ์š”์–‘๋ณดํ˜ธ์‚ฌ ๋“ฑ๋ก, ์š”์–‘๋ณดํ˜ธ์‚ฌ๊ฐ€ ์š”์–‘์› ์ปจํŠธ๋กค๋Ÿฌ ์ ‘๊ทผ ์ฐจ๋‹จ ํ…Œ์ŠคํŠธ

* fix : ์ปดํŒŒ์ผ error ํ•ด๊ฒฐ

* fix : ์ผ๋ถ€ ํ…Œ์ŠคํŠธ error ์ˆ˜์ •

* fix : jwt config ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* test : admin ๊ณ„์ • ์ถ”๊ฐ€, ๋กœ๊ทธ์ธ

* test : admin ๊ณ„์ • ์ถ”๊ฐ€ ์ปจํŠธ๋กค๋Ÿฌ (์ž„์‹œ)

---------

Co-authored-by: hyyyh0x <hyyyh0x@gmail.com>

* refactor : ๊ฐ„๋‹จํ•œ ์ˆ˜์ • (#91)

* api ๋ฒ„๊ทธ ์ˆ˜์ • ์™„๋ฃŒ (#114)

* refactor: guardianExcel (#117)

* ์ฐจํŠธ api ๊ถŒํ•œ ๊ฒ€์ฆ ์ถ”๊ฐ€ (#118)

* merge

* fix: chart ํ•„๋“œ ์ž๋ฃŒํ˜• ๋ณ€๊ฒฝ
- ๋ชจ๋‘ string, boolean์œผ๋กœ ํ†ต์ผ

* fix: pagable ์ถ”๊ฐ€

* feat: chartOverViewResponse ์ƒ์„ฑ

* feat: chartOverViewResponse mapper ์ถ”๊ฐ€

* test: chartOverViewResponse mapper ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์ž‘์„ฑ

* feat: ์ฐจํŠธ ์ „์ฒด ์กฐํšŒ์‹œ chartOverViewResponse ์ ์šฉ

* feat: chartResponse ์—๋Ÿฌ ์ฒ˜๋ฆฌ

* fix : admin add ์˜ค๋ฅ˜ ์ˆ˜์ •

* refactor : ๋กœ๊ทธ์ธ ๋ฆฌํŒฉํ† ๋ง (#92)

* refactor: summary ์ˆ˜์ • (#93)

* feat: ์š”์–‘๋ณดํ˜ธ์‚ฌ ์ฐจํŠธ api ๊ถŒํ•œ ๊ฒ€์ฆ ์ถ”๊ฐ€

* feat: ๋ณดํ˜ธ์ž ์ฐจํŠธ api ๊ถŒํ•œ ๊ฒ€์ฆ ์ถ”๊ฐ€

* docs: ์ฐจํŠธ api swagger ์ˆ˜์ •

* fix: LoginCareWorker ์–ด๋…ธํ…Œ์ด์…˜ ์ˆ˜์ •

* fix: LoginCareWorker ์–ด๋…ธํ…Œ์ด์…˜ ์ˆ˜์ •

---------

Co-authored-by: mac <20j.code@gmail.com>
Co-authored-by: ๊น€ํƒœ์œค <77539625+pykido@users.noreply.github.com>
Co-authored-by: hyyyh0x <141637975+hyyyh0x@users.noreply.github.com>

* [์ฐจํŠธ ์ž…๋ ฅ ๊ธฐ๋Šฅ] OCR + S3 + presigned url๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ (#86)

* refactor : ์•Œ๋ฆผ ์˜ˆ์•ฝ ์ˆ˜์ • ๋ถ€๋ถ„ ์‚ญ์ œํ•˜๊ธฐ

* feat : ์•Œ๋ฆผ ์ „์šฉ ํ…Œ์ด๋ธ” ๋งŒ๋“ค๊ธฐ

* feat : ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* feat : sqs ์„œ๋น„์Šค ๋ถ™์ด๊ณ  ํ…Œ์ŠคํŠธํ•˜๊ธฐ

* feat : sqs ์„œ๋น„์Šค ํ†ต์ผํ™”

* feat : ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์—์„œ ์š”์–‘๋ณดํ˜ธ์‚ฌ ์ถ”๊ฐ€ํ•  ๋•Œ ์•Œ๋žŒ ํ…Œ์ด๋ธ”๋„ ์ถ”๊ฐ€ํ•˜๊ธฐ

* refactor : ์Šค์ผ€์ฅด๋Ÿฌ ์ฝ”๋“œ ์ˆ˜์ •ํ•˜๊ธฐ

* feat : ์š”์–‘๋ณดํ˜ธ์‚ฌ ์„ฑ๊ณต!!!

* feat : ๋‹ค์Œ ๊ทผ๋ฌด์ผ์— ๋ณด๋‚ผ ์•Œ๋ฆผ ๋ฉ”์‹œ์ง€ ์ž‘์„ฑ

* feat : ์š”์–‘๋ณดํ˜ธ์‚ฌ ๋กœ์ง ์™„์„ฑ

* refactor : ๋””๋ ‰ํ† ๋ฆฌ ์œ„์น˜ ๋ณ€๊ฒฝ

* feat : coolsms ์˜์กด์„ฑ ์ถ”๊ฐ€

* feat : sms ๋ฌธ์ž ๋ฉ”์‹œ์ง€ api ์—ฐ๊ฒฐ ์™„๋ฃŒ

* feat : Presigned Url ์ƒ์„ฑ ๋ฐ ํ…Œ์ŠคํŠธ ์™„๋ฃŒ

* feat : ํ‚ค๊ฐ’๊ณผ presigned url์„ OcrData ํ…Œ์ด๋ธ”์— ์ €์žฅํ•ด์ฃผ๊ธฐ

* feat : Naver Clova OCR API๋ฅผ ํ†ตํ•˜์—ฌ ํ…์ŠคํŠธ ์ถ”์ถœ ์„ฑ๊ณต

* feat : Naver Clova OCR API๋ฅผ ํ†ตํ•˜์—ฌ ํ‘œ ์ถ”์ถœ ์„ฑ๊ณต

* refactor : Presigned URL ์ƒ์„ฑ ๋ฐ ๋ฐ˜ํ™˜ ๋กœ์ง ์ˆ˜์ •

* refactor : OCR ์ธ์‹ ๊ณผ์ • ์ˆ˜์ •

* refactor : ๊ฐ„๋‹จํ•œ ์ˆ˜์ •

* refactor : excel ํŒŒ์ผ ์ด์ „

* refactor : ์ด๋ฆ„ ์ˆ˜์ •

* refactor : ์—‘์…€ ํŒŒ์ผ ์ด์ „

* refactor : 4. Chart API๊นŒ์ง€ ํ™•์ธ ์™„๋ฃŒ

* refactor : ์ˆจ๊ธฐ๊ธฐ

* refactor : OCR Test ์™„๋ฃŒ!!!

* feat : CORS ํ•ด๊ฒฐ!!! (#121)

* ๋ฐฐํฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ˆ˜์ •!! (#122)

* feat : health-check ์ถ”๊ฐ€ ๋ฐ CORS ํ•ด๊ฒฐ

* feat : health-check end point ์ˆ˜์ •

* refactor : health-check api ์ˆ˜์ • (#123)

* refactor: response์— id๋„ฃ๊ธฐ (#119)

* refactor: response์— id๋„ฃ๊ธฐ

* refactor: guardian ์ˆ˜์ •

* refactor: parameter hidden true

* refactor: @Schema์™€ validate

* [์š”์–‘์›]-๋Œ๋ด„๋Œ€์ƒ์ž ๊ด€๋ฆฌ(์ผ๋ถ€๊ถŒํ•œ ํ•ด๊ฒฐํ•„์š”) (#124)

* refactor: excel ์„ฑ๊ณต

* feat: CareworkerController๋“ค ๊ถŒํ•œ ๋ถ€์—ฌ

* feat: ์š”์–‘์›-๋Œ๋ด„๋Œ€์ƒ์ž ๊ด€๋ฆฌ ๋นผ๊ณ  ๋‹ค ์„ฑ๊ณต

* fix: ์ผ๋ถ€ ๊ถŒํ•œ ์ฃผ์„ ์ฒ˜๋ฆฌ

* fix: guardian institution๊ด€๋ จ (#126)

* [์š”์–‘๋ณดํ˜ธ์‚ฌ/๋ณดํ˜ธ์ž] coolSMS API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SMS ์•Œ๋ฆผ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ (#87)

* refactor : ์•Œ๋ฆผ ์˜ˆ์•ฝ ์ˆ˜์ • ๋ถ€๋ถ„ ์‚ญ์ œํ•˜๊ธฐ

* feat : ์•Œ๋ฆผ ์ „์šฉ ํ…Œ์ด๋ธ” ๋งŒ๋“ค๊ธฐ

* feat : ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* feat : sqs ์„œ๋น„์Šค ๋ถ™์ด๊ณ  ํ…Œ์ŠคํŠธํ•˜๊ธฐ

* feat : sqs ์„œ๋น„์Šค ํ†ต์ผํ™”

* feat : ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์—์„œ ์š”์–‘๋ณดํ˜ธ์‚ฌ ์ถ”๊ฐ€ํ•  ๋•Œ ์•Œ๋žŒ ํ…Œ์ด๋ธ”๋„ ์ถ”๊ฐ€ํ•˜๊ธฐ

* refactor : ์Šค์ผ€์ฅด๋Ÿฌ ์ฝ”๋“œ ์ˆ˜์ •ํ•˜๊ธฐ

* feat : ์š”์–‘๋ณดํ˜ธ์‚ฌ ์„ฑ๊ณต!!!

* feat : ๋‹ค์Œ ๊ทผ๋ฌด์ผ์— ๋ณด๋‚ผ ์•Œ๋ฆผ ๋ฉ”์‹œ์ง€ ์ž‘์„ฑ

* feat : ์š”์–‘๋ณดํ˜ธ์‚ฌ ๋กœ์ง ์™„์„ฑ

* refactor : ๋””๋ ‰ํ† ๋ฆฌ ์œ„์น˜ ๋ณ€๊ฒฝ

* feat : coolsms ์˜์กด์„ฑ ์ถ”๊ฐ€

* feat : sms ๋ฌธ์ž ๋ฉ”์‹œ์ง€ api ์—ฐ๊ฒฐ ์™„๋ฃŒ

* refactor : ๊ฐ„๋‹จํ•œ ์ˆ˜์ •

* refactor : excel ํด๋” ์œ„์น˜ ๋ณ€๊ฒฝ

* refactor : update ์ˆ˜์ •

* feat : line url ๊ฒฝ๋กœ ์—ด์–ด๋‘๊ธฐ

* refactor : ์•Œ๋žŒ ํ…Œ์ด๋ธ” ๋˜ํ•œ ์ˆ˜์ •ํ•˜๊ธฐ

* feat : Line messaging ๊ธฐ๋Šฅ ์™„์„ฑํ•˜์˜€์Œ

* auth ๋ฌธ์ œ ํ•ด๊ฒฐ + Test ์ฝ”๋“œ ์ถ”๊ฐ€ (#129)

* test : ๊ด€๋ฆฌ์ž - ์š”์–‘์› CRUD

* test : ๊ด€๋ฆฌ์ž - ์š”์–‘์› CRUD

* test : ๊ด€๋ฆฌ์ž - ์š”์–‘๋ณดํ˜ธ์‚ฌ CRUD

* fix: careworker request ์ˆ˜์ •

* save

* fix : ๊ถŒํ•œ๊ฒ€์‚ฌ๋กœ์ง ์˜ค๋ฅ˜ ์ˆ˜์ • + ํ…Œ์ŠคํŠธ

* fix: recipient request ์ˆ˜์ •

* chore : ๋ถˆํ•„์š” JWT ๋กœ๊ทธ ์‚ญ์ œ

* feat : @Login ํŒŒ๋ผ๋ฏธํ„ฐ ์‚ฌ์šฉ ์‹œ ๊ถŒํ•œ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* fix : ํ…Œ์ŠคํŠธ ์‹œ ์š”์–‘์› ๋ฒˆํ˜ธ ์ถฉ๋Œ ์ˆ˜์ •

* fix : ๊ตฌ๋ฒ„์ „ ํ…Œ์ŠคํŠธ ์ œ๊ฑฐ

* feat : ๊ถŒํ•œ ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* fix : ๋กœ๊ทธ์ธ๋˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž์˜ ๊ถŒํ•œ ํ•„์š” ๋ฉ”์†Œ๋“œ ์ ‘๊ทผ ์ฐจ๋‹จ ๋กœ์ง ์ˆ˜์ •

* fix : ๊ถŒํ•œ ๊ฒ€์‚ฌ ์‹œ null ํŒŒ๋ผ๋ฏธํ„ฐ ์ฒ˜๋ฆฌ ์ถ”๊ฐ€

---------

Co-authored-by: mogld <143364802+mogld@users.noreply.github.com>

* CORS ํ•ด๊ฒฐ (#128)

* refactor : CORS ํ•ด๊ฒฐ

* refactor : CORS ํ•ด๊ฒฐ!!!!

* refactor: CR"U"D request (#130)

* refactor: ์ผ๋‹จ CRUD request ์ตœ์ข…์ˆ˜์ •

* refactor: ์ˆ˜์ •2

* refactor: ์ˆ˜์ •๋

* refactor: guardianInstitution ๊ถŒํ•œ ์ถ”๊ฐ€, ์ฝ”๋“œ ์ •๋ฆฌ, ์š”์•ฝ API ์ˆ˜์ • (#131)

* fix: guardian institution๊ด€๋ จ

* refactor: guardian ๊ถŒํ•œ ์ถ”๊ฐ€, database.yml ์ˆ˜์ •

* refactor: ์ฝ”๋“œ ๋ ๊ณต๋ฐฑ ์ถ”๊ฐ€, ๋ถˆํ•„์š”ํ•œ ๊ฐœํ–‰ ์‚ญ์ œ

* refactor: ์š”์•ฝ ๊ฐ’ ์œ„์น˜ ์ˆ˜์ •

---------

Co-authored-by: pykido <animoto1@naver.com>
Co-authored-by: ๊น€ํƒœ์œค <77539625+pykido@users.noreply.github.com>
Co-authored-by: Yoo KyeongMi <yookyungmi02@gmail.com>
Co-authored-by: Yoo KyeongMi <89245114+yooookm@users.noreply.github.com>
Co-authored-by: mogld <143364802+mogld@users.noreply.github.com>
Co-authored-by: hyyyh0x <141637975+hyyyh0x@users.noreply.github.com>
Co-authored-by: Jinsol Lee <purnsol1001@naver.com>
Co-authored-by: hyyyh0x <hyyyh0x@gmail.com>
  • Loading branch information
9 people authored Nov 14, 2024
1 parent 2538c69 commit 69bae0f
Show file tree
Hide file tree
Showing 183 changed files with 9,141 additions and 10 deletions.
43 changes: 41 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,11 @@ dependencies {
// ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'mysql:mysql-connector-java:8.0.33' // MySQL ์˜์กด์„ฑ ์ถ”๊ฐ€ (MySQL JDBC ๋“œ๋ผ์ด๋ฒ„)
runtimeOnly 'com.h2database:h2'

// ๋ณด์•ˆ
//implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
//implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
implementation 'org.springframework.boot:spring-boot-starter-security'

// JWT ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
Expand All @@ -45,11 +46,49 @@ 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๋Š” ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ

// Line-messaging-api ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
implementation 'com.linecorp.bot:line-bot-spring-boot:4.7.0'


// MapStruct
implementation 'org.mapstruct:mapstruct:1.4.2.Final'
annotationProcessor 'org.mapstruct:mapstruct-processor:1.4.2.Final'

//POI
implementation 'org.apache.poi:poi-ooxml:5.3.0'
implementation 'org.apache.commons:commons-compress:1.27.1'

// Redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis'

// Amazon SQS
implementation platform("io.awspring.cloud:spring-cloud-aws-dependencies:3.0.1")
implementation 'io.awspring.cloud:spring-cloud-aws-starter-sqs'

// CoolSMS
implementation 'net.nurigo:sdk:4.3.0'

// AWS S3
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'

// Naver Clova OCR API
implementation 'org.springframework.boot:spring-boot-starter-webflux' // WebClient ์‚ฌ์šฉ์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

// Health check
implementation 'org.springframework.boot:spring-boot-starter-actuator'
}

tasks.named('test') {
useJUnitPlatform()
}

tasks.withType(JavaCompile) {
options.compilerArgs += ['-parameters']
}
8 changes: 5 additions & 3 deletions src/main/java/dbdr/DbdrApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableJpaAuditing
@EnableScheduling
public class DbdrApplication {

public static void main(String[] args) {
SpringApplication.run(DbdrApplication.class, args);
}
public static void main(String[] args) {
SpringApplication.run(DbdrApplication.class, args);
}

}
5 changes: 5 additions & 0 deletions src/main/java/dbdr/domain/admin/AdminCreateRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package dbdr.domain.admin;

public record AdminCreateRequest(String loginId, String loginPassword) {

}
53 changes: 53 additions & 0 deletions src/main/java/dbdr/domain/admin/controller/AdminController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package dbdr.domain.admin.controller;

import dbdr.domain.admin.AdminCreateRequest;
import dbdr.domain.admin.service.AdminService;
import dbdr.security.model.AuthParam;
import dbdr.security.model.DbdrAuth;
import dbdr.security.model.Role;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import java.util.List;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Tag(name = "[๊ด€๋ฆฌ์ž] ์„œ๋ฒ„๊ด€๋ฆฌ์ž (Admin)", description = "์„œ๋ฒ„๊ด€๋ฆฌ์ž ์ •๋ณด ์กฐํšŒ, ์ˆ˜์ •")
@RestController
@RequestMapping("/${spring.app.version}/admin")
@RequiredArgsConstructor
@Slf4j
public class AdminController {

private final AdminService adminService;

@Operation(summary = "์„œ๋ฒ„๊ด€๋ฆฌ์ž ์ •๋ณด ์กฐํšŒ",security = @SecurityRequirement(name = "JWT"))
@GetMapping
@DbdrAuth(targetRole = Role.ADMIN)
public ResponseEntity<List<String>> getAdminList(){
return ResponseEntity.ok(adminService.getAllAdmins());
}

@Operation(summary = "ํŠน์ • ์„œ๋ฒ„๊ด€๋ฆฌ์ž ์ •๋ณด ์กฐํšŒ",security = @SecurityRequirement(name = "JWT"))
@GetMapping("/{id}")
@DbdrAuth(targetRole = Role.ADMIN, authParam = AuthParam.ADMIN_ID,id = "#id")
public ResponseEntity<String> getAdmin(@PathVariable(name = "id") Long id){
return ResponseEntity.ok(adminService.getAdminById(id));
}

@Operation(summary = "์„œ๋ฒ„๊ด€๋ฆฌ์ž ์ถ”๊ฐ€")
@PostMapping("/add")
public ResponseEntity<Void> addAdmin(@RequestBody AdminCreateRequest adminCreateRequest){

log.info("์–ด๋“œ๋ฏผ ์ƒ์„ฑ ์‹œ์ž‘, {} {}", adminCreateRequest.loginId(), adminCreateRequest.loginPassword());
adminService.addAdmin(adminCreateRequest);
return ResponseEntity.ok().build();
}
}
37 changes: 37 additions & 0 deletions src/main/java/dbdr/domain/admin/entity/Admin.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package dbdr.domain.admin.entity;

import dbdr.domain.core.base.entity.BaseEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.SQLRestriction;

@Entity
@Getter
@Table(name = "admins")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@SQLDelete(sql = "UPDATE admins SET is_active = false WHERE id = ?")
@SQLRestriction("is_active = true")
public class Admin extends BaseEntity {

@Column(unique = true)
private String loginId;

private String loginPassword;

@Builder
public Admin(String loginId, String loginPassword) {
this.loginId = loginId;
this.loginPassword = loginPassword;
}

public void changePassword(String password) {
this.loginPassword = password;
}

}
12 changes: 12 additions & 0 deletions src/main/java/dbdr/domain/admin/repository/AdminRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package dbdr.domain.admin.repository;

import dbdr.domain.admin.entity.Admin;
import java.util.List;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;

public interface AdminRepository extends JpaRepository<Admin, Long> {
Optional<Admin> findByLoginId(String loginId);
List<Admin> findAll();

}
50 changes: 50 additions & 0 deletions src/main/java/dbdr/domain/admin/service/AdminService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package dbdr.domain.admin.service;

import dbdr.domain.admin.AdminCreateRequest;
import dbdr.domain.admin.entity.Admin;
import dbdr.domain.admin.repository.AdminRepository;
import dbdr.global.exception.ApplicationException;
import dbdr.global.exception.ApplicationError;
import java.util.List;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@RequiredArgsConstructor
@Slf4j
public class AdminService {

private final AdminRepository adminRepository;
private final PasswordEncoder passwordEncoder;

@Transactional
public void addAdmin(Admin admin) {
admin.changePassword(passwordEncoder.encode(admin.getLoginPassword()));
adminRepository.save(admin);
}

@Transactional
public void addAdmin(AdminCreateRequest adminCreateRequest) {
Admin admin = Admin.builder()
.loginId(adminCreateRequest.loginId())
.loginPassword(passwordEncoder.encode(adminCreateRequest.loginPassword()))
.build();
adminRepository.save(admin);
}

@Transactional(readOnly = true)
public String getAdminById(Long adminId) {
Admin admin = adminRepository.findById(adminId)
.orElseThrow(() -> new ApplicationException(ApplicationError.DATABASE_ERROR));

return admin.getLoginId();
}

@Transactional(readOnly = true)
public List<String> getAllAdmins() {
return adminRepository.findAll().stream().map(Admin::getLoginId).toList();
}
}
21 changes: 21 additions & 0 deletions src/main/java/dbdr/domain/careworker/WorkDay.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package dbdr.domain.careworker;

public enum WorkDay {
MONDAY(1),
TUESDAY(2),
WEDNESDAY(4),
THURSDAY(8),
FRIDAY(16),
SATURDAY(32),
SUNDAY(64);

private final int value;

WorkDay(int value) {
this.value = value;
}

public int getValue() {
return value;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package dbdr.domain.careworker.controller;

import dbdr.domain.careworker.dto.request.CareworkerRequest;
import dbdr.domain.careworker.dto.request.CareworkerUpdateAdminRequest;
import dbdr.domain.careworker.dto.response.CareworkerResponse;
import dbdr.domain.careworker.service.CareworkerService;
import dbdr.domain.institution.service.InstitutionService;
import dbdr.global.util.api.ApiUtils;
import dbdr.security.model.AuthParam;
import dbdr.security.model.DbdrAuth;
import dbdr.security.model.Role;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;

@Tag(name = "[๊ด€๋ฆฌ์ž] ์š”์–‘๋ณดํ˜ธ์‚ฌ ๊ด€๋ฆฌ", description = "๊ด€๋ฆฌ์ž๊ฐ€ ์š”์–‘์‚ฌ ์ •๋ณด๋ฅผ ์กฐํšŒ, ์ˆ˜์ •, ์ถ”๊ฐ€, ์‚ญ์ œ")
@RestController
@RequestMapping("/${spring.app.version}/admin/careworker")
@RequiredArgsConstructor
public class CareworkerAdminController {

private final CareworkerService careworkerService;
private final InstitutionService institutionService;

@DbdrAuth(targetRole = Role.ADMIN)
@Operation(summary = "์ „์ฒด ์š”์–‘๋ณดํ˜ธ์‚ฌ ์ •๋ณด ์กฐํšŒ", security = @SecurityRequirement(name = "JWT"))
@GetMapping
public ResponseEntity<ApiUtils.ApiResult<List<CareworkerResponse>>> getAllCareworkers() {
List<CareworkerResponse> careworkers = careworkerService.getAllCareworkers();
return ResponseEntity.ok(ApiUtils.success(careworkers));
}

@DbdrAuth(targetRole = Role.ADMIN, authParam = AuthParam.CAREWORKER_ID, id="careworkerId")
@Operation(summary = "์š”์–‘๋ณดํ˜ธ์‚ฌ ์ •๋ณด ์กฐํšŒ", security = @SecurityRequirement(name = "JWT"))
@GetMapping("/{careworkerId}")
public ResponseEntity<ApiUtils.ApiResult<CareworkerResponse>> getCareworkerById(
@PathVariable Long careworkerId) {
CareworkerResponse careworker = careworkerService.getCareworkerResponseById(careworkerId);
return ResponseEntity.ok(ApiUtils.success(careworker));
}

@DbdrAuth(targetRole = Role.ADMIN)
@Operation(summary = "์š”์–‘๋ณดํ˜ธ์‚ฌ ์ถ”๊ฐ€", security = @SecurityRequirement(name = "JWT"))
@PostMapping
public ResponseEntity<ApiUtils.ApiResult<CareworkerResponse>> createCareworker(
@Valid @RequestBody CareworkerRequest careworkerDTO) {
CareworkerResponse newCareworker = careworkerService.createCareworker(careworkerDTO);
return ResponseEntity.status(HttpStatus.CREATED).body(ApiUtils.success(newCareworker));

}

@DbdrAuth(targetRole = Role.ADMIN, authParam = AuthParam.CAREWORKER_ID, id="careworkerId")
@Operation(summary = "์š”์–‘๋ณดํ˜ธ์‚ฌ ์ •๋ณด ์ˆ˜์ • ", security = @SecurityRequirement(name = "JWT"))
@PutMapping("/{careworkerId}")
public ResponseEntity<ApiUtils.ApiResult<CareworkerResponse>> updateCareworker(
@PathVariable Long careworkerId,
@Valid @RequestBody CareworkerUpdateAdminRequest careworkerDTO) {
CareworkerResponse updatedCareworker = careworkerService.updateCareworkerByAdmin(careworkerId, careworkerDTO);
return ResponseEntity.ok(ApiUtils.success(updatedCareworker));
}

@DbdrAuth(targetRole = Role.ADMIN, authParam = AuthParam.CAREWORKER_ID, id="careworkerId")
@Operation(summary = "์š”์–‘๋ณดํ˜ธ์‚ฌ ์‚ญ์ œ")
@DeleteMapping("/{careworkerId}")
public ResponseEntity<ApiUtils.ApiResult<String>> deleteCareworker(@PathVariable Long careworkerId) {
careworkerService.deleteCareworkerByAdmin(careworkerId);
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package dbdr.domain.careworker.controller;

import dbdr.domain.careworker.dto.request.CareworkerUpdateRequest;
import dbdr.domain.careworker.dto.response.CareworkerMyPageResponse;
import dbdr.domain.careworker.entity.Careworker;
import dbdr.domain.careworker.service.CareworkerService;
import dbdr.global.util.api.ApiUtils;
import dbdr.security.LoginCareworker;
import dbdr.security.model.AuthParam;
import dbdr.security.model.DbdrAuth;
import dbdr.security.model.Role;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
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.RestController;

@Tag(name = "[์š”์–‘๋ณดํ˜ธ์‚ฌ] ๋งˆ์ดํŽ˜์ด์ง€", description = "์š”์–‘๋ณดํ˜ธ์‚ฌ ๋ณธ์ธ์˜ ์ •๋ณด ์กฐํšŒ ๋ฐ ์ˆ˜์ •")
@RestController
@RequestMapping("/${spring.app.version}/careworker")
@RequiredArgsConstructor
@Slf4j
public class CareworkerController {

private final CareworkerService careworkerService;

@Operation(summary = "์š”์–‘๋ณดํ˜ธ์‚ฌ ๋ณธ์ธ์˜ ์ •๋ณด ์กฐํšŒ", security = @SecurityRequirement(name = "JWT"))
@GetMapping
@DbdrAuth(targetRole = Role.CAREWORKER,authParam = AuthParam.LOGIN_CAREWORKER)
public ResponseEntity<ApiUtils.ApiResult<CareworkerMyPageResponse>> showCareworkerInfo(
@Parameter(hidden = true) @LoginCareworker Careworker careworker) {
log.info("Careworker Name: {}", careworker.getName());
CareworkerMyPageResponse response = careworkerService.getMyPageInfo(careworker.getId());
return ResponseEntity.ok(ApiUtils.success(response));
}

@Operation(summary = "์š”์–‘๋ณดํ˜ธ์‚ฌ ๋ณธ์ธ์˜ ๊ทผ๋ฌด์ผ๊ณผ ์•Œ๋ฆผ ์‹œ๊ฐ„ ์ˆ˜์ •", security = @SecurityRequirement(name = "JWT"))
@PutMapping
@DbdrAuth(targetRole = Role.CAREWORKER,authParam = AuthParam.LOGIN_CAREWORKER)
public ResponseEntity<ApiUtils.ApiResult<CareworkerMyPageResponse>> updateCareworkerInfo(
@Parameter(hidden = true) @LoginCareworker Careworker careworker,
@Valid @RequestBody CareworkerUpdateRequest careworkerRequest) {
CareworkerMyPageResponse updatedResponse = careworkerService.updateWorkingDaysAndAlertTime(careworker.getId(),
careworkerRequest);
return ResponseEntity.ok(ApiUtils.success(updatedResponse));
}
}
Loading

0 comments on commit 69bae0f

Please sign in to comment.