From 8f8ac9e047eb46f1e4485fd28c58ca948aa480ce Mon Sep 17 00:00:00 2001 From: Gregorio Chiko Putra Date: Mon, 5 Feb 2018 14:29:26 +0700 Subject: [PATCH] Fixed retrieve user by email --- app/Http/Controllers/RespondentController.php | 28 ++++++++++++------- app/Models/Respondent.php | 10 +++++++ routes/api.php | 2 ++ 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/RespondentController.php b/app/Http/Controllers/RespondentController.php index 417307a..52ffb42 100644 --- a/app/Http/Controllers/RespondentController.php +++ b/app/Http/Controllers/RespondentController.php @@ -43,16 +43,12 @@ class RespondentController extends Controller */ public function store(Request $request) { - $respondent = Respondent::where('email', $request['email'])->get(); - - $response = $this->response - ->item($respondent, new RespondentTransformer, ['key' => 'respondents']); - - var_dump($response); - if ($response == []) { - throw new NotFoundHttpException("Respondent not found"); - - } else return $response; + $request['category_id'] = $request['category']; + unset($request['category']); + $respondent = Respondent::create($request->toArray()); + return $respondent; + // return $this->response + // ->item($respondent, new RespondentTransformer, ['key' => 'respondents']); } /** @@ -102,4 +98,16 @@ class RespondentController extends Controller { // } + + public function searchEmail($email) + { + try { + $respondent = Respondent::where('email', $email) + ->firstOrFail(); + return $this->response + ->item($respondent, new RespondentTransformer, ['key' => 'respondents']); + } catch (\Exception $e) { + return ['message' => $e->getMessage()]; + } + } } diff --git a/app/Models/Respondent.php b/app/Models/Respondent.php index 801d9e3..56b03b7 100644 --- a/app/Models/Respondent.php +++ b/app/Models/Respondent.php @@ -20,6 +20,16 @@ class Respondent extends Model 'deleted_at' ]; + protected $fillable = [ + 'name', + 'handphone', + 'email', + 'gender', + 'occupation', + 'birthdate', + 'category_id' + ]; + public function category() { return $this->belongsTo(Category::class); diff --git a/routes/api.php b/routes/api.php index 7966902..13f54d4 100644 --- a/routes/api.php +++ b/routes/api.php @@ -35,4 +35,6 @@ $api->version('v1', function ($api) { $api->resource('answers', 'App\Http\Controllers\AnswerController'); $api->resource('respondents', 'App\Http\Controllers\RespondentController'); $api->resource('users', 'App\Http\Controllers\UserController'); + $api->get('respondents/search/{email}', 'App\Http\Controllers\RespondentController@searchEmail') + ->name('respondent.email'); });