get(); return $this->sendResponse($roles, 'Roles retrieved successfully.'); } public function show($role) : JsonResponse { $role = Role::with(['permissions'])->find($role); if (is_null($role)) { return $this->sendError('Role not found.'); } return $this->sendResponse($role, 'Role retrieved successfully.'); } public function store(StoreRoleRequest $request) : JsonResponse { // Validate the request... $validated = $request->validated(); // Store the Role... if ($validated) { try { if(!isset($validated['guard_name'])){ $validated['guard_name'] = 'default'; } $role = Role::create($validated); $permissions = $request->input('permissions'); if (!empty($permissions)) { $role = Role::find($role->id); $role->syncPermissions($permissions); } return $this->sendResponse($role, 'Role created successfully.'); } catch (Exception $e) { return $this->sendError($e->getMessage(), $e->getCode()); } } return $this->sendError('Role created failed.', 400); } public function update(UpdateRoleRequest $request, Role $role) : JsonResponse { // Validate the request... $validated = $request->validated(); // Store the Role... if ($validated) { try { if(!isset($validated['guard_name'])){ $validated['guard_name'] = 'default'; } $role->update($validated); $permissions = $request->input('permissions'); if (!empty($permissions)) { $role->syncPermissions($permissions); } return $this->sendResponse($role, 'Role updated successfully.'); } catch (Exception $e) { return $this->sendError($e->getMessage(), $e->getCode()); } } return $this->sendError('Role updated failed.', 400); } public function destroy($id) : JsonResponse { $role = Role::find($id); if (is_null($role)) { return $this->sendError('Role not found.'); } try { $role->delete(); return $this->sendResponse($role, 'Role deleted successfully.'); } catch (Exception $e) { return $this->sendError($e->getMessage(), $e->getCode()); } } }