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
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
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
def get(self): all_users = UserModel.query.all() user_schema = UserSchema(many=True) result = user_schema.dump(all_users) return jsonify(result.data)
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)