find(Transaccion::class)->array(); if ($transacciones !== null) { usort($transacciones, function($a, $b) { $d = $a['fecha'] - $b['fecha']; if ($d === 0) { return strcmp($a['cuenta']['nombre'], $b['cuenta']['nombre']); } return $d; }); } $output = [ 'transacciones' => $transacciones ]; return $this->withJson($response, $output); } public function show(Request $request, Response $response, Factory $factory, $transaccion_id): Response { $transaccion = $factory->find(Transaccion::class)->one($transaccion_id); $output = [ 'input' => $transaccion_id, 'transaccion' => $transaccion?->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) { $transaccion = Transaccion::add($factory, $in); $results []= ['transaccion' => $transaccion?->toArray(), 'agregado' => $transaccion?->save()]; } } else { $transaccion = Transaccion::add($factory, $input); $results []= ['transaccion' => $transaccion?->toArray(), 'agregado' => $transaccion?->save()]; } $output = [ 'input' => $input, 'transacciones' => $results ]; return $this->withJson($response, $output); } public function edit(Request $request, Response $response, Factory $factory, $transaccion_id): Response { $transaccion = $factory->find(Transaccion::class)->one($transaccion_id); $output = [ 'input' => $transaccion_id, 'old' => $transaccion->toArray() ]; $input = json_decode($request->getBody()); $transaccion->edit($input); $output['transaccion'] = $transaccion->toArray(); return $this->withJson($response, $output); } public function delete(Request $request, Response $response, Factory $factory, $transaccion_id): Response { $transaccion = $factory->find(Transaccion::class)->one($transaccion_id); $output = [ 'input' => $transaccion_id, 'transaccion' => $transaccion->toArray(), 'eliminado' => $transaccion->delete() ]; return $this->withJson($response, $output); } }