2
2
3
3
import com .woowacourse .zzimkkong .config .logaspect .LogMethodExecutionTime ;
4
4
import com .woowacourse .zzimkkong .dto .reservation .*;
5
+ import com .woowacourse .zzimkkong .dto .slack .SlackResponse ;
5
6
import com .woowacourse .zzimkkong .service .ReservationService ;
7
+ import com .woowacourse .zzimkkong .service .SlackService ;
6
8
import com .woowacourse .zzimkkong .service .strategy .GuestReservationStrategy ;
7
9
import org .springframework .format .annotation .DateTimeFormat ;
8
10
import org .springframework .http .ResponseEntity ;
18
20
@ RestController
19
21
@ RequestMapping ("/api/guests/maps/{mapId}/spaces" )
20
22
public class GuestReservationController {
23
+ private final SlackService slackService ;
21
24
private final ReservationService reservationService ;
22
25
private final GuestReservationStrategy guestReservationStrategy ;
23
26
24
- public GuestReservationController (final ReservationService reservationService ) {
27
+ public GuestReservationController (
28
+ final SlackService slackService ,
29
+ final ReservationService reservationService ) {
30
+ this .slackService = slackService ;
25
31
this .reservationService = reservationService ;
26
32
this .guestReservationStrategy = new GuestReservationStrategy ();
27
33
}
@@ -36,6 +42,7 @@ public ResponseEntity<Void> create(
36
42
spaceId ,
37
43
reservationCreateUpdateWithPasswordRequest );
38
44
ReservationCreateResponse reservationCreateResponse = reservationService .saveReservation (reservationCreateDto , guestReservationStrategy );
45
+ slackService .sendCreateMessage (reservationCreateResponse .getSlackResponse ());
39
46
return ResponseEntity
40
47
.created (URI .create ("/api/guests/maps/" + mapId + "/spaces/" + spaceId + "/reservations/" + reservationCreateResponse .getId ()))
41
48
.build ();
@@ -92,7 +99,8 @@ public ResponseEntity<Void> update(
92
99
spaceId ,
93
100
reservationId ,
94
101
reservationCreateUpdateWithPasswordRequest );
95
- reservationService .updateReservation (reservationUpdateDto , guestReservationStrategy );
102
+ SlackResponse slackResponse = reservationService .updateReservation (reservationUpdateDto , guestReservationStrategy );
103
+ slackService .sendUpdateMessage (slackResponse );
96
104
return ResponseEntity .ok ().build ();
97
105
}
98
106
@@ -107,7 +115,8 @@ public ResponseEntity<Void> delete(
107
115
spaceId ,
108
116
reservationId ,
109
117
reservationPasswordAuthenticationRequest );
110
- reservationService .deleteReservation (reservationAuthenticationDto , guestReservationStrategy );
118
+ SlackResponse slackResponse = reservationService .deleteReservation (reservationAuthenticationDto , guestReservationStrategy );
119
+ slackService .sendDeleteMessage (slackResponse );
111
120
return ResponseEntity .noContent ().build ();
112
121
}
113
122
}
0 commit comments