listsGroups = $listsGroups; } /** * @return array */ protected function notification():array { return [ 'title' => 'Retrieved Groups', 'message' => 'You have successfully retrieved a list of groups' ]; } /** @var ListsGroups */ private $listsGroups; public function logic(Request $request) : JsonResponse { $filtersJson = $request->input('filters'); $filters = is_string($filtersJson) ? json_decode($filtersJson, true) : $filtersJson; $section = $filters['section'] ?? null; $query = $this->listsGroups->execute($this->listsGroups->deserializeFilters($request->input('filters'))); if($section === 'customerPaidGroupInvoiceComponent'){ return $this->collectionResponse(GroupPaidInvoicesPNBPageResource::collection($query)); } else{ return $this->collectionResponse(GroupResource::collection($query)); } } }