Ejemplo n.º 1
0
Archivo: api.py Proyecto: rixka/lmb-poc
def cupcakes_rating(rating_id):
    rating_id = validate_object_id(rating_id)
    rating = list(db.ratings.find({ '_id': rating_id }).limit(1))
    check_not_empty(rating)

    return json_response({
        'data': rating[0]
    })
Ejemplo n.º 2
0
Archivo: api.py Proyecto: rixka/lmb-poc
def cupcakes_list():
    last_id =  parse_query('last-id')
    query = { '_id': { '$gt': validate_object_id(last_id) } } if last_id else {}

    cupcakes = db.cupcakes.find(query).sort('_id').limit(5)
    return json_response({
        'data': cupcakes
    })
Ejemplo n.º 3
0
Archivo: api.py Proyecto: rixka/lmb-poc
def create_cupcakes_rating():
    data = request.json
    data['cupcakeId'] = validate_object_id(data['cupcakeId'])

    validate_rating(data['rating'])
    validate_cupcake_exists(data['cupcakeId'])

    rating_id = db.ratings.insert(data)
    headers = { 'Location': str.join('/', [ '/cupcakes/rating', str(rating_id) ]) }
    return json_response({ 'message': 'The item was created successfully' }, 201, headers)
Ejemplo n.º 4
0
Archivo: api.py Proyecto: rixka/lmb-poc
def cupcakes_avg_rating(cupcake_id):
    cupcake_id = validate_object_id(cupcake_id)
    validate_cupcake_exists(cupcake_id)

    rating = db.ratings.aggregate([
        {
            '$match': { 'cupcakeId': cupcake_id }
        },
        {
            '$group': {
                '_id': '$cupcakeId',
                'minRating': { '$min': '$rating' },
                'avgRating': { '$avg': '$rating' },
                'maxRating': { '$max': '$rating' }
            }
        }
    ])

    return json_response({
        'data': rating
    })
Ejemplo n.º 5
0
def songs_avg_rating(song_id):
    song_id = validate_object_id(song_id)
    validate_song_exists(song_id)

    rating = db.ratings.aggregate([{
        '$match': {
            'songId': song_id
        }
    }, {
        '$group': {
            '_id': '$songId',
            'minRating': {
                '$min': '$rating'
            },
            'avgRating': {
                '$avg': '$rating'
            },
            'maxRating': {
                '$max': '$rating'
            }
        }
    }])

    return json_response({'data': rating})