Exemplo n.º 1
0
    def read(ride_id, request_id):
        """
        A method to get the details of a ride request.
        :param ride_id: An int, the unique identifier of a ride.
        :param request_id: An int, the unique identifier of a ride request.
        :return: ride request details
        """
        connection = connectDB()
        cursor = connection.cursor(cursor_factory=psycopg2.extras.DictCursor)
        RideRequest.abort_if_ride_offer_doesnt_exist(ride_id)
        RideRequest.abort_if_ride_request_doesnt_exist(request_id)
        try:
            cursor.execute('SELECT * FROM ride_request WHERE id = %s ;',
                           ([request_id]))
        except (Exception, psycopg2.DatabaseError) as error:
            connection.rollback()
            return {'status': 'failed', 'data': error}, 500
        results = cursor.fetchone()
        cursor.close()
        connection.close()

        if results is None:
            abort(404,
                  message='The ride request with id {} does not exist'.format(
                      request_id))
        request = {
            'id': results['id'],
            'ride_id': results['ride_id'],
            'requestor': User.read(results['requestor_id'])['fullname'],
            'request_status': results['request_status'],
        }
        return request
Exemplo n.º 2
0
 def read(ride_id):
     """
     A method to get the details of a ride.
     :param ride_id: An int, the unique identifier of the ride.
     :return: ride details
     """
     connection = connectDB()
     cursor = connection.cursor(cursor_factory=psycopg2.extras.DictCursor)
     try:
         cursor.execute('SELECT * FROM ride WHERE id = %s ;', ([ride_id]))
     except (Exception, psycopg2.DatabaseError) as error:
         connection.rollback()
         return {'status': 'failed', 'data': error}, 500
     results = cursor.fetchone()
     cursor.close()
     connection.close()
     if results is None:
         abort(404,
               message='The ride with id {} does not exist'.format(ride_id))
     ride = {
         'id': results['id'],
         'time': results['time'],
         'date': results['date'],
         'pickup': results['pickup'],
         'dropoff': results['dropoff'],
         'capacity': results['capacity'],
         'seats_available': results['seats_available'],
         'driver': User.read(results['driver_id'])['fullname'],
         'price': results['price'],
         'status': results['status']
     }
     return ride
Exemplo n.º 3
0
 def browse():
     """A method to get all rides.
     :return: A list of dictionaries with all rides
     """
     connection = connectDB()
     cursor = connection.cursor(cursor_factory=psycopg2.extras.DictCursor)
     try:
         cursor.execute('SELECT * FROM ride;')
     except (Exception, psycopg2.DatabaseError) as error:
         connection.rollback()
         return {'status': 'failed', 'data': error}, 500
     ride_list = cursor.fetchall()
     cursor.close()
     connection.close()
     if len(ride_list) == 0:
         return {
             'status': 'success',
             'message': 'There are no rides offers yet'
         }, 404
     else:
         data = []
         for ride in ride_list:
             item = {
                 'id': ride['id'],
                 'time': ride['time'],
                 'date': ride['date'],
                 'pickup': ride['pickup'],
                 'dropoff': ride['dropoff'],
                 'capacity': ride['capacity'],
                 'seats_available': ride['seats_available'],
                 'driver': User.read(ride['driver_id'])['fullname'],
                 'price': ride['price'],
                 'status': ride['status']
             }
             data.append(item)
         return {
             'status': 'success',
             'message': 'Fetch successful',
             'data': data
         }, 200
Exemplo n.º 4
0
 def get(self, user_id):
     """
     Endpoint for viewing a user's details
     ---
     tags:
       - User
     security:
       - Bearer: []  
     parameters:
       - name: user_id
         in: path
         required: true
         type: integer
     responses:
       500:
         description: Internal server error
       200:
         description: Fetch successfull
       404:
         description: The user does not exist
     """
     return User.read(user_id)
Exemplo n.º 5
0
 def browse(ride_id):
     """A method to get all ride requests.
     :return: A list of dictionaries with all ride requests
     """
     connection = connectDB()
     cursor = connection.cursor(cursor_factory=psycopg2.extras.DictCursor)
     RideRequest.abort_if_ride_offer_doesnt_exist(ride_id)
     try:
         cursor.execute(
             'SELECT id, ride_id, requestor_id, request_status FROM ride_request WHERE ride_id = %s ;',
             ([ride_id]))
     except (Exception, psycopg2.DatabaseError) as error:
         connection.rollback()
         return {'status': 'failed', 'data': error}, 500
     ride_offer_requests = cursor.fetchall()
     cursor.close()
     connection.close()
     if len(ride_offer_requests) == 0:
         return {
             'status': 'success',
             'message': 'No requests available for this ride yet'
         }, 404
     else:
         data = []
         for request in ride_offer_requests:
             item = {
                 'id': request['id'],
                 'ride_id': request['ride_id'],
                 'requestor':
                 User.read(request['requestor_id'])['fullname'],
                 'request_status': request['request_status'],
             }
             data.append(item)
         return {
             'status': 'success',
             'message': 'Fetch successful',
             'data': data
         }