Exemplo n.º 1
0
def generate():
    form = TokenForm(request.form)
    if form.validate_on_submit():
        api_key = Token.generate_api_key()
        token = Token.create(name=form.data.get('name'), api_key=api_key)
        flash(f"Your \"{token.name}\" token's ID is {token.id}")
    return redirect(url_for('token.view'))
Exemplo n.º 2
0
def view():
    form = TokenForm()
    tokens = Token().all()
    return render_template('tokens.html',
                           title='Tokens',
                           tokens=tokens,
                           form=form)
Exemplo n.º 3
0
def check_token(decrypted_token):
    try:
        jti = decrypted_token['jti']
        with Token() as token:
            return not token.token_exist(jti)

    except Exception as e:
        logger.error(f':{check_token.__name__}: {e}')

    return True
Exemplo n.º 4
0
def test():
    if 'api_key' in request.args:
        api_key = request.args.get('api_key')
        token = Token.find_one(by={'api_key_hash': api_key})
        if token is not None:
            return jsonify(ok=True)
        else:
            return jsonify(error='Wrong API key'), 401
    else:
        return jsonify(error='No API key'), 401
Exemplo n.º 5
0
def logout():
    data = {
        'status': False
    }
    jti = get_raw_jwt()['jti']

    with Token() as token:
        token.remove(jti)
        data['status'] = True

    return jsonify(data)
Exemplo n.º 6
0
def my_expired_token_callback(expired_token):
    try:
        token_type = expired_token['type']
        jti = expired_token['jti']

        with Token() as token:
            token.remove(jti)

    except Exception as e:
        logger.error(f':{my_expired_token_callback.__name__}: {e}')

    return jsonify({'status': 401}), 401
Exemplo n.º 7
0
def entities_by_user():
    data = {'status': True}

    jti = get_raw_jwt()['jti']

    with Token() as token:
        user = token.by_jti(jti)

    if user:
        with Entity() as _entity:
            data['entities'] = _entity.by_user(user.get('user_id'))

    return jsonify(data)
Exemplo n.º 8
0
def portfolio():
    result = requests.get(NODE + '/assets/balance/' +
                          current_user.wallet.address)
    balances = json.loads(result.content)['balances']
    portfolio = []
    for balance in balances:
        asset = Token(balance['issueTransaction']['id'],
                      balance['issueTransaction']['decimals'],
                      balance['balance'],
                      balance['issueTransaction']['sender'],
                      balance['issueTransaction']['name'],
                      balance['issueTransaction']['description'])
        portfolio.append(asset)
    return render_template('portfolio.html', portfolio=portfolio)
Exemplo n.º 9
0
def queue():
    if 'api_key' in request.args:
        api_key = request.args.get('api_key')
        token = Token.find_one(by={'api_key_hash': api_key})
        if token is not None:
            job = Job.pop()
            if job is None:
                return jsonify(error='Not Found'), 404
            job.set_status(Job.RUNNING)
            return jsonify(job.to_dict())
        else:
            return jsonify(error='Wrong API key'), 401
    else:
        return jsonify(error='No API key'), 401
Exemplo n.º 10
0
def get_modules():
    data = {
        'status': True
    }

    jti = get_raw_jwt()['jti']

    with Token() as token:
        user = token.by_jti(jti)

    if user:
        with Module() as module:
            data['modules'] = module.by_user(user.get('user_id'))

    return jsonify(data)
Exemplo n.º 11
0
def update(idx):
    if 'api_key' in request.args:
        api_key = request.args.get('api_key')
        token = Token.find_one(by={'api_key_hash': api_key})
        if token is not None:
            job = Job.find_one(idx)
            if job is None:
                return jsonify(error='Not Found'), 404
            data = request.get_json()
            if 'status' in data:
                job.set_status(data.get('status'))
            if 'result' in data:
                job.set_result(data.get('result'))
            return jsonify(job.to_dict())
        else:
            return jsonify(error='Wrong API key'), 401
    else:
        return jsonify(error='No API key'), 401
Exemplo n.º 12
0
def login():
    data = {
        'status': False
    }

    username = request.json.get('username')
    password = request.json.get('password')

    if username and password:
        with User() as user:
            data['status'], data['access_token'], row_id = user.login_user(username, password)

        if data['status']:
            with Token() as token:
                token.insert(get_jti(data['access_token']), data['access_token'], row_id)

            with Entity() as entity:
                data['entity_prefix'] = entity.by_user(row_id)[0].get('prefix')

    return jsonify(data)
Exemplo n.º 13
0
def validate():
    data = {
        'status': True,
        'new_route': False
    }

    name = request.json.get('name')
    module = request.json.get('module')

    jti = get_raw_jwt()['jti']

    with Token() as token:
        row = token.by_jti(jti)

    with Module() as _module:
        modules = _module.by_user(row.get('user_id'))
        modules = [m.get('route_name') for m in modules]
        if module is None or module not in modules:
            data['new_route'] = True
            data['route_name'] = modules[0]

    return jsonify(data)
Exemplo n.º 14
0
def delete(idx):
    token = Token.find_one(idx)
    token.delete()
    flash('Token deleted successfully')
    return jsonify(deleted=True)
Exemplo n.º 15
0
def get(idx):
    token = Token.find_one(idx)
    return jsonify(api_key=token.api_key_hash)
Exemplo n.º 16
0
def test_token():
    token = Token('id', 8, 1000, '3JXXXXXXXXXX', 'TEST TOKEN', 'TEST TOKEN')
    assert token.id == 'id'
    assert token.decimals == 8
    assert token.amount == 1000