Added CLI script for testing.

master
Griffiths Lott 3 years ago
parent 4a4d724cf9
commit 64df998aac
  1. 2
      .gitignore
  2. 25
      OnePakCLI.py
  3. 20
      OnePakRequests.py

2
.gitignore vendored

@ -1 +1,3 @@
venv/
__pycache__/
config.json

@ -0,0 +1,25 @@
import argparse
import json
import OnePakRequests as opr
import re
with open("config.json") as configFile:
config = json.load(configFile)
parser = argparse.ArgumentParser(description='Use the OnePak API.')
parser.add_argument("--search", action=argparse.BooleanOptionalAction)
parser.add_argument("--cancel", action=argparse.BooleanOptionalAction)
parser.add_argument("--lease", type=str, required=True)
args = parser.parse_args()
assert re.match("\d{3}-\d{7}-\d{3}", args.lease) != None , f"Invalid lease number: '{args.lease}'"
if args.search:
searchResult = opr.retrieve_return_data(args.lease, config["APIKey"])
print(searchResult)
elif args.cancel:
cancelResult = opr.search_and_cancel(args.lease, config["APIKey"])
print(cancelResult)

@ -1,6 +1,6 @@
import requests as rq
import re
from logging import debug, error, basicConfig
from logging import debug, error, basicConfig, DEBUG, WARNING, ERROR, INFO
import json
with open("config.json") as configFile:
@ -17,15 +17,15 @@ def retrieve_return_data(lease_number: str, apiKey: str, details: bool = False)
"""
debug(f"[I] retrieve_return_data: {lease_number} | deatils: {details}")
if re.match("\d{3}-\d{7}-\d{3}", lease_number) == None:
error(f"[!E!] Invalid lease number: {lease_number}")
error(f"[E] Invalid lease number: {lease_number}")
return {"error": f"Invalid lease number: {lease_number}"}
resp = rq.post(RETURNCENTER_BASE_RL,
json={"action": "get", "lease_number": lease_number, "details": "yes" if details else "no"},
headers={"Content-Type": "application/json"},
auth=(apiKey, ''))
if not resp.ok():
error(f"[!E!] retrieve_return_data: response was unsuccessful: {resp.text}")
return {"error": f"{resp.text}"}
if not resp.ok:
error(f"[E] retrieve_return_data: response was unsuccessful: {resp.text}")
return {"error": f"{resp.status_code} | {resp.text}"}
debug(f"[I] retrieve_return_data: resp: {resp}\n{resp.json()}")
return dict(resp.json())
@ -42,19 +42,19 @@ def cancel_return(ra_number: str, apiKey: str, cancel_reason: str = "No longer n
json={"action": "cancel", "ra_number": ra_number, "reason": cancel_reason},
headers={"Content-Type": "application/json"},
auth=(apiKey, ''))
if not resp.ok():
error(f"[!E!] cancel_return: response was unsuccessful: {resp.text}")
return {"error": f"{resp.text}"}
if not resp.ok:
error(f"[E] cancel_return: response was unsuccessful: {resp.text}")
return {"error": f"{resp.status_code} | {resp.text}"}
debug(f"[I] cancel_return: resp: {resp}\n{resp.json()}")
return dict(resp.json())
def search_and_cancel(lease_number: str, apiKey: str, details: bool = False, cancel_reason: str = "No longer needed") -> dict:
searchResult = retrieve_return_data(lease_number, apiKey, details, cancel_reason)
if "error" in searchResult.keys():
error(f"[!E!] search_and_cancel: Failed to find lease number: {lease_number}\n{searchResult}")
error(f"[E] search_and_cancel: Failed to find lease number: {lease_number}\n{searchResult}")
return searchResult
cancelresult = cancel_return(searchResult["ra_number"], apiKey, cancel_return)
if "error" in cancelresult.keys():
error(f"[!E!] search_and_cancel: Failed to cancel RA: {lease_number} | {searchResult['ra_number']}\n{cancelresult}")
error(f"[E] search_and_cancel: Failed to cancel RA: {lease_number} | {searchResult['ra_number']}\n{cancelresult}")
return searchResult
return {"success": "RA has been canceled"}
Loading…
Cancel
Save