public function updateOrFail($class, $modelId, Request $request, $returnModelInstance = false, array $rules = array()) { $requestData = $request->all(); $updateRules = count($rules) > 0 ? $rules : (isset($this->updateRules) ? $this->updateRules : array()); $validator = $this->validator($requestData, $updateRules); if ($validator->fails()) { return responseJsonUnprocessableEntity(['message' => $this->contentCannotBeParsedMsg, 'errors' => shrinkValidationErrors($validator->errors()->getMessages())]); } if (method_exists($this, 'update')) { $modelInstance = $this->update($request, $modelId); } else { $modelInstance = $class::find($modelId); foreach ($requestData as $key => $value) { $modelInstance->{$key} = $value; } $modelInstance->save(); } if ($modelInstance instanceof ExecutionError) { $response = ['message' => $modelInstance->message]; if ($returnModelInstance === true) { $response['data'] = $modelInstance->data->toArray(); } return responseJsonForbidden($response); } $response = ['message' => $this->updateSuccessMsg]; if ($returnModelInstance === true) { $response['data'] = $modelInstance->toArray(); } return responseJsonOk($response); }
/** * Display the password reset view for the given token. * * @param string $token * @return \Illuminate\Http\Response */ public function getConfirm($token = null) { if (is_null($token)) { return responseJsonNotFound(['message' => trans(Confirmation::NULL_TOKEN), 'errors' => trans(Confirmation::NULL_TOKEN)]); } $credentials = ['token' => $token]; $response = Confirmation::confirm($credentials, function ($user) { $this->confirmAccount($user); }); switch ($response) { case Confirmation::ACCOUNT_CONFIRMATION: return responseJsonOk(['message' => trans($response), 'data' => null]); default: return responseJsonUnprocessableEntity(['message' => trans($response), 'errors' => ['email' => trans($response)]]); } }
public function getIndex(Request $request, $id = null) { if (method_exists($this, 'index')) { return $this->index($request, $id); } $responseData = array(); if (is_null($id)) { $queryResult = $this->validateQuery($request, $this->model); } else { $modelClass = $this->model; $queryResult = $modelClass::where($modelClass::getPrimaryKeyName(), $id)->first(); if ($queryResult instanceof Model) { $queryResult = $queryResult->toArray(); } else { $queryResult = null; } $responseData = ["data" => $queryResult]; if (is_null($queryResult)) { $responseData = $this->setMessage($responseData, $this->getIndexMessage404()); return responseJsonNotFound($responseData); } else { $responseData = $this->setMessage($responseData, $this->getIndexMessage200()); return responseJsonOk($responseData); } } if ($queryResult instanceof Collection) { $responseData = ["data" => $queryResult->toArray()]; } if ($queryResult instanceof LengthAwarePaginator) { $responseData = $queryResult->toArray(); $responseData = $this->buildPaginationUrl($responseData, $request); } if (count($responseData['data']) < 1) { $responseData['data'] = null; $responseData = $this->setMessage($responseData, $this->getIndexMessage404()); } else { $responseData = $this->setMessage($responseData, $this->getIndexMessage200()); } return responseJsonOk($responseData); }