Exemplo n.º 1
0
def getTransactionHistory(uid):
    connector_settings = polish_api_data
    token = queries.getTokenByUid(uid)

    if token:
        connector_settings['accessToken'] = token
        api_client = enablebanking.ApiClient('Alior', connector_settings=connector_settings)  # Create client instance.
        aisp_api = enablebanking.AISPApi(api_client)
        user_config = queries.getUserInvoiceConfigByUid(uid)

        date_from = queries.fetchLastUserTransaction(uid).timestamp
        print(date_from.strftime('%Y-%m-%d'), datetime.datetime.now().strftime('%Y-%m-%d'))

        transactions = aisp_api.get_account_transactions(user_config.account_number, date_from=date_from.strftime('%Y-%m-%d'),
        date_to=datetime.datetime.now().strftime('%Y-%m-%d'))
        print(transactions.transactions[0])
        # for transaction in transactions.transactions:
        #     transaction.entry_reference = 'PL64249010440000420042820498'
        #     user = queries.getUserByAccNo(transaction.entry_reference)
        #     if user:
        #         other_uid = user.uid
        #         ## Mocking some information due to lacking data from API
        #         if random.randint(0, 2) == 1:
        #             queries.addNewTransaction(uid, other_uid, transaction.transaction_amount.amount, f'Opłata za fakturę nr {random.randint(10000, 99999)}', transaction.transaction_amount.currency)
        #         else:
        #             queries.addNewTransaction(other_uid, uid, transaction.transaction_amount.amount, f'Opłata za fakturę nr {random.randint(10000, 99999)}', transaction.transaction_amount.currency)

    return None
Exemplo n.º 2
0
def serializeBuyerInvoice(invoice):
    return {
        "invoice_id" : invoice.iid,
        "title": invoice.name,
        "amount": invoice.amount,
        "other_party": queries.getUserInvoiceConfigByUid(invoice.seller).name,
        "currency" : invoice.currency,
        "date" : invoice.timestamp
    }
Exemplo n.º 3
0
def getInvoice(body):
    inv_no = body.get('invoice_id')
    # try:
    res = queries.getInvoice(current_user.get_id(), inv_no)
    if res:
        # b, s = serializeInvoices(queries.getUserresConfigByUid(res.buyer), queries.getUserresConfigByUid(res.seller))
        res = {'invoice_id' : res.iid,
            'seller': serializeUserInvoiceData(queries.getUserInvoiceConfigByUid(res.seller)),
            'buyer': serializeUserInvoiceData(queries.getUserInvoiceConfigByUid(res.buyer)),
            'timestamp': res.timestamp,
            'amount': res.amount,
            'currency': res.currency,
            'title': res.name,
            'items': ast.literal_eval(res.items),
            'amount_paid': res.amount_paid,
            'payable': res.payable}
        return make_response(res, 200)
    return make_response('', 401)
Exemplo n.º 4
0
def getAccountBalance(uid):
    connector_settings = polish_api_data
    token = queries.getTokenByUid(uid)

    balance = 15000
    if token:
        connector_settings['accessToken'] = token
        api_client = enablebanking.ApiClient('Alior', connector_settings=connector_settings)  # Create client instance.
        aisp_api = enablebanking.AISPApi(api_client)
        user_config = queries.getUserInvoiceConfigByUid(uid)
        balance = aisp_api.get_account_balances(user_config.account_number)

    return balance.balances[0].balance_amount.amount
Exemplo n.º 5
0
def fetchUserData():
    user = queries.getUserByID(current_user.get_id())
    if user != None:
        balances = queries.fetchUserBalance(user.uid)
        balances = [{
            'balance_user':
            serializeUserInvoice(queries.getUserInvoiceConfigByUid(x.buyer)),
            'amount':
            x.amount,
            'currency':
            x.currency
        } for x in balances]
        acc_balance = getAccountBalance(user.uid)
        res = {
            'user_inv_data':
            serializeUserInvoice(queries.getUserInvoiceConfigByUid(user.uid)),
            'balances':
            balances,
            'user_account_balance':
            acc_balance
        }
        return make_response(res, 200)
    return make_response('', 401)