|
|
@@ -7,6 +7,7 @@
|
|
|
use App\Services\UserTypeService;
|
|
|
use Illuminate\Http\JsonResponse;
|
|
|
use Illuminate\Http\Request;
|
|
|
+use Illuminate\Validation\Rule;
|
|
|
|
|
|
class UserTypeController extends Controller
|
|
|
{
|
|
|
@@ -34,6 +35,7 @@ public function store(Request $request): JsonResponse
|
|
|
{
|
|
|
$data = $request->validate([
|
|
|
'label' => 'required|string|max:100',
|
|
|
+ 'slug' => 'nullable|string|max:100|regex:/^[A-Za-z0-9_]+$/|unique:user_types,slug',
|
|
|
]);
|
|
|
|
|
|
$item = $this->service->create($data);
|
|
|
@@ -45,6 +47,34 @@ public function store(Request $request): JsonResponse
|
|
|
);
|
|
|
}
|
|
|
|
|
|
+ public function update(Request $request, int $id): JsonResponse
|
|
|
+ {
|
|
|
+ $data = $request->validate([
|
|
|
+ 'label' => 'required|string|max:100',
|
|
|
+ 'slug' => [
|
|
|
+ 'required',
|
|
|
+ 'string',
|
|
|
+ 'max:100',
|
|
|
+ 'regex:/^[A-Za-z0-9_]+$/',
|
|
|
+ Rule::unique('user_types', 'slug')->ignore($id),
|
|
|
+ ],
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $item = $this->service->update($id, $data);
|
|
|
+
|
|
|
+ if (!$item) {
|
|
|
+ return $this->errorResponse(
|
|
|
+ message: 'Grupo não encontrado ou não pode ser editado.',
|
|
|
+ code: 422,
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ return $this->successResponse(
|
|
|
+ payload: ['id' => $item->id, 'slug' => $item->slug, 'label' => $item->label, 'is_system' => $item->is_system],
|
|
|
+ message: __('messages.updated'),
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
public function destroy(int $id): JsonResponse
|
|
|
{
|
|
|
$deleted = $this->service->delete($id);
|