Exemplo n.º 1
0
def get_user_endpoint(uid):

    # get user's checksum
    user = User.query.get(uid)
    # evaluate if matches given checksum
    if user is None:
        return jsonify(message=f'User {uid} does not exist!'), 404

    schema = UserSchema(only=('uid', 'name', 'avatar', 'title', 'identity',
                              'mnemonic', 'subscription', 'createdAt'))
    user = schema.dump(user)

    if user['identity'] == 0:  # artist
        releases = Media.query \
            .filter_by(uid=user['uid'], dist_type=False) \
            .order_by(Media.title) \
            .all()
        releases = MediaSchema(exclude=('uid', 'full_audio', 'demo_segment',
                                        'dist_type')).dump(releases, many=True)
        for release in releases:
            release['artist'] = user['name']
        user['releases'] = releases

        auctions = Auction.query \
            .filter_by(uid=user['uid']) \
            .order_by(Auction.start.desc()) \
            .all()
        auctions = AuctionSchema(only=('aid', 'assetId', 'amount', 'start',
                                       'end', 'sold', 'earnings', 'mid',
                                       'media.title',
                                       'media.cover')).dump(auctions,
                                                            many=True)
        for auction in auctions:
            auction['cover'] = auction['media']['cover']
            auction['title'] = auction['media']['title']
            auction['artist'] = user['name']
            del auction['media']
        user['auctions'] = auctions

    else:  # listener
        owns = Ownership.query.filter_by(uid=user['uid']).all()
        owns = OwnershipSchema(only=('aid', 'auction.assetId', 'auction.sold',
                                     'auction.earnings', 'mid', 'media.uid',
                                     'media.title',
                                     'media.cover')).dump(owns, many=True)
        for own in owns:
            own['assetId'] = own['auction']['assetId']
            own['sold'] = own['auction']['sold']
            own['earnings'] = own['auction']['earnings']
            own['title'] = own['media']['title']
            own['cover'] = own['media']['cover']
            own['artist'] = User.query.get(own['media']['uid']).name
            del own['auction']
            del own['media']
        user['owns'] = owns

    return jsonify(user), 200
Exemplo n.º 2
0
 def post(self):
     email = request.authorization.username
     password = request.authorization.password
     user = UserModel.query.filter(UserModel.user_email == email).filter(UserModel.user_pass == password).first()
     if user:
         user_schema = UserSchema()
         result = user_schema.dump(user)
         return jsonify(result.data)
     return {}, 404
Exemplo n.º 3
0
def create_user_endpoint():
    data = request.get_json()
    if data is None:
        return '', 400
    message = UserSchema().validate(data)
    if len(message) > 0:
        return jsonify(message), 400

    user = User(**data)
    db.session.add(user)
    db.session.commit()

    schema = UserSchema(only=('uid', 'name', 'avatar', 'identity',
                              'subscription', 'createdAt'))
    return jsonify(schema.dump(user)), 201
Exemplo n.º 4
0
 def get(self):
     all_users = UserModel.query.all()
     user_schema = UserSchema(many=True)
     result = user_schema.dump(all_users)
     return jsonify(result.data)
Exemplo n.º 5
0
 def get(self,user_id):
     user = UserModel.query.filter(UserModel.ID==user_id).first()
     user_schema = UserSchema()
     result = user_schema.dump(user)
     return jsonify(result.data)