def main(arguments): client = FioBank(token=arguments['--token']) if '<month>' in arguments: month = strtodatetime(arguments['<month>']) month_range = calendar.monthrange(month.year, month.month) month_start = datetime.date(month.year, month.month, month_range[0]) month_end = datetime.date(month.year, month.month, month_range[1]) transactions = client.period(month_start, month_end) else: transactions = client.period(arguments['<from>'], arguments['<to>']) print table_header() for transaction in transactions: try: transaction['recipient_message'] except KeyError: transaction['recipient_message'] = '' try: transaction['variable_symbol'] except KeyError: transaction['variable_symbol'] = '' print "||%s\t||%s\t||%s\t||%s\t||%s\t||" % (transaction['date'], transaction['user_identifiaction'], transaction['recipient_message'], transaction['variable_symbol'], transaction['amount'])
def test_period_coerces_date(transactions_json): client = FioBank('...') from_date = '2016-08-04T09:36:42' to_date = '2016-08-30T11:45:38' options = {'return_value': transactions_json} with mock.patch.object(client, '_request', **options) as stub: client.period(from_date, to_date) stub.assert_called_once_with('periods', from_date=date(2016, 8, 4), to_date=date(2016, 8, 30))
def main(): doc_key = '1TO5Yzk0-4V_RzRK5Jr9I_pF5knZsEZrNn2HKTXrHgls' client = FioBank(token=FIOBANK_API_KEY) to_date = date.today().strftime('%Y-%m-%d') records = [] for transaction in client.period(from_date='2020-01-01', to_date=to_date): transaction['message'] = ', '.join( filter(None, [ transaction.get('comment'), transaction.get('user_identification'), transaction.get('recipient_message'), ])) for category_fn in CATEGORIES: category = category_fn(transaction) if category: transaction['category'] = category break records.append({ 'Date': transaction['date'].strftime('%Y-%m-%d'), 'Category': transaction['category'], 'Amount': transaction['amount'], 'Currency': transaction['currency'], 'Message': transaction['message'], 'Variable Symbol': transaction['variable_symbol'], }) google_sheets.upload(google_sheets.get(doc_key, 'transactions'), records)
def handle(self, *args, **kwargs): client = FioBank(token=settings.FIO_TOKEN) payments = client.period( datetime.datetime.now() - datetime.timedelta(days=kwargs['days_back']), datetime.datetime.now(), ) for payment in payments: self.pair_payment(payment)
def _get_last_payments(): """ Get list of payments for last three days from FioBank """ client = FioBank(token=settings.FIO_BANK_TOKEN) today = timezone.now() date_from = (today - timedelta(days=settings.FIO_BANK_PROCESS_DAYS)).strftime(DATE_FORMAT) date_to = today.strftime(DATE_FORMAT) try: data = list(client.period(date_from, date_to)) except (requests.exceptions.HTTPError, requests.exceptions.ConnectionError) as e: logger.error('{} in _get_last_payments'.format(e)) data = [] return data
def handle(self, *args, **options): if settings.FIO_TOKEN: client = FioBank(token=settings.FIO_TOKEN) payments = client.period(from_date=datetime.date.today()-datetime.timedelta(30), to_date=datetime.date.today()) for payment in payments: date = payment.get("date") vs = payment.get("variable_symbol") value = payment.get("amount", 0.0) trans = payment.get("transaction_id") if vs and value and date and trans: try: user = User.objects.get(id=(int(vs) - 100000)) except ObjectDoesNotExist: continue if not TransId.objects.filter(trans_id=trans).count() and value > 0: self.pay(date, user, value, trans) else: sys.stderr.write("Error: not FIO TOKEN found")
def handle(self, *args, **options): if settings.FIO_TOKEN: client = FioBank(token=settings.FIO_TOKEN) payments = client.period(from_date=datetime.date.today() - datetime.timedelta(30), to_date=datetime.date.today()) for payment in payments: date = payment.get("date") vs = payment.get("variable_symbol") value = payment.get("amount", 0.0) trans = payment.get("transaction_id") if vs and value and date and trans: try: user = User.objects.get(id=(int(vs) - 100000)) except ObjectDoesNotExist: continue if not TransId.objects.filter( trans_id=trans).count() and value > 0: self.pay(date, user, value, trans) else: sys.stderr.write("Error: not FIO TOKEN found")