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