diff --git a/app/Http/Controllers/V3/LogListController.php b/app/Http/Controllers/V3/LogListController.php index b383924e..7e0bb72a 100644 --- a/app/Http/Controllers/V3/LogListController.php +++ b/app/Http/Controllers/V3/LogListController.php @@ -2,17 +2,62 @@ namespace App\Http\Controllers\V3; +use App\Facades\DataTable\DataTableFacade; use App\Http\Controllers\Controller; +use App\Http\Requests\V3\LogList\StoreRequest; +use App\Http\Requests\V3\LogList\UpdateRequest; use App\Http\Traits\ApiResponse; use App\Models\LogList; +use Illuminate\Http\Request; use Illuminate\Http\JsonResponse; class LogListController extends Controller { use ApiResponse; - public function index(): JsonResponse + public function index(Request $request): JsonResponse { - return $this->successResponse(LogList::all('description','log_unique_code')); + return response()->json(DataTableFacade::run( + LogList::query(), + $request, + allowedFilters: ['*'], + allowedSortings: ['*'])); + } + + public function list(): JsonResponse + { + return $this->successResponse(LogList::all('description', 'log_unique_code')); + } + + public function store(StoreRequest $request): JsonResponse + { + LogList::query()->create([ + 'description' => $request->description, + 'log_unique_code' => $request->log_unique_code, + 'action_type' => $request->action_type, + ]); + + return $this->successResponse(); + } + + public function show(LogList $logList): JsonResponse + { + return $this->successResponse($logList); + } + + public function update(UpdateRequest $request, LogList $logList): JsonResponse + { + LogList::query()->update([ + 'description' => $request->description, + 'log_unique_code' => $request->log_unique_code, + 'action_type' => $request->action_type, + ]); + return $this->successResponse(); + } + + public function destroy(LogList $logList): JsonResponse + { + $logList->delete(); + return $this->successResponse(); } } diff --git a/app/Http/Requests/V3/LogList/StoreRequest.php b/app/Http/Requests/V3/LogList/StoreRequest.php new file mode 100644 index 00000000..65d1da73 --- /dev/null +++ b/app/Http/Requests/V3/LogList/StoreRequest.php @@ -0,0 +1,30 @@ +|string> + */ + public function rules(): array + { + return [ + 'description' =>'required|string', + 'log_unique_code' =>'required|numeric|unique:log_lists,log_unique_code', + 'action_type' =>'required|string', + ]; + } +} diff --git a/app/Http/Requests/V3/LogList/UpdateRequest.php b/app/Http/Requests/V3/LogList/UpdateRequest.php new file mode 100644 index 00000000..feee0d27 --- /dev/null +++ b/app/Http/Requests/V3/LogList/UpdateRequest.php @@ -0,0 +1,31 @@ +|string> + */ + public function rules(): array + { + return [ + 'description' => 'required|string', + 'log_unique_code' => ['required', 'numeric', Rule::unique('log_lists', 'log_unique_code')->ignore($this->logList->id)], + 'action_type' => 'required|string', + ]; + } +} diff --git a/app/Models/LogList.php b/app/Models/LogList.php index c7831a54..bc07f4f0 100644 --- a/app/Models/LogList.php +++ b/app/Models/LogList.php @@ -10,4 +10,6 @@ class LogList extends Model use HasFactory; public $timestamps = false; + + protected $guarded = []; } \ No newline at end of file diff --git a/routes/v3.php b/routes/v3.php index 26c8af17..8db404f3 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -324,6 +324,11 @@ Route::prefix('log_list') ->controller(LogListController::class) ->group(function () { Route::get('/', 'index')->name('index'); + Route::get('/list', 'list')->name('list'); + Route::post('/', 'store')->name('store'); + Route::get('/{logList}', 'show')->name('show'); + Route::post('/{logList}', 'update')->name('update'); + Route::delete('/{logList}', 'destroy')->name('destroy'); }); Route::prefix('safety_and_privacy')