18
18
19
19
import com .prathab .communityservice .controllers .models .mapper .CommunityApiMapper ;
20
20
import com .prathab .communityservice .controllers .models .request .AddCommunityAdminRequest ;
21
+ import com .prathab .communityservice .controllers .models .request .AddCommunityHouseRequest ;
21
22
import com .prathab .communityservice .controllers .models .request .CreateCommunityRequest ;
22
23
import com .prathab .communityservice .controllers .models .response .AddCommunityAdminResponse ;
24
+ import com .prathab .communityservice .controllers .models .response .AddCommunityHouseResponse ;
23
25
import com .prathab .communityservice .controllers .models .response .CreateCommunityResponse ;
24
26
import com .prathab .communityservice .controllers .models .response .GetAdminDetailsResponse ;
25
27
import com .prathab .communityservice .controllers .models .response .GetCommunityDetailsResponse ;
28
+ import com .prathab .communityservice .controllers .models .response .GetHouseDetailsResponse ;
26
29
import com .prathab .communityservice .domain .CommunityAdmin ;
27
30
import com .prathab .communityservice .services .CommunityService ;
28
31
import java .util .Set ;
@@ -112,6 +115,21 @@ public ResponseEntity<Set<GetAdminDetailsResponse>> listCommunityAdmins(
112
115
return ResponseEntity .status (HttpStatus .OK ).body (getAdminDetailsResponseSet );
113
116
}
114
117
118
+ @ GetMapping (
119
+ path = "/communities/{communityId}/houses" ,
120
+ produces = {MediaType .APPLICATION_JSON_VALUE , MediaType .APPLICATION_XML_VALUE }
121
+ )
122
+ public ResponseEntity <GetHouseDetailsResponse > listCommunityHouses (
123
+ @ PathVariable String communityId ) {
124
+ log .trace ("Received request to list all houses of community with id[{}]" , communityId );
125
+ var houseDetails = communityService .getCommunityDetailsById (communityId ).getHouses ();
126
+ var getHouseDetailsResponseSet =
127
+ communityApiMapper .communityHouseSetToCommunityHouseDtoSet (houseDetails );
128
+ var response = new GetHouseDetailsResponse ();
129
+ response .setHouses (getHouseDetailsResponseSet );
130
+ return ResponseEntity .status (HttpStatus .OK ).body (response );
131
+ }
132
+
115
133
@ PostMapping (
116
134
path = "/communities/{communityId}/admins" ,
117
135
produces = {MediaType .APPLICATION_JSON_VALUE , MediaType .APPLICATION_XML_VALUE },
@@ -128,4 +146,21 @@ public ResponseEntity<AddCommunityAdminResponse> addCommunityAdmin(
128
146
response .setAdmins (adminsSet );
129
147
return ResponseEntity .status (HttpStatus .CREATED ).body (response );
130
148
}
149
+
150
+ @ PostMapping (
151
+ path = "/communities/{communityId}/houses" ,
152
+ produces = {MediaType .APPLICATION_JSON_VALUE , MediaType .APPLICATION_XML_VALUE },
153
+ consumes = {MediaType .APPLICATION_JSON_VALUE , MediaType .APPLICATION_XML_VALUE }
154
+ )
155
+ public ResponseEntity <AddCommunityHouseResponse > addCommunityHouse (
156
+ @ PathVariable String communityId , @ Valid @ RequestBody
157
+ AddCommunityHouseRequest request ) {
158
+ log .trace ("Received request to add house to community with id[{}]" , communityId );
159
+
160
+ var communityHouse = communityApiMapper .communityHouseDtoToCommunityHouse (request .getHouse ());
161
+ var houseId = communityService .addHouseToCommunity (communityId , communityHouse );
162
+ var response = new AddCommunityHouseResponse ();
163
+ response .setHouseId (houseId );
164
+ return ResponseEntity .status (HttpStatus .CREATED ).body (response );
165
+ }
131
166
}
0 commit comments