Files
sam-api/app/Http/Controllers/Api/V1/OrgChartController.php

83 lines
2.7 KiB
PHP
Raw Normal View History

<?php
namespace App\Http\Controllers\Api\V1;
use App\Helpers\ApiResponse;
use App\Http\Controllers\Controller;
use App\Http\Requests\OrgChart\AssignRequest;
use App\Http\Requests\OrgChart\ReorderDepartmentsRequest;
use App\Http\Requests\OrgChart\ReorderEmployeesRequest;
use App\Http\Requests\OrgChart\ToggleHideRequest;
use App\Http\Requests\OrgChart\UnassignRequest;
use App\Services\OrgChartService;
use Illuminate\Http\Request;
class OrgChartController extends Controller
{
public function __construct(private OrgChartService $service) {}
// GET /v1/org-chart
public function index(Request $request)
{
return ApiResponse::handle(function () use ($request) {
return $this->service->getOrgChart($request->all());
}, __('message.fetched'));
}
// GET /v1/org-chart/stats
public function stats()
{
return ApiResponse::handle(function () {
return $this->service->getStats();
}, __('message.fetched'));
}
// GET /v1/org-chart/unassigned
public function unassigned(Request $request)
{
return ApiResponse::handle(function () use ($request) {
return $this->service->getUnassigned($request->all());
}, __('message.fetched'));
}
// POST /v1/org-chart/assign
public function assign(AssignRequest $request)
{
return ApiResponse::handle(function () use ($request) {
return $this->service->assign($request->validated());
}, __('message.updated'));
}
// POST /v1/org-chart/unassign
public function unassign(UnassignRequest $request)
{
return ApiResponse::handle(function () use ($request) {
return $this->service->unassign($request->validated());
}, __('message.updated'));
}
// PUT /v1/org-chart/reorder-employees
public function reorderEmployees(ReorderEmployeesRequest $request)
{
return ApiResponse::handle(function () use ($request) {
return $this->service->reorderEmployees($request->validated());
}, __('message.reordered'));
}
// PUT /v1/org-chart/reorder-departments
public function reorderDepartments(ReorderDepartmentsRequest $request)
{
return ApiResponse::handle(function () use ($request) {
return $this->service->reorderDepartments($request->validated());
}, __('message.reordered'));
}
// PATCH /v1/org-chart/departments/{id}/toggle-hide
public function toggleHide(int $id, ToggleHideRequest $request)
{
return ApiResponse::handle(function () use ($id, $request) {
return $this->service->toggleHide($id, $request->validated());
}, __('message.updated'));
}
}