Esempio n. 1
0
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
Esempio n. 2
0
def preview(phrase):
    users, podcasts = get_preview_search(phrase)
    response = {
        'users': UserSchema(many=True).dump(users),
        'podcasts': PodcastSchema(many=True).dump(podcasts)
    }
    return response
Esempio n. 3
0
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
Esempio n. 4
0
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
Esempio n. 5
0
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
Esempio n. 6
0
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
Esempio n. 7
0
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