Ajout d'une configuration de l'application via le BO

This commit is contained in:
Vincent BRIDIER 2022-09-29 10:53:55 +02:00
parent aed37bfad3
commit ad7af68c1b
No known key found for this signature in database
GPG key ID: 8571BFA20420D512
5 changed files with 79 additions and 16 deletions

View file

@ -1,3 +1,4 @@
# V2.0
- Ajout de la possibilité de supprimer un utilisateur
- Ajout de la possibilité de modifier toute l'arborescence des dossiers
- Ajout de la possibilité de modifier toute l'arborescence des dossiers
- Ajout d'une configuration de l'application via le BO

View file

@ -17,5 +17,3 @@ php artisan user:create
- Nettoyer tous les controllers
- Utiliser requests + validate
- Enlever l'utilisation de VueJS si pas nécessaire. (ex: EditUserComponent)
## API V2
- Call pour récupérer la config

View file

@ -0,0 +1,28 @@
<?php
namespace App\Http\Controllers\API;
use App\Enums\SettingTypes;
use App\Http\Controllers\Controller;
use App\Models\Setting;
use App\Http\Resources\ApiResponseResource;
class SettingsController extends Controller
{
/**
* get Settings
*
* @return \Illuminate\Http\JsonResponse
*/
public function get()
{
$response = [];
$settings = Setting::all();
foreach ($settings as $setting) {
$response[$setting->key] = SettingTypes::numeric()->equals($setting->type)
? \intval($setting->value)
: $setting->value;
}
return new ApiResponseResource("OK", $response);
}
}

View file

@ -0,0 +1,46 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class ApiResponseResource extends JsonResource
{
/**
* Status
* @var string
*/
private $status;
/**
* Datas
* @var array
*/
private $datas;
/**
* Create a new resource instance.
*
* @param string $status
* @param array $datas
* @return void
*/
public function __construct(string $status, array $datas)
{
$this->status = $status;
$this->datas = $datas;
}
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'status' => $this->status,
'datas' => $this->datas
];
}
}

View file

@ -1,5 +1,6 @@
<?php
use App\Http\Controllers\API\SettingsController;
use App\Http\Controllers\API\SyncController;
/*
@ -14,6 +15,8 @@ use App\Http\Controllers\API\SyncController;
*/
Route::group(['middleware' => 'api.token'], function () {
Route::get('settings', [SettingsController::class, 'get']);
Route::get('users', [SyncController::class, 'getUsers']);
Route::post('contacts', [SyncController::class, 'getContacts']);
Route::get('directories', [SyncController::class, 'getDirectories']);
@ -22,17 +25,4 @@ Route::group(['middleware' => 'api.token'], function () {
Route::post('sendBrochure', [SyncController::class, 'SendFlyer']);
});
Route::group(['middleware' => 'api.token'], function () {
Route::prefix('v2')->group(
function () {
Route::get('users', [SyncController::class, 'getUsers']);
Route::post('contacts', [SyncController::class, 'getContacts']);
Route::get('directories', [SyncController::class, 'getDirectories']);
Route::get('documents', [SyncController::class, 'getDocuments']);
Route::get('version', [SyncController::class, 'getVersion']);
Route::post('sendBrochure', [SyncController::class, 'SendFlyer']);
}
);
});
// Route::get('extractText', 'API\SyncController@processOCR');