* * @version 1.0.0 */ class RoleController extends Controller { /** * Listar */ public function index() { $model = Role::where('id', '!=','1')->orderBy('description'); QuerySupport::queryByKey($model, request(), 'name'); return ApiResponse::OK->response([ 'models' => $model ->paginate(config('app.pagination')) ]); } /** * Almacenar */ public function store(RoleStoreRequest $request) { $model = Role::create($request->all()); return ApiResponse::OK->response([ 'message' => 'Rol creado exitosamente', 'id' => $model->id, 'name' => $model->name, ]); } /** * Mostrar */ public function show(Role $role) { return ApiResponse::OK->response([ 'model' => $role ]); } /** * Actualizar */ public function update(RoleUpdateRequest $request, Role $role) { $role->update($request->all()); return ApiResponse::OK->response(); } /** * Eliminar */ public function destroy(Role $role) { if (in_array($role->id, ['2'])) { return ApiResponse::BAD_REQUEST->response([ 'message' => 'No se puede eliminar este rol' ]); } $role->delete(); return ApiResponse::OK->response(); } /** * Permisos */ public function permissions(Role $role) { return ApiResponse::OK->response([ 'permissions' => $role->permissions ]); } /** * Actualizar permisos */ public function updatePermissions(Role $role, Request $request) { $role->syncPermissions($request->get('permissions', [])); UpdateRoleUser::dispatch($role); return ApiResponse::OK->response(); } }