@@ -167,21 +167,23 @@ public function destroy(int $id): JsonResponse
167
167
}
168
168
169
169
/**
170
- * Mass Delete the specified resources.
170
+ * Mass destroy the specified resources from storage .
171
171
*/
172
172
public function massDestroy (MassDestroyRequest $ request ): JsonResponse
173
173
{
174
174
try {
175
175
$ persons = $ this ->personRepository ->findWhereIn ('id ' , $ request ->input ('indices ' , []));
176
176
177
- $ hasBlocked = false ;
177
+ $ deletedCount = 0 ;
178
+
179
+ $ blockedCount = 0 ;
178
180
179
181
foreach ($ persons as $ person ) {
180
182
if (
181
183
$ person ->leads
182
184
&& $ person ->leads ->count () > 0
183
185
) {
184
- $ hasBlocked = true ;
186
+ $ blockedCount ++ ;
185
187
186
188
continue ;
187
189
}
@@ -191,15 +193,34 @@ public function massDestroy(MassDestroyRequest $request): JsonResponse
191
193
$ this ->personRepository ->delete ($ person ->id );
192
194
193
195
Event::dispatch ('contact.person.delete.after ' , $ person );
196
+
197
+ $ deletedCount ++;
194
198
}
195
199
196
- $ message = trans ('admin::app.contacts.persons.index.delete-success ' );
200
+ $ statusCode = 200 ;
201
+
202
+ switch (true ) {
203
+ case ($ deletedCount > 0 && $ blockedCount === 0 ):
204
+ $ message = trans ('admin::app.contacts.persons.index.all-delete-success ' );
205
+ break ;
197
206
198
- if ($ hasBlocked ) {
199
- $ message .= ' ' .trans ('admin::app.contacts.persons.index.some-not-deleted-warning ' );
207
+ case ($ deletedCount > 0 && $ blockedCount > 0 ):
208
+ $ message = trans ('admin::app.contacts.persons.index.partial-delete-warning ' );
209
+ break ;
210
+
211
+ case ($ deletedCount === 0 && $ blockedCount > 0 ):
212
+ $ message = trans ('admin::app.contacts.persons.index.none-delete-warning ' );
213
+ $ statusCode = 400 ;
214
+ break ;
215
+
216
+ default :
217
+ $ message = trans ('admin::app.contacts.persons.index.no-selection ' );
218
+ $ statusCode = 400 ;
219
+ break ;
200
220
}
201
221
202
- return response ()->json (['message ' => $ message ]);
222
+ return response ()->json (['message ' => $ message ], $ statusCode );
223
+
203
224
} catch (Exception $ exception ) {
204
225
return response ()->json ([
205
226
'message ' => trans ('admin::app.contacts.persons.index.delete-failed ' ),
0 commit comments