1+
12package com .example .springserver .domain .center .controller ;
23
34import com .example .springserver .domain .center .converter .ElderConverter ;
5+ import com .example .springserver .domain .center .dto .request .ElderRequestDto .CreateRequestDto ;
46import com .example .springserver .domain .center .dto .request .ElderRequestDto .RequestDto ;
7+ import com .example .springserver .domain .center .dto .response .ElderResponseDto .CreateDto ;
58import com .example .springserver .domain .center .dto .response .ElderResponseDto .DeleteResponseDto ;
9+ import com .example .springserver .domain .center .dto .response .ElderResponseDto .ResponseDto ;
610import com .example .springserver .domain .center .entity .Elder ;
11+ import com .example .springserver .domain .center .entity .enums .Inmate ;
712import com .example .springserver .domain .center .service .ElderService ;
8- import com .example .springserver .domain .center .dto .request .ElderRequestDto .CreateRequestDto ;
9- import com .example .springserver .domain .center .dto .response .ElderResponseDto .CreateDto ;
10- import com .example .springserver .domain .center .dto .response .ElderResponseDto .ResponseDto ;
1113import io .swagger .v3 .oas .annotations .Operation ;
1214import lombok .RequiredArgsConstructor ;
1315import org .springframework .web .bind .annotation .*;
1416import org .springframework .web .multipart .MultipartFile ;
1517
1618import java .util .List ;
19+ import java .util .stream .Collectors ;
1720
1821@ RestController
1922@ RequiredArgsConstructor
@@ -27,8 +30,12 @@ public class ElderController {
2730 @ PostMapping (consumes = "multipart/form-data" )
2831 public CreateDto createElder (@ PathVariable Long center_id ,
2932 @ RequestPart ("data" ) CreateRequestDto createRequestDto ,
33+ @ RequestParam (value = "inmateTypes" , required = false ) List <String > inmateTypes ,
3034 @ RequestPart (value = "profileImg" , required = false ) MultipartFile profileImg ) {
3135
36+ List <Inmate > inmateEnumList = StringTypeToEnumType (inmateTypes );
37+ // CreateRequestDto에 inmateTypes 설정
38+ createRequestDto .setInmateTypes (inmateEnumList );
3239 Elder createdElder = elderService .createElder (center_id , createRequestDto , false , profileImg );
3340 return ElderConverter .toCreateDto (createdElder );
3441 }
@@ -54,8 +61,10 @@ public ResponseDto getElderDetail(@PathVariable Long center_id, @PathVariable Lo
5461 @ PostMapping (value = "/temp" , consumes = "multipart/form-data" )
5562 public CreateDto tempCreateElder (@ PathVariable Long center_id ,
5663 @ RequestPart ("data" ) CreateRequestDto createRequestDto ,
64+ @ RequestParam (value = "inmateTypes" , required = false ) List <String > inmateTypes ,
5765 @ RequestPart (value = "profileImg" , required = false ) MultipartFile profileImg ) {
58-
66+ List <Inmate > inmateEnumList = StringTypeToEnumType (inmateTypes );
67+ createRequestDto .setInmateTypes (inmateEnumList );
5968 Elder createdElder = elderService .createElder (center_id , createRequestDto , true , profileImg );
6069 return ElderConverter .toCreateDto (createdElder );
6170 }
@@ -78,9 +87,14 @@ public ResponseDto getTempElders(@PathVariable Long center_id, @PathVariable Lon
7887
7988 // 센터 내 어르신 수정
8089 @ Operation (summary = "센터 내 어르신 수정" )
81- @ PutMapping ("/{elder_id}" )
82- public RequestDto updateElder (@ PathVariable Long center_id , @ PathVariable Long elder_id , @ RequestBody RequestDto updateRequestDto ) {
83- elderService .updateElder (center_id , elder_id , updateRequestDto );
90+ @ PutMapping (value = "/{elder_id}" , consumes = "multipart/form-data" )
91+ public RequestDto updateElder (@ PathVariable Long center_id , @ PathVariable Long elder_id ,
92+ @ RequestPart ("data" ) RequestDto updateRequestDto ,
93+ @ RequestParam (value = "inmateTypes" , required = false ) List <String > inmateTypes ,
94+ @ RequestPart (value = "profileImg" , required = false ) MultipartFile profileImg ) {
95+ List <Inmate > inmateEnumList = StringTypeToEnumType (inmateTypes );
96+ updateRequestDto .setInmateTypes (inmateEnumList );
97+ elderService .updateElder (center_id , elder_id , updateRequestDto , profileImg );
8498 return updateRequestDto ;
8599 }
86100
@@ -91,4 +105,13 @@ public DeleteResponseDto deleteElder(@PathVariable Long center_id, @PathVariable
91105 Elder deletedElder = elderService .deleteElder (center_id , elder_id );
92106 return ElderConverter .toDeleteResponseDto (deletedElder );
93107 }
94- }
108+
109+ public List <Inmate > StringTypeToEnumType (List <String > inmateTypes ) {
110+
111+ // inmateTypes 값을 List<Inmate>로 변환
112+ return inmateTypes .stream ()
113+ .map (String ::trim ) // 공백 제거
114+ .map (Inmate ::valueOf ) // Inmate Enum으로 변환
115+ .collect (Collectors .toList ());
116+ }
117+ }
0 commit comments