Skip to content
Snippets Groups Projects
Commit 8975fe8c authored by Ludovic Ganée's avatar Ludovic Ganée
Browse files

Couplage possible du ApiTrait et RestComponent avec le SealComponent d'asalae...

Couplage possible du ApiTrait et RestComponent avec le SealComponent d'asalae https://gitlab.libriciel.fr/libriciel/pole-archivage/asalae/asalae/-/issues/2111
parent fe177b2a
No related branches found
No related tags found
No related merge requests found
Pipeline #84825 failed
......@@ -55,6 +55,7 @@ trait ApiTrait
$action = 'index';
}
$route = $this->Rest->route();
$seal = $route['seal'] ?? null;
if (isset($route['callback'][1]) && $route['callback'][1] === 'default') {
$route = null;
} elseif ($route) {
......@@ -74,13 +75,17 @@ trait ApiTrait
$Model = $this->fetchTable($controller);
$results = [];
if ($request->is(['get', 'put', 'delete'])) {
$query = $Model->find();
if ($seal && isset($this->Seal) && method_exists($this->Seal, $seal)) {
$query = $this->Seal->$seal()->$controller->find('seal');
} else {
$query = $Model->find();
}
$filters = $request->getQuery('filters');
if ($filters) {
$this->applyFilters($filters, $query);
}
if ($id) {
$query->where(['id' => $id]);
$query->where([$Model->getAlias() . '.id' => $id]);
$results = $query->first();
} else {
$page = (int)$request->getQuery('page', 1);
......@@ -90,7 +95,7 @@ trait ApiTrait
);
$count = $query->count();
$offset = ($page -1) * $limit;
$sort = $request->getQuery('sort', 'id');
$sort = $request->getQuery('sort', $Model->getAlias() . '.id');
$direction = $request->getQuery('direction', 'asc');
$results = [
'pagination' => compact(
......
......@@ -112,8 +112,8 @@ class RestComponent extends Component
}
return [
'callback' => [$Controller, $rules['function']],
'args' => $args
];
'args' => $args,
] + $rules;
}
return false;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment