def get_newest_podcasts(page=1): try: p, is_more = get_new_podcasts(page) response = {'items': PodcastSchema(many=True).dump(p), 'is_more': is_more} return make_response(response) except ResourceNotFound as err: return make_response({'error': err.message}), 404
def preview(phrase): users, podcasts = get_preview_search(phrase) response = { 'users': UserSchema(many=True).dump(users), 'podcasts': PodcastSchema(many=True).dump(podcasts) } return response
def search_podcasts_route(phrase, page): podcasts, is_more = search_podcasts(phrase, page) response = { 'items': PodcastSchema(many=True).dump(podcasts), 'is_more': is_more } return response
def get_most_popular_podcasts(): try: ps = get_most_popular() items = PodcastSchema(many=True).dump(ps) return make_response({'items': items, 'more': False}), 200 except ValidationError as err: return make_response(err.messages), 400 except SQLAlchemyError as err: e = str(err) print(e) return make_response(e), 500
def post_podcast(): try: data = AddPodcastSchema().load(request.form) audio = request.files.get('audio_file') cover_img = request.files.get('cover_file') if not audio: raise ValidationError({'audio_file': [t('no_audio_error')]}) if os.path.splitext(audio.filename)[1] != '.mp3': raise ValidationError({'audio_file': [t('audio_format_error')]}) p = create_podcast(data, audio, request.user, cover_img) res = PodcastSchema().dump(p) return make_response(res), 201 except ValidationError as err: return make_response(err.messages), 400 except SQLAlchemyError as err: e = str(err) print(e) return make_response(e), 500
def patch_podcast(podcast_id): try: data = EditPodcastSchema().load(request.json) podcast = find_podcast(id=podcast_id) if not podcast: return make_response({'general': t('not_found_error')}), 404 if request.user.id != podcast.author.id: return make_response(), 401 updated_podcast = update_podcast(podcast, data) return make_response(PodcastSchema().dump(updated_podcast)), 200 except ValidationError as err: print(err) return make_response(err.messages), 400 except SQLAlchemyError as err: e = str(err) print(e) return make_response(e), 500
def get_podcast(podcast_id): podcast = find_podcast(id=podcast_id) if not podcast: return make_response({'general': 'podcast not found'}), 404 return make_response(PodcastSchema().dump(podcast)), 200