def get_artist(id): artist = Artist.query.get_or_404(id) if artist.user.id != flask.g.current_user.id and not flask.g.current_user.is_admin: raise APIError(404) data = artist_schema.dump(artist) return jsonify(data)
def get_user(id): user = User.query.get_or_404(id) if user.id != flask.g.current_user.id and not flask.g.current_user.is_admin: raise APIError(401) data = user_schema.dump(user) return jsonify(data)
def get_venue(id): venue = Venue.query.get_or_404(id) if venue.user.id != flask.g.current_user.id and not flask.g.current_user.is_admin: raise APIError(404) data = venue_schema.dump(venue) return jsonify(data)
def delete_user(id): user = User.query.get_or_404(id) if user.id != flask.g.current_user.id and not flask.g.current_user.is_admin: raise APIError(401) database.session.delete(user) database.session.commit() return jsonify({}), 204
def delete_artist(id): artist = Artist.query.get_or_404(id) if artist.user.id != flask.g.current_user.id and not flask.g.current_user.is_admin: raise APIError(404) database.session.delete(artist) database.session.commit() return jsonify({}), 204
def delete_venue(id): venue = Venue.query.get_or_404(id) if venue.user.id != flask.g.current_user.id and not flask.g.current_user.is_admin: raise APIError(404) database.session.delete(venue) database.session.commit() return jsonify({}), 204
def update_artist(id): artist = Artist.query.get_or_404(id) if artist.user.id != flask.g.current_user.id and not flask.g.current_user.is_admin: raise APIError(404) json = flask.request.get_json() or {} try: data = ArtistSchema(partial=True).load(json) except ValidationError as error: raise APIError(422, details=error.messages) check_unique_on_update(flask.g.current_user.artists, artist, data, ["name"]) for key, value in data.items(): setattr(artist, key, value) database.session.commit() data = ArtistSchema().dump(artist) return jsonify(data)
def create_artist(): json = flask.request.get_json() or {} try: data = artist_schema.load(json) except ValidationError as error: raise APIError(422, details=error.messages) check_unique_on_create(flask.g.current_user.artists, data, ["name"]) artist = Artist(**data) artist.user = flask.g.current_user database.session.add(artist) database.session.commit() data = artist_schema.dump(artist) response = jsonify(data) response.status_code = 201 response.headers["Location"] = flask.url_for("artist.get_artist", id=artist.id) return response
def create_venue(): json = flask.request.get_json() or {} try: data = venue_schema.load(json) except ValidationError as error: raise APIError(422, details=error.messages) check_unique_on_create(flask.g.current_user.venues, data, ["name"]) venue = Venue(**data) venue.user = flask.g.current_user database.session.add(venue) database.session.commit() data = venue_schema.dump(venue) response = jsonify(data) response.status_code = 201 response.headers["Location"] = flask.url_for("venue.get_venue", id=venue.id) return response
def create_user(): json = flask.request.get_json() or {} try: data = user_schema.load(json) except ValidationError as error: raise APIError(422, details=error.messages) check_unique_on_create(User.query, data, ["username", "email"]) password = data.pop("password", None) user = User(**data) assert password is not None user.set_password(password) database.session.add(user) database.session.commit() data = user_schema.dump(user) response = jsonify(data) response.status_code = 201 response.headers["Location"] = flask.url_for("user.get_user", id=user.id) return response
def update_user(id): user = User.query.get_or_404(id) if user.id != flask.g.current_user.id and not flask.g.current_user.is_admin: raise APIError(401) json = flask.request.get_json() or {} try: data = UserSchema(partial=True).load(json) except ValidationError as error: raise APIError(422, details=error.messages) check_unique_on_update(User.query, user, data, ["username", "email"]) password = data.pop("password", None) if password is not None: user.set_password(password) for key, value in data.items(): setattr(user, key, value) database.session.commit() data = UserSchema().dump(user) return jsonify(data)
def get_users(): if not flask.g.current_user.is_admin: raise APIError(401) users = paginate(User.query) data = users_schema.dump(users.items) return jsonify(data)
def delete_token(): flask.g.current_user.revoke_token() database.session.commit() return jsonify({}), 204
def create_token(): token = flask.g.current_user.get_token() database.session.commit() return jsonify({"token": token}), 201
def get_artists(): artists = paginate(flask.g.current_user.artists) data = artists_schema.dump(artists.items) return jsonify(data)
def get_venues(): venues = paginate(flask.g.current_user.venues) data = venues_schema.dump(venues.items) return jsonify(data)