Files
backend/app/Http/Controllers/V3/Azmayesh/AzmayeshController.php

116 lines
3.2 KiB
PHP

<?php
namespace App\Http\Controllers\V3\Azmayesh;
use App\Facades\DataTable\DataTableFacade;
use App\Http\Controllers\Controller;
use App\Http\Traits\ApiResponse;
use App\Models\Azmayesh;
use App\Models\AzmayeshType;
use App\Models\Province;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class AzmayeshController extends Controller
{
use ApiResponse;
/**
* Display a listing of the resource.
*/
public function index(Request $request): JsonResponse
{
$columns = array(
'id',
'request_date',
'report_date',
'request_number',
'employer',
'contractor',
'work_number',
'consultant',
'applicant',
);
$allowedFilters = $columns;
$allowedSortings = $columns;
$query = Azmayesh::query();
$data = DataTableFacade::run(
$query,
$request,
allowedFilters: $allowedFilters,
allowedSortings: $allowedSortings);
return response()->json($data);
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request): JsonResponse
{
$azmayeshType = AzmayeshType::query()->find($request->azmayesh_type_id);
$province = Province::query()->find($request->province_id);
Azmayesh::query()->create([
'lat' => $request->lat,
'lng' => $request->lng,
'azmayesh_type_id' => $azmayeshType->id,
'azmayesh_type_name' => $azmayeshType->name,
'request_date' => $request->lat,
'report_date' => $request->lat,
'request_number' => $request->lat,
'employer' => $request->lat,
'contractor' => $request->lat,
'work_number' => $request->lat,
'project_name' => $request->lat,
'consultant' => $request->lat,
'applicant' => $request->lat,
'province_id' => $province->id,
'province_name' => $province->name,
]);
return $this->successResponse();
}
/**
* Display the specified resource.
*/
public function show(Azmayesh $azmayesh): JsonResponse
{
return $this->successResponse($azmayesh->load('azmayeshSamples'));
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, Azmayesh $azmayesh): JsonResponse
{
$province = Province::query()->find($request->province_id);
$azmayesh->update([
'name' => $request->name,
'username' => $request->username,
'email' => $request->email,
'phone_number' => $request->phone_number,
'national_id' => $request->national_id,
'position' => $request->position,
'province_id' => $province->id,
'province_name' => $province->name,
]);
return $this->successResponse();
}
/**
* Remove the specified resource from storage.
*/
public function destroy(Azmayesh $azmayesh): JsonResponse
{
$azmayesh->delete();
return $this->successResponse();
}
}