Пример #1
0
def authenticate():
    if not request.json:
        return {'message': 'Request is not JSON.'}, 400

    schema = {
        'username': {
            'type': 'string',
            'required': True
        },
        'url': {
            'type': 'string',
            'required': True
        },
        'password': {
            'type': 'string',
            'required': True
        }
    }

    validator = Validator(schema)
    if not validator.validate(request.json):
        return {'message': 'Required parameters are missing!'}, 400

    payload = request.get_json()
    username = payload['username'].lower()
    url = payload['url']
    password = payload['password']

    user = User.find_by_username_password(username=username, password=password)
    if user:
        try:
            Token.delete_all_tokens(user.id)
            token = Token(url=url, user_id=user.id)
            token.save()
            if token:
                return {
                    'message': 'Token has been created',
                    'token': token.token
                }, 201
            else:
                return {'message': 'Unable to generate token.'}, 500
        except:
            return {'message': 'Unable to generate token.'}, 500
    else:
        return {'message': 'User does not exist!'}, 404