예제 #1
0
def list_studios():
    studio_serializer = JSONSerializer(Studio)
    query = Studio.query.limit(request.args.get('limit')).order_by(Studio.slug)

    squack()

    return jsonify(sanitize(studio_serializer.serialize(query)))
예제 #2
0
파일: rest.py 프로젝트: Signez/dradis2
def list_medias():
    media_serializer = JSONSerializer(Media)
    query = Media.query

    if request.args.get('fulltext'):
        fulltext = request.args.get('fulltext')
        wrapped_fulltext = u'%{}%'.format(fulltext)
        query = query.filter(or_(Media.title.ilike(wrapped_fulltext), Media.artist.ilike(wrapped_fulltext),
                                 Media.album.ilike(wrapped_fulltext), Media.filename.ilike(wrapped_fulltext)))

    sort = request.args.get('sort', 'title')
    desc = sort[0] == "-"
    sort = sort.lstrip('-')

    column = getattr(Media, sort, None)

    if column:
        if desc:
            query = query.order_by(column.desc().nullslast())
        else:
            query = query.order_by(column.asc().nullslast())
    else:
        return jsonify({"error": "bad_argument"}), 400

    if request.args.get('limit'):
        query = query.limit(int(request.args.get('limit')))
    else:
        query = query.limit(10)

    if request.args.get('offset'):
        query = query.offset(int(request.args.get('offset')))

    return jsonify(sanitize(media_serializer.serialize(query)))
예제 #3
0
파일: rest.py 프로젝트: Signez/dradis2
def list_studios():
    studio_serializer = JSONSerializer(Studio)
    query = Studio.query.limit(request.args.get('limit')).order_by(Studio.slug)

    squack()

    return jsonify(sanitize(studio_serializer.serialize(query)))
예제 #4
0
def show_medias(media_id):
    media_serializer = JSONSerializer(Media)
    media = Media.query.get(media_id)

    if media:
        return jsonify(sanitize(media_serializer.serialize(media)))
    else:
        return jsonify({"error": "not_found"}), 404
예제 #5
0
파일: rest.py 프로젝트: Signez/dradis2
def show_studio(studio_id):
    studio_serializer = JSONSerializer(Studio)
    studio = Studio.query.get(studio_id)

    if studio:
        return jsonify(sanitize(studio_serializer.serialize(studio)))
    else:
        return jsonify({"error": "not_found"}), 404
예제 #6
0
def show_studio(studio_id):
    studio_serializer = JSONSerializer(Studio)
    studio = Studio.query.get(studio_id)

    if studio:
        return jsonify(sanitize(studio_serializer.serialize(studio)))
    else:
        return jsonify({"error": "not_found"}), 404
예제 #7
0
파일: rest.py 프로젝트: Signez/dradis2
def show_actions(action_id):
    action_serializer = JSONSerializer(Action)
    action = Action.query.get(action_id)

    if action:
        return jsonify(sanitize(action_serializer.serialize(action)))
    else:
        return jsonify({"error": "not_found"}), 404
예제 #8
0
파일: rest.py 프로젝트: Signez/dradis2
def show_medias(media_id):
    media_serializer = JSONSerializer(Media)
    media = Media.query.get(media_id)

    if media:
        return jsonify(sanitize(media_serializer.serialize(media)))
    else:
        return jsonify({"error": "not_found"}), 404
예제 #9
0
def show_actions(action_id):
    action_serializer = JSONSerializer(Action)
    action = Action.query.get(action_id)

    if action:
        return jsonify(sanitize(action_serializer.serialize(action)))
    else:
        return jsonify({"error": "not_found"}), 404
예제 #10
0
파일: rest.py 프로젝트: Signez/dradis2
def show_playlist(playlist_id):
    playlist_serializer = JSONSerializer(Playlist)
    playlist = Playlist.query.get(playlist_id)

    if playlist is not None:
        sideloaded = ["elements", "elements.media", "elements.action"]
        return jsonify(sanitize(playlist_serializer.serialize(playlist, include=sideloaded)))
    else:
        return jsonify({"error": "not_found"}), 404
예제 #11
0
def show_playlist(playlist_id):
    playlist_serializer = JSONSerializer(Playlist)
    playlist = Playlist.query.get(playlist_id)

    if playlist is not None:
        sideloaded = ["elements", "elements.media", "elements.action"]
        return jsonify(
            sanitize(
                playlist_serializer.serialize(playlist, include=sideloaded)))
    else:
        return jsonify({"error": "not_found"}), 404
예제 #12
0
def list_medias():
    media_serializer = JSONSerializer(Media)
    query = Media.query

    if request.args.get('fulltext'):
        fulltext = request.args.get('fulltext')
        wrapped_fulltext = u'%{}%'.format(fulltext)
        query = query.filter(
            or_(Media.title.ilike(wrapped_fulltext),
                Media.artist.ilike(wrapped_fulltext),
                Media.album.ilike(wrapped_fulltext),
                Media.filename.ilike(wrapped_fulltext)))

    sort = request.args.get('sort', 'title')
    desc = sort[0] == "-"
    sort = sort.lstrip('-')

    column = getattr(Media, sort, None)

    if column:
        if desc:
            query = query.order_by(column.desc().nullslast())
        else:
            query = query.order_by(column.asc().nullslast())
    else:
        return jsonify({"error": "bad_argument"}), 400

    if request.args.get('limit'):
        query = query.limit(int(request.args.get('limit')))
    else:
        query = query.limit(10)

    if request.args.get('offset'):
        query = query.offset(int(request.args.get('offset')))

    return jsonify(sanitize(media_serializer.serialize(query)))
예제 #13
0
파일: rest.py 프로젝트: Signez/dradis2
def list_playlists():
    playlist_serializer = JSONSerializer(Playlist)
    query = Playlist.query.limit(request.args.get('limit'))
    return jsonify(sanitize(playlist_serializer.serialize(query, include=[])))
예제 #14
0
파일: rest.py 프로젝트: Signez/dradis2
def list_actions():
    action_serializer = JSONSerializer(Action)
    query = Action.query.limit(request.args.get('limit'))

    return jsonify(sanitize(action_serializer.serialize(query)))
예제 #15
0
def list_playlist_element():
    playlist_element_serializer = JSONSerializer(PlaylistElement)
    query = PlaylistElement.query.limit(request.args.get('limit'))
    return jsonify(sanitize(playlist_element_serializer.serialize(query)))
예제 #16
0
파일: rest.py 프로젝트: Signez/dradis2
def list_playlist_element():
    playlist_element_serializer = JSONSerializer(PlaylistElement)
    query = PlaylistElement.query.limit(request.args.get('limit'))
    return jsonify(sanitize(playlist_element_serializer.serialize(query)))
예제 #17
0
def list_playlists():
    playlist_serializer = JSONSerializer(Playlist)
    query = Playlist.query.limit(request.args.get('limit'))
    return jsonify(sanitize(playlist_serializer.serialize(query, include=[])))
예제 #18
0
def list_actions():
    action_serializer = JSONSerializer(Action)
    query = Action.query.limit(request.args.get('limit'))

    return jsonify(sanitize(action_serializer.serialize(query)))