97 lines
2.7 KiB
PHP
97 lines
2.7 KiB
PHP
<?php
|
|
|
|
namespace Modules\HrmAddon\App\Http\Controllers\Api;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Modules\HrmAddon\App\Models\Department;
|
|
|
|
class DepartmentController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$data = Department::where('business_id', auth()->user()->business_id)
|
|
->when(request('status'), function ($query) {
|
|
$query->where('status', request('status') == 'active' ? 1 : 0);
|
|
})
|
|
->latest()->get();
|
|
|
|
return response()->json([
|
|
'message' => __('Data fetched successfully.'),
|
|
'data' => $data,
|
|
]);
|
|
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'name' => 'required|unique:departments,name,NULL,id,business_id,' . auth()->user()->business_id,
|
|
'description' => 'nullable|string',
|
|
'status' => 'nullable|boolean',
|
|
]);
|
|
|
|
$data = Department::create($request->all() + [
|
|
'business_id' => auth()->user()->business_id
|
|
]);
|
|
|
|
return response()->json([
|
|
'message' => __('Data saved successfully.'),
|
|
'data' => $data,
|
|
]);
|
|
}
|
|
|
|
public function show($id)
|
|
{
|
|
$data = Department::where('business_id', auth()->user()->business_id)->findOrFail($id);
|
|
|
|
return response()->json([
|
|
'message' => __('Data fetched successfully.'),
|
|
'data' => $data,
|
|
]);
|
|
}
|
|
|
|
public function update(Request $request, $id)
|
|
{
|
|
$department = Department::where('business_id', auth()->user()->business_id)
|
|
->find($id);
|
|
|
|
if (!$department) {
|
|
return response()->json([
|
|
'message' => __('Data not found.'),
|
|
], 404);
|
|
}
|
|
|
|
$request->validate([
|
|
'name' => 'required|unique:departments,name,' . $id . ',id,business_id,' . auth()->user()->business_id,
|
|
'description' => 'nullable|string',
|
|
'status' => 'nullable|boolean',
|
|
]);
|
|
|
|
$department->update($request->except('business_id'));
|
|
|
|
return response()->json([
|
|
'message' => __('Data saved successfully.'),
|
|
'data' => $department,
|
|
]);
|
|
}
|
|
|
|
public function destroy($id)
|
|
{
|
|
$department = Department::where('business_id', auth()->user()->business_id)
|
|
->find($id);
|
|
|
|
if (!$department) {
|
|
return response()->json([
|
|
'message' => __('Data not found.'),
|
|
], 404);
|
|
}
|
|
|
|
$department->delete();
|
|
|
|
return response()->json([
|
|
'message' => __('Data deleted successfully.'),
|
|
]);
|
|
}
|
|
}
|