예제 #1
0
파일: urlapi.py 프로젝트: turfaa/turangga
def create(local=False, url=None, short=None, token=None):
    if local:
        local_make_response = data_to_object

        if url is None:
            return local_make_response(False, {'message': 'Invalid data'})
    else:
        local_make_response = data_to_response

        if (not ('url' in request.form)):
            return local_make_response(False, {'message': 'Invalid data'})
        url = request.form['url']

        if 'short' in request.form:
            short = request.form['short']
        else:
            short = None

        if 'token' in request.form:
            token = request.form['token']

    if not (token is None):
        try:
            username = db.tokenLookup(request.form['token'])
        except DBException as err:
            return local_make_response(False, {'message': err.message})
    else:
        username = None

    if not (short is None):
        if not (short.isalnum()):
            return local_make_response(
                False, {'message': 'Slug must be alphanumeric.'})

    db = DBHandler()

    if (not validators.url(url)) | ('turang.ga' in url):
        return local_make_response(False, {'message': 'URL is not valid.'})

    newUrl = baseurl

    try:
        newUrl += db.urlNew(url, short, username)
    except DBException as err:
        return local_make_response(False, {'message': err.message})
    else:
        return local_make_response(True, {'url': newUrl})