@@ -32,6 +32,28 @@ public function __construct(
3232 private AuthorizationCodeRepository $ authorizationCodeRepository ,
3333 ) {}
3434
35+ /**
36+ * Retourne les slugs d'organisation dont le token est expiré parmi les streams donnés.
37+ */
38+ private function getInvalidTokenSlugs (array $ streams ): array
39+ {
40+ $ validSlugs = $ this ->accessTokenRepository ->getValidOrganizationSlugs ();
41+ $ invalidSlugs = [];
42+ foreach ($ streams as $ stream ) {
43+ if ($ stream ->organization_slug && !in_array ($ stream ->organization_slug , $ validSlugs )) {
44+ $ invalidSlugs [] = $ stream ->organization_slug ;
45+ }
46+ }
47+ return array_unique ($ invalidSlugs );
48+ }
49+
50+ private function redirectToRoute (Request $ request , Response $ response , string $ routeName , array $ params = []): Response
51+ {
52+ $ routeParser = RouteContext::fromRequest ($ request )->getRouteParser ();
53+ $ url = $ routeParser ->urlFor ($ routeName , $ params );
54+ return $ response ->withHeader ('Location ' , $ url )->withStatus (302 );
55+ }
56+
3557 public function index (Request $ request , Response $ response ): Response
3658 {
3759 $ user = $ request ->getAttribute ('user ' );
@@ -43,13 +65,6 @@ public function index(Request $request, Response $response): Response
4365 $ events = $ this ->eventRepository ->selectListByUser ($ user );
4466 }
4567
46- $ validSlugs = $ this ->accessTokenRepository ->getValidOrganizationSlugs ();
47- $ invalidTokenSlugs = [];
48- foreach ($ streams as $ stream ) {
49- if ($ stream ->organization_slug && !in_array ($ stream ->organization_slug , $ validSlugs )) {
50- $ invalidTokenSlugs [] = $ stream ->organization_slug ;
51- }
52- }
5368
5469 $ data = [
5570 "streams " => $ streams ,
@@ -58,7 +73,7 @@ public function index(Request $request, Response $response): Response
5873 "currentUser " => $ user ,
5974 "selectedEventId " => $ request ->getQueryParams ()['eventId ' ] ?? null ,
6075 "openCreateStream " => isset ($ request ->getQueryParams ()['createStream ' ]),
61- "invalidTokenSlugs " => $ invalidTokenSlugs ,
76+ "invalidTokenSlugs " => $ this -> getInvalidTokenSlugs ( $ streams ) ,
6277 ];
6378
6479 $ template = $ user ->role === "ADMIN " ? 'stream/index-admin.html.twig ' : 'stream/index.html.twig ' ;
@@ -74,28 +89,23 @@ public function newEvent(Request $request, Response $response): Response
7489 $ this ->userRepository ->insertRight ($ user , null , $ event );
7590
7691 $ this ->messages ->addMessage ('success ' , 'Évènement ajouté ' );
77- $ routeParser = RouteContext::fromRequest ($ request )->getRouteParser ();
78- $ url = $ routeParser ->urlFor ('app_admin_index ' );
79-
80- return $ response ->withHeader ('Location ' , $ url )->withStatus (302 );
92+ return $ this ->redirectToRoute ($ request , $ response , 'app_admin_index ' );
8193 }
8294
8395 public function deleteEvent (Request $ request , Response $ response , array $ args ): Response
8496 {
8597 $ user = $ request ->getAttribute ('user ' );
86- $ routeParser = RouteContext::fromRequest ($ request )->getRouteParser ();
87- $ url = $ routeParser ->urlFor ('app_admin_index ' );
8898
8999 $ event = $ this ->eventRepository ->selectByUserAndGuid ($ user , $ args ['id ' ]);
90100 if (!$ event ) {
91101 $ this ->messages ->addMessage ('error ' , 'Tu n \'as pas accès cet évènement ' );
92- return $ response -> withHeader ( ' Location ' , $ url )-> withStatus ( 302 );
102+ return $ this -> redirectToRoute ( $ request , $ response , ' app_admin_index ' );
93103 }
94104
95105 $ this ->eventRepository ->delete ($ event );
96106 $ this ->messages ->addMessage ('success ' , 'Évènement supprimé ' );
97107
98- return $ response -> withHeader ( ' Location ' , $ url )-> withStatus ( 302 );
108+ return $ this -> redirectToRoute ( $ request , $ response , ' app_admin_index ' );
99109 }
100110
101111 public function editEvent (Request $ request , Response $ response , array $ args ): Response
@@ -107,19 +117,11 @@ public function editEvent(Request $request, Response $response, array $args): Re
107117 $ streams = $ this ->streamRepository ->selectListByEvent ($ event );
108118 $ routeParser = RouteContext::fromRequest ($ request )->getRouteParser ();
109119
110- $ validSlugs = $ this ->accessTokenRepository ->getValidOrganizationSlugs ();
111- $ invalidTokenSlugs = [];
112- foreach ($ streams as $ stream ) {
113- if ($ stream ->organization_slug && !in_array ($ stream ->organization_slug , $ validSlugs )) {
114- $ invalidTokenSlugs [] = $ stream ->organization_slug ;
115- }
116- }
117-
118120 $ data = [
119121 "logged " => true ,
120122 "event " => $ event ,
121123 "streams " => $ streams ,
122- "invalidTokenSlugs " => $ invalidTokenSlugs ,
124+ "invalidTokenSlugs " => $ this -> getInvalidTokenSlugs ( $ streams ) ,
123125 "donationGoalWidget " => $ donationGoalWidget ,
124126 "cardWidget " => $ cardWidget ,
125127 "cardWidgetPictureUrl " => ($ cardWidget && $ cardWidget ->image ) ? $ this ->fileManager ->getPictureUrl ($ cardWidget ->image ) : null ,
@@ -135,12 +137,22 @@ public function editEventPost(Request $request, Response $response, array $args)
135137 $ user = $ request ->getAttribute ('user ' );
136138 $ event = $ this ->eventRepository ->selectByUserAndGuid ($ user , $ args ['id ' ]);
137139
138- $ this -> handleWidgetFormSave ( $ request , null , $ event -> guid );
140+ $ body = $ request -> getParsedBody ( );
139141
140- $ routeParser = RouteContext::fromRequest ($ request )->getRouteParser ();
141- $ url = $ routeParser ->urlFor ('app_event_edit ' , ["id " => $ event ->guid ]);
142+ if (isset ($ body ['save_event_info ' ])) {
143+ $ updateData = [];
144+ if (isset ($ body ['event_title ' ])) {
145+ $ updateData ['title ' ] = $ body ['event_title ' ];
146+ }
147+ if (isset ($ body ['event_goal ' ])) {
148+ $ updateData ['goal ' ] = (int ) $ body ['event_goal ' ];
149+ }
150+ $ this ->eventRepository ->update ($ event , $ updateData );
151+ }
142152
143- return $ response ->withHeader ('Location ' , $ url )->withStatus (302 );
153+ $ this ->handleWidgetFormSave ($ request , null , $ event ->guid );
154+
155+ return $ this ->redirectToRoute ($ request , $ response , 'app_event_edit ' , ["id " => $ event ->guid ]);
144156 }
145157
146158 public function newStream (Request $ request , Response $ response ): Response
@@ -177,28 +189,23 @@ public function newStream(Request $request, Response $response): Response
177189 }
178190
179191 $ this ->messages ->addMessage ('success ' , 'Stream ajouté ' );
180- $ routeParser = RouteContext::fromRequest ($ request )->getRouteParser ();
181- $ url = $ routeParser ->urlFor ('app_admin_index ' );
182-
183- return $ response ->withHeader ('Location ' , $ url )->withStatus (302 );
192+ return $ this ->redirectToRoute ($ request , $ response , 'app_admin_index ' );
184193 }
185194
186195 public function deleteStream (Request $ request , Response $ response , array $ args ): Response
187196 {
188197 $ user = $ request ->getAttribute ('user ' );
189- $ routeParser = RouteContext::fromRequest ($ request )->getRouteParser ();
190- $ url = $ routeParser ->urlFor ('app_admin_index ' );
191198
192199 $ stream = $ this ->streamRepository ->selectByUserAndGuid ($ user , $ args ['id ' ]);
193200 if (!$ stream ) {
194201 $ this ->messages ->addMessage ('error ' , 'Tu n \'as pas accès ce stream ' );
195- return $ response -> withHeader ( ' Location ' , $ url )-> withStatus ( 302 );
202+ return $ this -> redirectToRoute ( $ request , $ response , ' app_admin_index ' );
196203 }
197204
198205 $ this ->streamRepository ->delete ($ stream );
199206 $ this ->messages ->addMessage ('success ' , 'Stream supprimé ' );
200207
201- return $ response -> withHeader ( ' Location ' , $ url )-> withStatus ( 302 );
208+ return $ this -> redirectToRoute ( $ request , $ response , ' app_admin_index ' );
202209 }
203210
204211 public function editStream (Request $ request , Response $ response , array $ args ): Response
@@ -246,6 +253,17 @@ public function editStreamPost(Request $request, Response $response, array $args
246253
247254 $ body = $ request ->getParsedBody ();
248255
256+ if (isset ($ body ['save_stream_info ' ])) {
257+ $ updateData = [];
258+ if (isset ($ body ['stream_title ' ])) {
259+ $ updateData ['title ' ] = $ body ['stream_title ' ];
260+ }
261+ if (isset ($ body ['stream_goal ' ])) {
262+ $ updateData ['goal ' ] = (int ) $ body ['stream_goal ' ];
263+ }
264+ $ this ->streamRepository ->update ($ charityStream , $ updateData );
265+ }
266+
249267 if (isset ($ body ['save_alert_box ' ])) {
250268 $ uploadedFiles = $ request ->getUploadedFiles ();
251269 $ image = isset ($ uploadedFiles ['image ' ]) && $ uploadedFiles ['image ' ]->getSize () > 0
@@ -260,10 +278,7 @@ public function editStreamPost(Request $request, Response $response, array $args
260278
261279 $ this ->handleWidgetFormSave ($ request , $ guid , null );
262280
263- $ routeParser = RouteContext::fromRequest ($ request )->getRouteParser ();
264- $ url = $ routeParser ->urlFor ('app_stream_edit ' , ["id " => $ guid ]);
265-
266- return $ response ->withHeader ('Location ' , $ url )->withStatus (302 );
281+ return $ this ->redirectToRoute ($ request , $ response , 'app_stream_edit ' , ["id " => $ guid ]);
267282 }
268283
269284 /**
0 commit comments