def accept(driver_number): conn = None try: conn, cur = Sql.get_connection() booking_details = Firebase.get_current_request(driver_number) if booking_details["bookingId"] == -1: raise ValueError('There is no booking for this driver') if len(booking_details) == 0: raise ValueError('Booking details is empty') user_number = int(booking_details["user"]) fare = float(booking_details["fare"]) booking_id = booking_details["bookingId"] from_lon = float(booking_details["from_lon"]) from_lat = float(booking_details["from_lat"]) to_lon = float(booking_details["to_lon"]) to_lat = float(booking_details["to_lat"]) seats = int(booking_details["seats"]) now_time = datetime.timestamp(datetime.now()) sql_query = "select name, vehicle from drivers where number = '{0}'" cur.execute(sql_query.format(driver_number)) d = cur.fetchone() driver_name = str(d[0]) vehicle = str(d[1]) sql_query = "insert into driver_history (booking_id, driver_number, timestamp) values ('{0}', {1}, {2})" cur.execute(sql_query.format(booking_id, driver_number, now_time)) conn.commit() sql_query = "insert into distance(booking_id, status, dist, driver, from_lon, from_lat) values('{0}', 1, -1.0, '{1}', {2}, {3})" cur.execute(sql_query.format(booking_id, driver_number, from_lon, from_lat)) conn.commit() sql_query = "insert into user_history (booking_id, user_number, timestamp) values ('{0}', {1}, {2})" cur.execute(sql_query.format(booking_id, user_number, now_time)) conn.commit() status = Firebase.confirm_user_booking(user_number, driver_number, driver_name, vehicle) sql_query = "insert into user_booking(booking_id, user_number, status, driver_number, fare, activity, from_lon, from_lat, to_lon, to_lat, seats) values('{0}', '{1}', {2}, '{3}', {4}, '{5}', {6}, {7}, {8}, {9}, {10})" cur.execute(sql_query.format(booking_id, user_number, C.USER_BOOKED, driver_number, fare, "user_booked", from_lon, from_lat, to_lon, to_lat, seats)) conn.commit() conn.close() result = Response.make_response(200, "Driver accepted", "Request accepted successfully", fare = fare, bookingId = booking_id) return result except Exception as e: if conn is not None: conn.close() logging.error("Error in accepting request: " + str(e)) return Response.default_error