diff --git a/app/Http/Controllers/FileController.php b/app/Http/Controllers/FileController.php new file mode 100644 index 0000000..91c184a --- /dev/null +++ b/app/Http/Controllers/FileController.php @@ -0,0 +1,33 @@ +hasFile('file')) { + return $this->errorResponse( false, 'É necessário enviar um arquivo de imagem', 500); + } + + $file = $request->file('file'); + + $path = $file->storeAs('avatars', $file->hashName(),'s3'); + + $url = ''; + try{ + $url = Storage::disk('s3')->url($path); + }catch(\Exception $e){ + return response()->json([ + 'erro' => 'Não foi possível salvar o arquivo' + ], 500); + } + + return response()->json([ + 'url' => $url + ], 201); + } +} diff --git a/app/Http/Controllers/TelemetryController.php b/app/Http/Controllers/TelemetryController.php index afd0ca9..50dedf9 100644 --- a/app/Http/Controllers/TelemetryController.php +++ b/app/Http/Controllers/TelemetryController.php @@ -43,6 +43,16 @@ class TelemetryController extends Controller } } - + public function download(Request $request) + { + try { + $response = $this->med5minContract->getDiscretization($request->all(), $request->getPathInfo()); + return (new TelemetryResource($response)) + ->response() + ->setStatusCode(Response::HTTP_OK); + } catch (\Exception $ex) { + return $this->errorResponse(false, $ex->getMessage(), Response::HTTP_INTERNAL_SERVER_ERROR); + } + } } \ No newline at end of file diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index ce20c97..2f463d5 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -33,7 +33,7 @@ class UserController extends Controller public function index(): JsonResponse { try { - $response = $this->user->withRelationsByAll('roles'); + $response = $this->user->getOrdered(); return (new UserResource($response)) ->response() ->setStatusCode(Response::HTTP_OK); @@ -100,7 +100,9 @@ class UserController extends Controller public function update(Request $request, $id): JsonResponse { try { - $response = $this->user->update($request->all(), $id); + $data = $request->all(); + $data['password'] = bcrypt($request->password); + $response = $this->user->update($data, $id); return (new UserResource($response)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); diff --git a/app/Repositories/Med5min/Med5minRepository.php b/app/Repositories/Med5min/Med5minRepository.php index 15b1144..c706fcc 100644 --- a/app/Repositories/Med5min/Med5minRepository.php +++ b/app/Repositories/Med5min/Med5minRepository.php @@ -170,22 +170,38 @@ class Med5minRepository extends AbstractRepository implements Med5minContractInt $fields = [ 'med_5min.ponto', - 'med_5min.dia_num', - DB::raw("( - med_5min.dia_num::INTEGER - extract(day from ( - (date('1899-12-30') + interval '1' day * med_5min.dia_num) - - - to_date( - concat( - extract( YEAR from date '1899-12-30' + cast (med_5min.dia_num as integer)), - '/', - extract( month from date '1899-12-30' + cast (med_5min.dia_num as integer)) - ), - 'YYYY/MM' - ) - )) - ) as dia_data"), - DB::raw("TO_CHAR((date('1899-12-30') + interval '1' day * med_5min.dia_num), 'DD/MM/YYYY') as day_formatted"), + //'med_5min.dia_num', + // DB::raw("( + // med_5min.dia_num::INTEGER - extract(day from ( + // (date('1899-12-30') + interval '1' day * med_5min.dia_num) + // - + // to_date( + // concat( + // extract( YEAR from date '1899-12-30' + cast (med_5min.dia_num as integer)), + // '/', + // extract( month from date '1899-12-30' + cast (med_5min.dia_num as integer)) + // ), + // 'YYYY/MM' + // ) + // )) + // ) as dia_data"), + // DB::raw("TO_CHAR((date('1899-12-30') + interval '1' day * med_5min.dia_num), 'DD/MM/YYYY') as day_formatted"), + DB::raw(" + (med_5min.dia_num::INTEGER - extract(day from ( + (date('1899-12-30') + interval '1' day * med_5min.dia_num) + - + to_date( + concat( + extract( YEAR from date '1899-12-30' + cast (med_5min.dia_num as integer)), + '/', + extract( month from date '1899-12-30' + cast (med_5min.dia_num as integer)) + ), + 'YYYY/MM' + ) + )) + ) as dia_num_month + "), + DB::raw("TO_CHAR((date('1899-12-30') + interval '1' day * med_5min.dia_num), 'MM/YYYY') as day_formatted"), DB::raw("SUM(med_5min.ativa_consumo) As consumo"), DB::raw("SUM(med_5min.reativa_consumo+med_5min.reativa_geracao) As reativa") ]; @@ -196,11 +212,17 @@ class Med5minRepository extends AbstractRepository implements Med5minContractInt $groupBy = $this->groupField($typeField, $type); - return $this->execute($fields, $params) - ->groupBy($groupBy) - ->orderBy(DB::raw("med_5min.dia_num, med_5min.ponto")) - ->get(); + $result = $this->execute($fields, $params) + ->groupBy($groupBy) + ->orderBy(DB::raw("dia_num_month, med_5min.ponto")) + ->get(); + foreach($result as $row) { + $row['dia_num'] = $row['dia_num_month']; + unset($row['dia_num_month']); + } + + return $result; } public static function filterRow($params, $field = 'dia_num'): array @@ -273,6 +295,10 @@ class Med5minRepository extends AbstractRepository implements Med5minContractInt array_splice($fields, 3); } + if($type === '1_mes') { + $fields = ["med_5min.ponto", "dia_num_month", "day_formatted"]; + } + if ($typeField === false) { $item = ['dem_cont', 'dem_tolerancia']; return collect($fields)->merge($item)->all(); diff --git a/app/Repositories/Users/UserContractInterface.php b/app/Repositories/Users/UserContractInterface.php index 202be52..301731b 100644 --- a/app/Repositories/Users/UserContractInterface.php +++ b/app/Repositories/Users/UserContractInterface.php @@ -6,5 +6,5 @@ use App\Repositories\ContractInterface; interface UserContractInterface extends ContractInterface { - + public function getOrdered(); } \ No newline at end of file diff --git a/app/Repositories/Users/UserRepository.php b/app/Repositories/Users/UserRepository.php index f3d02f7..c188bfb 100644 --- a/app/Repositories/Users/UserRepository.php +++ b/app/Repositories/Users/UserRepository.php @@ -14,4 +14,8 @@ class UserRepository extends AbstractRepository implements UserContractInterface parent::__construct($user); } + public function getOrdered() + { + return $this->model->with('roles')->orderBy('name')->get(); + } } \ No newline at end of file diff --git a/routes/api.php b/routes/api.php index dffe142..89e4d6b 100644 --- a/routes/api.php +++ b/routes/api.php @@ -52,6 +52,7 @@ Route::middleware(['auth:sanctum', 'ability:Admin'])->group(function () { Route::post('aboutUs', [\App\Http\Controllers\AboutUsController::class, 'store']); + Route::post('sendFile', [\App\Http\Controllers\FileController::class, 'store']); }); Route::middleware(['auth:sanctum', 'ability:Client'])->group(function () { @@ -71,6 +72,8 @@ Route::middleware(['auth:sanctum', 'ability:Client'])->group(function () { Route::post('telemetry/demand', [\App\Http\Controllers\TelemetryController::class, 'discretization']); Route::post('telemetry/discretization', [\App\Http\Controllers\TelemetryController::class, 'discretization']); + Route::get('telemetry/download', [\App\Http\Controllers\TelemetryController::class, 'download']); + Route::post('operation/summary', [\App\Http\Controllers\OperationSummaryController::class, 'operationSummary']); // Resumo Operações Route::post('operation', [\App\Http\Controllers\OperationSummaryController::class, 'index']);