%PDF- %PDF-
Direktori : /www/loslex/ |
Current File : /www/loslex/pretix.py |
import requests import time import json from requests import RequestException from urllib.parse import urljoin import click import sys import pprint fioToken = 'RUcabe62eUUss2hEc9g2YWrYOa1m92nzpA3yYu9xLBlWWCBRrMKVXkKXKWB44oNx' pretixToken = 'xuvi20onfc0v4ud9dq92o8dwmq00d8qznhbwzdsxz99wszmhy0j03owae9sm5avi' pretixServer = 'https://pretix.varak.net' pretixOrganizer = 'klubovnaostrava' # TODO: un-comment when in production accResponse = requests.get('https://fioapi.fio.cz/v1/rest/last/' + fioToken + '/transactions.json') accText = accResponse.text #fin = open('data1744821838.732042.json', 'r') #accText = fin.read() #fin.close() # TODO: remove response saving when confirmed working f = open('data' + str(time.time()) + '.json', 'w') f.write(accText) f.close() accData = json.loads(accText) transactions = [] for trans in accData['accountStatement']['transactionList']['transaction']: amount = trans['column1']['value'] code = 'No reference' if trans['column16'] is None else trans['column16'] ['value'] payer = trans['column10']['value'] transDate = trans['column0']['value'][:10] bankId = trans['column17']['value'] tx = { 'amount': amount, 'reference': code, 'payer': payer, 'date': transDate, 'external_id': bankId } transactions.append(tx) payload = { 'event': None, 'transactions': transactions } pprint.pp(payload) # upload to pretix try: pretixUrl = urljoin(pretixServer, '/api/v1/organizers/{}/bankimportjobs/'.format(pretixOrganizer)) r = requests.post(pretixUrl, headers={ 'Authorization': 'Token {}'.format(pretixToken) }, json=payload, verify=True) if r.status_code == 201: click.echo(click.style('Job uploaded.', fg='green')) else: click.echo(click.style('Invalid response code: %d' % r.status_code, fg='red')) click.echo(r.text) sys.exit(2) except (RequestException, OSError) as e: click.echo(click.style('Connection error: %s' % str(e), fg='red')) sys.exit(2) except ValueError as e: click.echo(click.style('Could not read response: %s' % str(e), fg='red')) sys.exit(2)