コード例 #1
0
 /**
 * Used to update bus details
 * URL: /public/api/v1.0/update/bus/details/{bus_id}
         {
    "params": {
      "bus_name": "Tarapop",
      "bus_from": "Aachara",
      "from_place_id" : 2,
      "bus_to": "Aahor",
      "to_place_id": 5,
      "bus_type": "Hollow",
      "bus_comfort": "Sleeepr",
      "bus_seat_image_location": "/here/asd.jpg",
      "bus_total_seats": "44",
      "online_booking_seats": "",
      "is_full_bus": true,
          "travelling_days": "sunday, monday"
    }
  }
 */
 public function updateBusDetails(Request $request)
 {
     $response = $this->response;
     $validateAndHandleError = new ValidateAndHandleError();
     if (!Auth::user()->id) {
         return $validateAndHandleError->invalidUser();
     }
     $user_id = Auth::user()->id;
     $user_type = $validateAndHandleError->userIdentifier($user_id);
     //$user_type = 'admin'; //delete it later
     if (!$request->route('bus_id')) {
         return $response->errorResponse("id_not_exist");
     }
     /* url bus_id should be a numeric value */
     $bus_id = $request->route('bus_id');
     $check_bus_id_numeric = $validateAndHandleError->multiValidator(['should_be_numeric_value' => $bus_id], "number");
     if ($check_bus_id_numeric != "success") {
         return $check_bus_id_numeric;
     }
     $check_bus_availability = Bus::where('id', $bus_id)->get();
     if (count($check_bus_availability) <= 0) {
         return $response->errorResponse("bus_details_not_available");
     }
     $bus_owners_id = $check_bus_availability[0]->bus_owners_id;
     /* $user_id_temp is used to check whether the details are accessible or not */
     $user_id_temp = BusOwner::where('id', $bus_owners_id)->get()[0]->user_id;
     /* details are only accessible by admin and bus owner */
     if ($user_type == "customer" || $user_type == "dealer" || $user_type == "unknown" || $user_type == "bus_owner" && $user_id_temp != $user_id) {
         return $response->errorResponse("details_not_accessible");
     }
     $data = Input::json()->all();
     if (!isset($data) || !isset($data['params']) || !isset($data['params']['bus_name']) || !isset($data['params']['bus_from']) || !isset($data['params']['from_place_id']) || !isset($data['params']['bus_to']) || !isset($data['params']['to_place_id']) || !isset($data['params']['bus_type']) || !isset($data['params']['bus_comfort']) || !isset($data['params']['bus_seat_image_location']) || !isset($data['params']['bus_total_seats']) || !isset($data['params']['travelling_days']) || !isset($data['params']['is_full_bus'])) {
         return $response->errorResponse('invalid_params');
         //                return $validateAndHandleError->errorIdentifier("invalid_params");
     }
     $online_booking_seats = "";
     if (!$data['params']['is_full_bus'] && isset($data['params']['online_booking_seats'])) {
         $online_booking_seats = $data['params']['online_booking_seats'];
     }
     $bus_name = $data['params']['bus_name'];
     $bus_from = $data['params']['bus_from'];
     $from_place_id = $data['params']['from_place_id'];
     $bus_to = $data['params']['bus_to'];
     $to_place_id = $data['params']['to_place_id'];
     $bus_type = $data['params']['bus_type'];
     $bus_comfort = $data['params']['bus_comfort'];
     $bus_seat_image_location = $data['params']['bus_seat_image_location'];
     $bus_total_seats = $data['params']['bus_total_seats'];
     $is_full_bus = $data['params']['is_full_bus'];
     $travelling_days = $data['params']['travelling_days'];
     /* Bus null validation */
     $validateNullData = array('bus_owner_id' => $bus_owners_id, 'bus_name' => $bus_name, 'bus_from' => $bus_from, 'from_place_id' => $from_place_id, 'bus_to' => $bus_to, 'to_place_id' => $to_place_id, 'bus_type' => $bus_type, 'bus_comfort' => $bus_comfort, 'bus_seat_image_location' => $bus_seat_image_location, 'bus_total_seats' => $bus_total_seats, 'is_full_bus' => $is_full_bus, 'travelling_days' => $travelling_days);
     $nullValidator = $validateAndHandleError->multiValidator($validateNullData, "string");
     if ($nullValidator != "success") {
         return $nullValidator;
     }
     /* if is_full_bus is false then only online_booking_seats will exist */
     if (!$is_full_bus && !$online_booking_seats) {
         return $response->errorResponse('online_booking_seats');
         //                return $validateAndHandleError->errorIdentifier("online_booking_seats");
     }
     /* Validating seat number is numeric or not */
     $validateSeats = $validateAndHandleError->multiValidator(['bus_total_seats' => $bus_total_seats], "seat_number");
     if ($validateSeats != "success") {
         return $validateSeats;
     }
     /* Validating arrival an destination unique code */
     $validateLocationId = $validateAndHandleError->multiValidator(['from_place_id' => $from_place_id, 'to_place_id' => $to_place_id], "number");
     if ($validateLocationId != "success") {
         return $validateLocationId;
     }
     $validateDestinationAndArrival = $validateAndHandleError->arrivalAndDestinationVerifier($to_place_id, $from_place_id, $bus_from, $bus_to);
     if ($validateDestinationAndArrival !== TRUE) {
         return $validateDestinationAndArrival;
     }
     $is_bus_owner_updated = Bus::where('id', $bus_id)->where('bus_owners_id', $bus_owners_id)->update(['bus_name' => $bus_name, 'bus_from' => $bus_from, 'bus_to' => $bus_to, 'bus_type' => $bus_type, 'bus_comfort' => $bus_comfort, 'bus_seat_image_location' => $bus_seat_image_location, 'bus_total_seats' => $bus_total_seats, 'online_booking_seats' => $online_booking_seats, 'is_full_bus' => $is_full_bus, 'travelling_days' => $travelling_days]);
     $info = array('bus_id' => $bus_id, 'bus_owners_id' => $bus_owners_id);
     if ($is_bus_owner_updated == 1) {
         return $response->successResponse(200, "Bus details has been updated successully", $info);
     }
     return $response->errorResponse("update_unsuccessfull");
 }