find(Categoria::class)->array(); if ($categorias) { usort($categorias, function($a, $b) { return strcmp($a['nombre'], $b['nombre']); }); } $output = [ 'categorias' => $categorias ]; return $this->withJson($response, $output); } public function show(Request $request, Response $response, Factory $factory, $categoria_id): Response { $categoria = $factory->find(Categoria::class)->one($categoria_id); $output = [ 'input' => $categoria_id, 'categoria' => $categoria?->toArray() ]; return $this->withJson($response, $output); } public function add(Request $request, Response $response, Factory $factory): Response { $input = json_decode($request->getBody()); $results = []; if (is_array($input)) { foreach ($input as $in) { $categoria = Categoria::add($factory, $in); $results []= ['categoria' => $categoria?->toArray(), 'agregado' => $categoria?->save()]; } } else { $categoria = Categoria::add($factory, $input); $results []= ['categoria' => $categoria?->toArray(), 'agregado' => $categoria?->save()]; } $output = [ 'input' => $input, 'categorias' => $results ]; return $this->withJson($response, $output); } public function edit(Request $request, Response $response, Factory $factory, $categoria_id): Response { $categoria = $factory->find(Categoria::class)->one($categoria_id); $output = [ 'input' => $categoria_id, 'old' => $categoria->toArray() ]; $input = json_decode($request->getBody()); $categoria->edit($input); $output['categoria'] = $categoria->toArray(); return $this->withJson($response, $output); } public function delete(Request $request, Response $response, Factory $factory, $categoria_id): Response { $categoria = $factory->find(Categoria::class)->one($categoria_id); $output = [ 'input' => $categoria_id, 'categoria' => $categoria->toArray(), 'eliminado' => $categoria->delete() ]; return $this->withJson($response, $output); } public function cuentas(Request $request, Response $response, Factory $factory, $categoria_id): Response { $categoria = $factory->find(Categoria::class)->one($categoria_id); $cuentas = null; if ($categoria !== null) { $cuentas = $categoria->cuentas(); if ($cuentas !== null) { array_walk($cuentas, function(&$item) { $item = $item->toArray(); }); } } $output = [ 'input' => $categoria_id, 'categoria' => $categoria?->toArray(), 'cuentas' => $cuentas ]; return $this->withJson($response, $output); } }