Implement Endpoint

This commit is contained in:
Djonathan 2022-06-22 19:48:07 -03:00
parent 1c330cc483
commit 6db02f37b4
8 changed files with 94 additions and 12 deletions

View File

@ -0,0 +1,31 @@
<?php
namespace App\Http\Controllers;
use App\Http\Resources\DadosCadastraisResponse;
use App\Repositories\DadosCadastrais\DadosCadastraisContractInterface;
use App\Traits\ApiResponse;
use Illuminate\Http\Response;
use Illuminate\Http\Request;
class ClientController extends Controller
{
use ApiResponse;
public function __construct(
protected DadosCadastraisContractInterface $dadosCadastraisContract)
{
}
public function index(Request $request)
{
try {
$response = $this->dadosCadastraisContract->search($request->all());
return (new DadosCadastraisResponse($response))
->response()
->setStatusCode(Response::HTTP_OK);
} catch (\Exception $ex) {
return $this->errorResponse(false, $ex->getMessage(), Response::HTTP_INTERNAL_SERVER_ERROR);
}
}
}

View File

@ -7,14 +7,9 @@ namespace App\Http\Controllers;
use App\Http\Resources\EconomyResource;
use App\Repositories\Economy\EconomyContractInterface;
use App\Traits\ApiResponse;
use Carbon\Carbon;
use DateInterval;
use DatePeriod;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
class EconomyController extends Controller
{
@ -30,7 +25,7 @@ class EconomyController extends Controller
{
try {
$response = $this->economyContract->selectGlobal($request->all());
$response = $this->economyContract->search($request->all());
return (new EconomyResource($response))
->response()
->setStatusCode(Response::HTTP_OK);

View File

@ -31,7 +31,7 @@ class InfoSectorialController extends Controller
public function download()
{
$file = public_path("/file/Clockify_Time_Report_Detailed_01_05_2022-31_05_2022.pdf");
$file = public_path("Clockify_Time_Report_Detailed_01_05_2022-31_05_2022.pdf");
$path = storage_path("public/file/Clockify_Time_Report_Detailed_01_05_2022-31_05_2022.pdf");
@ -39,6 +39,6 @@ class InfoSectorialController extends Controller
$headers = ['Content-Type: application/pdf'];
$newName = 'itsolutionstuff-pdf-file-'.time().'.pdf';
return response()->download($path, $newName, $headers);
return response()->download($file, $newName, $headers);
}
}

View File

@ -0,0 +1,19 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class DadosCadastraisResponse extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
*/
public function toArray($request)
{
return parent::toArray($request);
}
}

View File

@ -2,6 +2,8 @@
namespace App\Providers;
use App\Repositories\DadosCadastrais\DadosCadastraisContractInterface;
use App\Repositories\DadosCadastrais\DadosCadastraisRepository;
use App\Repositories\DadosTe\DadosTeContractInterface;
use App\Repositories\DadosTe\DadosTeRepository;
use App\Repositories\Economy\EconomyContractInterface;
@ -49,6 +51,10 @@ class AppServiceProvider extends ServiceProvider
DadosTeContractInterface::class,
DadosTeRepository::class
);
$this->app->bind(
DadosCadastraisContractInterface::class,
DadosCadastraisRepository::class
);
}
/**

View File

@ -0,0 +1,10 @@
<?php
namespace App\Repositories\DadosCadastrais;
use App\Repositories\ContractInterface;
interface DadosCadastraisContractInterface extends ContractInterface
{
}

View File

@ -0,0 +1,20 @@
<?php
declare(strict_types=1);
namespace App\Repositories\DadosCadastrais;
use App\Models\DadosCadastrais;
use App\Models\DadosTe;
use App\Repositories\AbstractRepository;
class DadosCadastraisRepository extends AbstractRepository implements DadosCadastraisContractInterface
{
public function __construct(DadosCadastrais $dadosCadastrais)
{
parent::__construct($dadosCadastrais);
}
}

View File

@ -26,14 +26,14 @@ Route::middleware(['auth:sanctum', 'verified'])->group(function () {
Route::get('faq', [\App\Http\Controllers\FaqController::class, 'index']);
Route::get('faq/{faq}', [\App\Http\Controllers\FaqController::class, 'show']);
Route::post('operation', [\App\Http\Controllers\OperationSummaryController::class, 'index']);
Route::post('pld', [\App\Http\Controllers\PldController::class, 'index']);
});
Route::middleware(['auth:sanctum', 'ability:Admin'])->group(function () {
Route::apiResource('user', \App\Http\Controllers\UserController::class);
Route::post('units', [\App\Http\Controllers\ClientController::class, 'index']);
Route::put('notification/{notification}', [\App\Http\Controllers\NotificationController::class, 'update']);
Route::post('notification', [\App\Http\Controllers\NotificationController::class, 'store']);
Route::delete('notification/{notification}', [\App\Http\Controllers\NotificationController::class, 'destroy']);
@ -58,8 +58,9 @@ Route::middleware(['auth:sanctum', 'ability:Client'])->group(function () {
Route::post('economy/MWh', [\App\Http\Controllers\EconomyController::class, 'costMWhEconomy']);
Route::post('operation/summary', [\App\Http\Controllers\OperationSummaryController::class, 'operationSummary']);
Route::post('operation', [\App\Http\Controllers\OperationSummaryController::class, 'index']);
Route::post('download', [\App\Http\Controllers\InfoSectorialController::class, 'download']);
Route::get('download', [\App\Http\Controllers\InfoSectorialController::class, 'download']);
});