-
Notifications
You must be signed in to change notification settings - Fork 23
Expand file tree
/
Copy pathrequestor.py
More file actions
102 lines (85 loc) · 2.65 KB
/
requestor.py
File metadata and controls
102 lines (85 loc) · 2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
import requests
class APIRequestor:
"""
A class to simplify request calls to REST API
Attributes
----------
session : session
A requests Session object to be associated with the class
APIMainURL : str
Main URL endpoint for API
Methods
-------
makeRequest(method, endpoint, params=None, returnValue=None)
Make a request to a given API endpoint
post(URL, params=None)
Make a POST request to a given API endpoint
get(URL, params=None)
Make a GET request to a given API endpoint
"""
def __init__(self, session, APIMainURL):
"""
Parameters
----------
session : Session
A requests Session object to be associated with the class
APIMainURL : str
Main URL endpoint for API
"""
self.session = session
self.APIMainURL = APIMainURL
def makeRequest(self, method, endpoint, params=None, returnValue=None):
"""Make a request to a given API endpoint
Parameters
----------
method : str
Specify POST or GET request
endpoint : str
URL endpoint oof API (Does not include base URL)
params : dict
Dictionary of parameters to be passed with request
Returns
-------
Response : Response
A requests response object
"""
URL = self.APIMainURL + endpoint
if method == "POST":
return self.post(URL, params)
elif method == "GET":
return self.get(URL, params)
else:
raise Exception(f"Invalid request method: {method}")
def post(self, URL, params=None):
"""Make a POST request to a given API endpoint
Parameters
----------
URL : str
Full URL endpoint of API
params : dict
Dictionary of parameters to be passed with request
Returns
-------
Response : Response
A requests response object
"""
try:
return self.session.post(URL, params)
except Exception as err:
print(err)
def get(self, URL, params=None):
"""Make a GET request to a given API endpoint
Parameters
----------
URL : str
Full URL endpoint of API
params : dict
Dictionary of parameters to be passed with request
Returns
-------
Response : Response
A requests response object
"""
auth = self.session.headers["Authorization"]
response = requests.get(URL, headers={"Authorization": auth})
return response