From fe5de7c4bb6d7b168f859784db967c46b0c54843 Mon Sep 17 00:00:00 2001 From: Djonathan Date: Fri, 24 Jun 2022 15:28:05 -0300 Subject: [PATCH] Implement endpoint return content from about us to client. --- app/Http/Controllers/AboutUsController.php | 55 +++++++++++++++++++ app/Http/Controllers/TelemetryController.php | 11 +++- app/Http/Requests/StoreAboutUsRequest.php | 30 ++++++++++ app/Http/Resources/AboutUsResource.php | 19 +++++++ app/Models/AboutUs.php | 37 +++++++++++++ app/Models/InfoSectorial.php | 6 +- app/Models/Notifications.php | 5 +- app/Providers/AppServiceProvider.php | 6 ++ .../AboutUs/AboutUsContractInterface.php | 10 ++++ .../AboutUs/AboutUsRepository.php | 17 ++++++ ...022_06_24_140848_create_about_us_table.php | 22 ++++++++ routes/api.php | 8 +-- 12 files changed, 216 insertions(+), 10 deletions(-) create mode 100644 app/Http/Controllers/AboutUsController.php create mode 100644 app/Http/Requests/StoreAboutUsRequest.php create mode 100644 app/Http/Resources/AboutUsResource.php create mode 100644 app/Models/AboutUs.php create mode 100644 app/Repositories/AboutUs/AboutUsContractInterface.php create mode 100644 app/Repositories/AboutUs/AboutUsRepository.php create mode 100644 database/migrations/2022_06_24_140848_create_about_us_table.php diff --git a/app/Http/Controllers/AboutUsController.php b/app/Http/Controllers/AboutUsController.php new file mode 100644 index 0000000..428ac54 --- /dev/null +++ b/app/Http/Controllers/AboutUsController.php @@ -0,0 +1,55 @@ +aboutUsContract->all(); + return (new AboutUsResource($response)) + ->response() + ->setStatusCode(Response::HTTP_OK); + } catch (\Exception $ex) { + return $this->errorResponse(false, $ex->getMessage(), Response::HTTP_INTERNAL_SERVER_ERROR); + } + } + + + public function store(StoreAboutUsRequest $aboutUsRequest) + { + try { + + $about = $this->aboutUsContract->max('id'); + + if ($about !== null) + { + $response = $this->aboutUsContract->update($aboutUsRequest->validated(), $about); + } else { + $response = $this->aboutUsContract->create($aboutUsRequest->validated()); + } + return (new AboutUsResource($response)) + ->response() + ->setStatusCode(Response::HTTP_ACCEPTED); + } 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/TelemetryController.php b/app/Http/Controllers/TelemetryController.php index 43b5dff..2cd2b05 100644 --- a/app/Http/Controllers/TelemetryController.php +++ b/app/Http/Controllers/TelemetryController.php @@ -19,9 +19,16 @@ class TelemetryController extends Controller protected Med5minContractInterface $med5minContract ){} - public function index() + public function index(Request $request) { - // + try { + $response = $this->med5minContract->search($request->all()); + return (new TelemetryResource($response)) + ->response() + ->setStatusCode(Response::HTTP_OK); + } catch (\Exception $ex) { + return $this->errorResponse(false, $ex->getMessage(), Response::HTTP_INTERNAL_SERVER_ERROR); + } } public function powerFactor(Request $request) diff --git a/app/Http/Requests/StoreAboutUsRequest.php b/app/Http/Requests/StoreAboutUsRequest.php new file mode 100644 index 0000000..f6e0bdc --- /dev/null +++ b/app/Http/Requests/StoreAboutUsRequest.php @@ -0,0 +1,30 @@ + + */ + public function rules() + { + return [ + 'about' => 'required|string', + ]; + } +} diff --git a/app/Http/Resources/AboutUsResource.php b/app/Http/Resources/AboutUsResource.php new file mode 100644 index 0000000..788e0de --- /dev/null +++ b/app/Http/Resources/AboutUsResource.php @@ -0,0 +1,19 @@ +format('d/m/Y H:i:s'); + } + +} \ No newline at end of file diff --git a/app/Models/InfoSectorial.php b/app/Models/InfoSectorial.php index 4f8c732..cd3b91c 100644 --- a/app/Models/InfoSectorial.php +++ b/app/Models/InfoSectorial.php @@ -6,10 +6,12 @@ use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; +use OwenIt\Auditing\Auditable; +use OwenIt\Auditing\Contracts\Auditable as Auditing; -class InfoSectorial extends Model +class InfoSectorial extends Model implements Auditing { - use HasFactory, SoftDeletes; + use HasFactory, SoftDeletes, Auditable; protected $table = "info_sectorial"; diff --git a/app/Models/Notifications.php b/app/Models/Notifications.php index 8eacd18..0d2914e 100644 --- a/app/Models/Notifications.php +++ b/app/Models/Notifications.php @@ -8,10 +8,11 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\SoftDeletes; use OwenIt\Auditing\Auditable; +use OwenIt\Auditing\Contracts\Auditable as Auditing; -class Notifications extends Model +class Notifications extends Model implements Auditing { - use HasFactory, SoftDeletes; + use HasFactory, SoftDeletes, Auditable; protected $table = 'notificacoes'; diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 5e7671f..e3ad905 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,6 +2,8 @@ namespace App\Providers; +use App\Repositories\AboutUs\AboutUsContractInterface; +use App\Repositories\AboutUs\AboutUsRepository; use App\Repositories\DadosCadastrais\DadosCadastraisContractInterface; use App\Repositories\DadosCadastrais\DadosCadastraisRepository; use App\Repositories\DadosTe\DadosTeContractInterface; @@ -61,6 +63,10 @@ class AppServiceProvider extends ServiceProvider Med5minContractInterface::class, Med5minRepository::class ); + $this->app->bind( + AboutUsContractInterface::class, + AboutUsRepository::class + ); } /** diff --git a/app/Repositories/AboutUs/AboutUsContractInterface.php b/app/Repositories/AboutUs/AboutUsContractInterface.php new file mode 100644 index 0000000..61ce75e --- /dev/null +++ b/app/Repositories/AboutUs/AboutUsContractInterface.php @@ -0,0 +1,10 @@ +id(); + $table->text('about'); + $table->timestamps(); + $table->softDeletes(); + }); + } + + public function down() + { + Schema::dropIfExists('about_us'); + } +}; \ No newline at end of file diff --git a/routes/api.php b/routes/api.php index 520e289..5451cfa 100644 --- a/routes/api.php +++ b/routes/api.php @@ -44,6 +44,8 @@ Route::middleware(['auth:sanctum', 'ability:Admin'])->group(function () { Route::post('updateFile', [\App\Http\Controllers\InfoSectorialController::class, 'updateFile']); + Route::post('aboutUs', [\App\Http\Controllers\AboutUsController::class, 'store']); + }); Route::middleware(['auth:sanctum', 'ability:Client'])->group(function () { @@ -58,13 +60,9 @@ Route::middleware(['auth:sanctum', 'ability:Client'])->group(function () { Route::post('economy/estimates', [\App\Http\Controllers\EconomyController::class, 'captiveMonthlyEconomy']); Route::post('economy/MWh', [\App\Http\Controllers\EconomyController::class, 'costMWhEconomy']); -// Route::post('telemetry', [\App\Http\Controllers\TelemetryController::class, 'index']); Route::post('telemetry/powerFactor', [\App\Http\Controllers\TelemetryController::class, 'powerFactor']); Route::post('telemetry/demand', [\App\Http\Controllers\TelemetryController::class, 'demand']); Route::post('telemetry/discretization', [\App\Http\Controllers\TelemetryController::class, 'discretization']); -// Route::post('telemetry/grossMonthly', [\App\Http\Controllers\TelemetryController::class, 'grossMonthlyEconomy']); -// Route::post('telemetry/estimates', [\App\Http\Controllers\TelemetryController::class, 'captiveMonthlyEconomy']); -// Route::post('telemetry/MWh', [\App\Http\Controllers\TelemetryController::class, 'costMWhEconomy']); Route::post('operation/summary', [\App\Http\Controllers\OperationSummaryController::class, 'operationSummary']); Route::post('operation', [\App\Http\Controllers\OperationSummaryController::class, 'index']); @@ -72,6 +70,8 @@ Route::middleware(['auth:sanctum', 'ability:Client'])->group(function () { Route::get('download', [\App\Http\Controllers\InfoSectorialController::class, 'download']); Route::post('notify', [\App\Http\Controllers\NotificationController::class, 'notify']); + + Route::get('aboutUs', [\App\Http\Controllers\AboutUsController::class, 'index']); });