'error', 'key' => 'project', 'method' => 'dataTableList', 'data' => '', ]; $token = $request->headers->get('x-auth-token'); $security->isGranted('MAESTRO_PROJECT_PROJECTS_LIST', $token); $userId = $security->getUser()->getId(); $data = json_decode($request->getContent(), true); if (isset($data['lazyLoadFilters'])) { if (isset($data['customFilters'])) { $datatableFilters = $data['lazyLoadFilters']; $customFilters = $data['customFilters']; $view = new DatatableRequestView( isset($data["strictMode"]) ? $data["strictMode"] : false, isset($data["searchOnFieldValue"]) ? $data["searchOnFieldValue"] : false, isset($data["searchOnArchived"]) ? $data["searchOnArchived"] : false, isset($datatableFilters["first"]) ? $datatableFilters["first"] : 0, isset($datatableFilters["rows"]) ? $datatableFilters["rows"] : 10, isset($datatableFilters["sortField"]) && $datatableFilters["sortField"] ? $datatableFilters["sortField"] : "p.createdAt", isset($datatableFilters['sortOrder']) && ($datatableFilters['sortOrder'] == -1 || $datatableFilters['sortOrder'] == "desc") ? "desc" : "asc", isset($datatableFilters["globalFilter"]) ? $datatableFilters["globalFilter"] : null ); //GET CACHED DATA IF WE HAVE NON UPDATED DATA $cache = new FilesystemAdapter('', 1); $hashDataTableFilters = md5(json_encode($datatableFilters)); $hashCustomFilters = md5(json_encode($customFilters)); $response = $cache->getItem('project_list_'.$userId.'_'.$hashDataTableFilters.'_'.$hashCustomFilters); if (!$response->isHit()) { $groups = $userQuery->getGroups($token); $dataTableData = $projectQuery->dataTableList($groups, $view, $customFilters); $body['type'] = 'success'; $body['data'] = $dataTableData; $respond->statusOk(); $response->set($body); $cache->save($response); } return $respond->createBody($response->get())->respond(); } else { throw new \Exception("Missing 'customFilters' parameter !"); // @TODO : If keeped, change by custom exception when implemented } } else { throw new \Exception("Missing 'datatableFilters' parameter !"); // @TODO : If keeped, change by custom exception when implemented } } }