public function set_walker_rating()
 {
     if (Request::isMethod('post')) {
         $comment = Input::get('comment');
         $request_id = Input::get('request_id');
         $rating = Input::get('rating');
         $token = Input::get('token');
         $owner_id = Input::get('id');
         $validator = Validator::make(array('request_id' => $request_id, 'rating' => $rating, 'token' => $token, 'owner_id' => $owner_id), array('request_id' => 'required|integer', 'rating' => 'required|integer', 'token' => 'required', 'owner_id' => 'required|integer'));
         if ($validator->fails()) {
             $error_messages = $validator->messages()->all();
             $response_array = array('success' => false, 'error' => 'Invalid Input', 'error_code' => 401, 'error_messages' => $error_messages);
             $response_code = 200;
         } else {
             $is_admin = $this->isAdmin($token);
             if ($owner_data = $this->getOwnerData($owner_id, $token, $is_admin)) {
                 // check for token validity
                 if (is_token_active($owner_data->token_expiry) || $is_admin) {
                     // Do necessary operations
                     if ($request = Requests::find($request_id)) {
                         if ($request->owner_id == $owner_data->id) {
                             if ($request->is_completed == 1) {
                                 if ($request->is_walker_rated == 0) {
                                     $walker_review = new WalkerReview();
                                     $walker_review->request_id = $request_id;
                                     $walker_review->walker_id = $request->confirmed_walker;
                                     $walker_review->rating = $rating;
                                     $walker_review->owner_id = $owner_data->id;
                                     $walker_review->comment = $comment;
                                     $walker_review->save();
                                     $request->is_walker_rated = 1;
                                     $request->save();
                                     $response_array = array('success' => true);
                                     $response_code = 200;
                                 } else {
                                     $response_array = array('success' => false, 'error' => 'Already Rated', 'error_code' => 409);
                                     $response_code = 200;
                                 }
                             } else {
                                 $response_array = array('success' => false, 'error' => 'Walk is not completed', 'error_code' => 409);
                                 $response_code = 200;
                             }
                         } else {
                             $response_array = array('success' => false, 'error' => 'Walk ID doesnot matches with Dog ID', 'error_code' => 407);
                             $response_code = 200;
                         }
                     } else {
                         $response_array = array('success' => false, 'error' => 'Walk ID Not Found', 'error_code' => 408);
                         $response_code = 200;
                     }
                 } else {
                     $response_array = array('success' => false, 'error' => 'Token Expired', 'error_code' => 405);
                     $response_code = 200;
                 }
             } else {
                 if ($is_admin) {
                     $response_array = array('success' => false, 'error' => 'Owner ID not Found', 'error_code' => 410);
                 } else {
                     $response_array = array('success' => false, 'error' => 'Not a valid token', 'error_code' => 406);
                 }
                 $response_code = 200;
             }
         }
     }
     $response = Response::json($response_array, $response_code);
     return $response;
 }
 public function saveUserReview()
 {
     $request_id = Input::get('request_id');
     $owner_id = Session::get('user_id');
     $request = Requests::where('id', $request_id)->where('owner_id', $owner_id)->first();
     if ($request) {
         $review_walker = new WalkerReview();
         $review_walker->walker_id = $request->confirmed_walker;
         $review_walker->comment = Input::get('review');
         $review_walker->rating = Input::get('rating');
         $review_walker->owner_id = $owner_id;
         $review_walker->request_id = $request->id;
         $review_walker->save();
         $request->is_walker_rated = 1;
         $request->save();
     }
     $message = "You has successfully rated the driver.";
     $type = "success";
     return Redirect::to('/user/trips')->with('message', $message)->with('type', $type);
 }
 public function saveUserReview()
 {
     $request_id = Input::get('request_id');
     $owner_id = Session::get('user_id');
     $status = Session::get('status');
     $request = Requests::where('id', $request_id)->where('owner_id', $owner_id)->first();
     $rating = 0;
     if (Input::has('rating')) {
         $rating = Input::get('rating');
     }
     if ($request) {
         $review_walker = new WalkerReview();
         $review_walker->walker_id = $request->confirmed_walker;
         $review_walker->comment = Input::get('review');
         $review_walker->rating = $rating;
         $review_walker->owner_id = $owner_id;
         $review_walker->request_id = $request->id;
         $review_walker->save();
         if ($rating) {
             if ($walker = Walker::find($request->confirmed_walker)) {
                 $old_rate = $walker->rate;
                 $old_rate_count = $walker->rate_count;
                 $new_rate_counter = $walker->rate_count + 1;
                 $new_rate = ($walker->rate * $walker->rate_count + $rating) / $new_rate_counter;
                 $walker->rate_count = $new_rate_counter;
                 $walker->rate = $new_rate;
                 $walker->save();
             }
         }
         $request->is_walker_rated = 1;
         $request->save();
         Session::forget('status');
         Session::put('status', 6);
     }
     $message = "You has successfully rated the driver.";
     $type = "success";
     return Redirect::to('/user/trips')->with('message', $message)->with('type', $type);
 }