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'))
def view(): form = TokenForm() tokens = Token().all() return render_template('tokens.html', title='Tokens', tokens=tokens, form=form)
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
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
def logout(): data = { 'status': False } jti = get_raw_jwt()['jti'] with Token() as token: token.remove(jti) data['status'] = True return jsonify(data)
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
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)
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)
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
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)
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
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)
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)
def delete(idx): token = Token.find_one(idx) token.delete() flash('Token deleted successfully') return jsonify(deleted=True)
def get(idx): token = Token.find_one(idx) return jsonify(api_key=token.api_key_hash)
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