2024-07-27 01:18:00 +00:00
import requests
2024-07-27 05:15:53 +00:00
from dotenv import load_dotenv
import os
load_dotenv ( )
2024-07-27 01:18:00 +00:00
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 ( )
2024-07-27 05:17:37 +00:00
api_base = os . environ [ " API_BASE " ]
2024-07-27 05:15:53 +00:00
authToken = os . environ [ " AUTH_TOKEN " ]
clientId = os . environ [ " CLIENT_ID " ]
2024-07-27 01:18:00 +00:00
endpoint = ' /finance/agreementrecap ' #endpoint for GET
2024-07-27 05:15:53 +00:00
headers = { ' Authorization ' : authToken , ' clientId ' : clientId } # DO NOT fill this out and then commit it to the publicly-viewable git repository, please
2024-07-27 01:18:00 +00:00
params = { ' pageSize ' : 50 , ' conditions ' : ' agreementStatus!= " CANCEL " ' , ' fields ' : ' id,companyName,name,lastInvoiceAmount,nextInvoiceAmount,agreementStatus ' } # API call params--prepare to cry if your url encoding is sub-par
2024-07-27 05:15:53 +00:00
2024-07-27 05:17:37 +00:00
data = apiGetRequest ( api_base , endpoint , params , headers ) #Put it all together and whadya get
2024-07-27 05:15:53 +00:00
2024-07-27 01:18:00 +00:00
for item in data : #This is just iterating through whatever comes back and barfing the data in a readable way
2024-07-27 06:47:06 +00:00
print ( f " { item [ ' companyName ' ] } - { item [ ' name ' ] } - { item [ ' agreementStatus ' ] } " )
additionsEndpoint = ' /finance/agreements/ ' + str ( item [ ' id ' ] ) + ' /additions '
additions = apiGetRequest ( api_base , additionsEndpoint , { ' pagesize ' : 50 } , headers )
for thing in additions :
print ( ' ' + thing [ ' product ' ] [ ' identifier ' ] )