import requests from dotenv import load_dotenv import os pageSize = 10 # Just so I don't have to keep changing stuff paramFields = 'id,companyName,name,lastInvoiceAmount,nextInvoiceAmount,agreementStatus' # if we neeeed to make multiple similar calls we may as well save some typing load_dotenv() # make sure to include this avoid troubleshooting why your auth doesn't work for 40 minutes def apiGetRequest(api_base, endpoint, params, headers): url = api_base + endpoint resp = requests.get(url, params=params, headers=headers) if resp.status_code == 200: return resp.json() else: resp.raise_for_status() api_base = os.environ["API_BASE"] authToken = os.environ["AUTH_TOKEN"] clientId = os.environ["CLIENT_ID"] endpoint = '/finance/agreementrecap' #endpoint for GET headers = {'Authorization': authToken, 'clientId': clientId} # DO NOT fill this out and then commit it to the publicly-viewable git repository, please params = {'pageSize': pageSize, 'conditions': 'agreementStatus="ACTIVE"', 'fields': paramFields} # API call params--prepare to cry if your url encoding is sub-par data = apiGetRequest(api_base, endpoint, params, headers) #Put it all together and whadya get for item in data: #This is just iterating through whatever comes back and barfing the data in a readable way print(f"{item['companyName']} - {item['name']} - {item['agreementStatus']}") additionsEndpoint = '/finance/agreements/' + str(item['id']) + '/additions' additions = apiGetRequest(api_base, additionsEndpoint, {'pagesize': pageSize}, headers) for thing in additions: # Yo dawg I heard you like loops print(' ' + thing['product']['identifier'] + ' - $' + str(thing['unitPrice'])) ################################################################################### ####################### !!! DO NOT DISAPPOINT THE FROG WIZARD !!! ######################### # .-----. # /7 . ( # / .-. \ # / / \ \ # / ` ) ( ) # / ` ) ). \ # .' _. \_/ . | # .--. .' _.' )`. | # ( `---...._.' `---.'_) .. \ # \ `----....___ `. \ | # `. _ ----- _ `._ )/ | # `. /" \ /" \`. `._ | # `. ((O)` ) ((O)` ) `. `._\ # `-- '`---' `---' ) `. `-. # / ` \ `-. # .' `. `. # / ` ` `. `-. # .--. \ ===._____.======. ` ` `. .___.--` .''''. # ' .` `-. `. )`. ` ` ` \ .' . ' 8) # (8 . ` `-.`. ( . ` ` .`\ .' ' ' / # \ `. ` `-. ) ` . ` ` \ .' ' . ' / # \ ` `. ` . \`. .--. | ` ) ` .``/ ' // . / # `. ``. . \ \ .-- `. ( ` /_ ` . / ' . '/ .' # `. ` \ ` \ \ '-. `-' .' `-. ` . .'/ .' # \ `.`. ` \ \ ) /`._.` `. ` . .' / # | `.`. . \ \ (.' `. .' .' # __/ .. \ \ ` ) \ \.' .. \__ # .-._.-' '" ) .-' `. ( '" `-._.--. #(_________.-====' / .' /\_)`--..__________..-- `====-. _________) #####################################################################################