Skip to content

Commit b4c2eb5

Browse files
authored
Merge pull request #4 from btoron/oci-migration
Added baseUrl
2 parents 9ae16d2 + 784785f commit b4c2eb5

5 files changed

Lines changed: 79 additions & 82 deletions

File tree

Pipfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ requests = "*"
1010
pytest = "*"
1111

1212
[requires]
13-
python_version = "3.7"
13+
python_version = "3.8"

Pipfile.lock

Lines changed: 41 additions & 61 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,5 @@ A simple Python wrapper for Oracle OFS REST API
3535
OFS REST API Version | PyOFSC
3636
------------ | -------------
3737
20C| 1.7
38+
21A| 1.8
3839

ofsc/ofsc_proxy.py

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,20 @@
22
import base64
33
import json
44
import urllib
5-
5+
from urllib.parse import urljoin
66
TEXT_RESPONSE=1
77
FULL_RESPONSE=2
88
JSON_RESPONSE=3
99

1010
class OFSC:
1111

12+
API_PORTAL = "https://api.etadirect.com"
1213

13-
def __init__ (self, clientID, companyName, secret):
14+
def __init__ (self, clientID, companyName, secret, baseUrl=API_PORTAL):
1415
self.headers ={}
1516
self.clientID = clientID
1617
self.companyName = companyName
18+
self.baseUrl = baseUrl
1719
# Calculate Authorization
1820
mypass = base64.b64encode(bytes(clientID+"@"+companyName+":"+secret, 'utf-8'))
1921
self.headers["Authorization"] = "Basic "+mypass.decode('utf-8')
@@ -22,7 +24,8 @@ def __init__ (self, clientID, companyName, secret):
2224

2325
# OFSC Function Library
2426
def get_activities (self, params, response_type=TEXT_RESPONSE):
25-
response = requests.get('https://api.etadirect.com/rest/ofscCore/v1/activities', headers=self.headers, params=params)
27+
url = urljoin(self.baseUrl, "/rest/ofscCore/v1/activities")
28+
response = requests.get(url, headers=self.headers, params=params)
2629
if response_type==FULL_RESPONSE:
2730
return response
2831
elif response_type==JSON_RESPONSE:
@@ -31,7 +34,8 @@ def get_activities (self, params, response_type=TEXT_RESPONSE):
3134
return response.text
3235

3336
def get_activity (self, activity_id, response_type=TEXT_RESPONSE):
34-
response = requests.get('https://api.etadirect.com/rest/ofscCore/v1/activities/' + str(activity_id), headers=self.headers)
37+
url = urljoin(self.baseUrl, "/rest/ofscCore/v1/activities/{}".format(activity_id))
38+
response = requests.get(url, headers=self.headers)
3539
#print (response.status_code)
3640
if response_type==FULL_RESPONSE:
3741
return response
@@ -41,7 +45,8 @@ def get_activity (self, activity_id, response_type=TEXT_RESPONSE):
4145
return response.text
4246

4347
def update_activity (self, activity_id, data, response_type=TEXT_RESPONSE):
44-
response = requests.patch('https://api.etadirect.com/rest/ofscCore/v1/activities/' + str(activity_id), headers=self.headers, data=data)
48+
url = urljoin(self.baseUrl, "/rest/ofscCore/v1/activities/{}".format(activity_id))
49+
response = requests.patch(url, headers=self.headers, data=data)
4550
#print (response.status_code)
4651
if response_type==FULL_RESPONSE:
4752
return response
@@ -51,7 +56,8 @@ def update_activity (self, activity_id, data, response_type=TEXT_RESPONSE):
5156
return response.text
5257

5358
def move_activity (self, activity_id, data, response_type=TEXT_RESPONSE):
54-
response = requests.post('https://api.etadirect.com/rest/ofscCore/v1/activities/' + str(activity_id) + '/custom-actions/move', headers=self.headers, data=data)
59+
url = urljoin(self.baseUrl, "/rest/ofscCore/v1/activities/{}/custom-actions/move".format(activity_id))
60+
response = requests.post(url, headers=self.headers, data=data)
5561
#print (response.status_code)
5662
if response_type==FULL_RESPONSE:
5763
return response
@@ -61,7 +67,8 @@ def move_activity (self, activity_id, data, response_type=TEXT_RESPONSE):
6167
return response.text
6268

6369
def get_subscriptions(self, response_type=TEXT_RESPONSE):
64-
response = requests.get('https://api.etadirect.com/rest/ofscCore/v1/events/subscriptions', headers=self.headers)
70+
url = urljoin(self.baseUrl, "/rest/ofscCore/v1/events/subscriptions")
71+
response = requests.get(url, headers=self.headers)
6572
if response_type==FULL_RESPONSE:
6673
return response
6774
elif response_type==JSON_RESPONSE:
@@ -70,7 +77,8 @@ def get_subscriptions(self, response_type=TEXT_RESPONSE):
7077
return response.text
7178

7279
def create_subscription(self, data, response_type=TEXT_RESPONSE):
73-
response = requests.post('https://api.etadirect.com/rest/ofscCore/v1/events/subscriptions', headers=self.headers, data = data)
80+
url = urljoin(self.baseUrl, "/rest/ofscCore/v1/events/subscriptions")
81+
response = requests.post(url, headers=self.headers, data = data)
7482
if response_type==FULL_RESPONSE:
7583
return response
7684
elif response_type==JSON_RESPONSE:
@@ -79,7 +87,8 @@ def create_subscription(self, data, response_type=TEXT_RESPONSE):
7987
return response.text
8088

8189
def get_subscription_details(self, subscription_id, response_type=TEXT_RESPONSE):
82-
response = requests.get('https://api.etadirect.com/rest/ofscCore/v1/events/subscriptions/{}'.format(str(subscription_id)), headers=self.headers)
90+
url = urljoin(self.baseUrl, "/rest/ofscCore/v1/events/subscriptions/{}".format(str(subscription_id)))
91+
response = requests.get(url, headers=self.headers)
8392
if response_type==FULL_RESPONSE:
8493
return response
8594
elif response_type==JSON_RESPONSE:
@@ -88,6 +97,7 @@ def get_subscription_details(self, subscription_id, response_type=TEXT_RESPONSE)
8897
return response.text
8998

9099
def get_events(self, params, response_type=TEXT_RESPONSE):
100+
url = urljoin(self.baseUrl, "rest/ofscCore/v1/events")
91101
response = requests.get('https://api.etadirect.com/rest/ofscCore/v1/events', headers=self.headers, params=params)
92102
if response_type==FULL_RESPONSE:
93103
return response
@@ -97,6 +107,7 @@ def get_events(self, params, response_type=TEXT_RESPONSE):
97107
return response.text
98108

99109
def get_resource(self, resource_id, inventories=False, workSkills=False, workZones=False, workSchedules=False , response_type=TEXT_RESPONSE):
110+
url = urljoin(self.baseUrl, "/rest/ofscCore/v1/resources/{}".format(str(resource_id)))
100111
data = {}
101112
expand = ""
102113
if inventories:
@@ -120,7 +131,7 @@ def get_resource(self, resource_id, inventories=False, workSkills=False, workZon
120131
if len(expand) > 0:
121132
data['expand'] = expand
122133

123-
response = requests.get('https://api.etadirect.com/rest/ofscCore/v1/resources/{}'.format(str(resource_id)), params=data, headers=self.headers)
134+
response = requests.get(url, params=data, headers=self.headers)
124135

125136
if response_type==FULL_RESPONSE:
126137
return response
@@ -130,9 +141,10 @@ def get_resource(self, resource_id, inventories=False, workSkills=False, workZon
130141
return response.text
131142

132143
def get_position_history(self, resource_id,date,response_type=TEXT_RESPONSE):
144+
url = urljoin(self.baseUrl, "/rest/ofscCore/v1/resources/{}/positionHistory".format(str(resource_id)))
133145
params = {}
134146
params['date'] = date
135-
response = requests.get('https://api.etadirect.com/rest/ofscCore/v1/resources/{}/positionHistory'.format(str(resource_id)), params=params, headers=self.headers)
147+
response = requests.get(url, params=params, headers=self.headers)
136148

137149
if response_type==FULL_RESPONSE:
138150
return response
@@ -142,10 +154,11 @@ def get_position_history(self, resource_id,date,response_type=TEXT_RESPONSE):
142154
return response.text
143155

144156
def get_resource_route(self, resource_id, date, activityFields = None, offset=0, limit=100, response_type=TEXT_RESPONSE):
157+
url = urljoin(self.baseUrl, "/rest/ofscCore/v1/resources/{}/routes/{}".format(str(resource_id), date))
145158
params = {}
146159
if activityFields is not None:
147160
params['activityFields'] = activityFields
148-
response = requests.get('https://api.etadirect.com/rest/ofscCore/v1/resources/{}/routes/{}'.format(str(resource_id),date), params=params, headers=self.headers)
161+
response = requests.get(url, params=params, headers=self.headers)
149162

150163
if response_type==FULL_RESPONSE:
151164
return response
@@ -155,6 +168,7 @@ def get_resource_route(self, resource_id, date, activityFields = None, offset=0,
155168
return response.text
156169

157170
def get_resource_descendants(self, resource_id, resourceFields=None, offset=0, limit=100, inventories=False, workSkills=False, workZones=False, workSchedules=False , response_type=TEXT_RESPONSE):
171+
url = urljoin(self.baseUrl, "/rest/ofscCore/v1/resources/{}/descendants".format(str(resource_id)))
158172
# Calculate expand
159173
params = {}
160174
expand = ""
@@ -184,7 +198,7 @@ def get_resource_descendants(self, resource_id, resourceFields=None, offset=0,
184198
params['limit'] = limit
185199
params['offset']= offset
186200

187-
response = requests.get('https://api.etadirect.com/rest/ofscCore/v1/resources/{}/descendants'.format(str(resource_id)), params=params, headers=self.headers)
201+
response = requests.get(url, params=params, headers=self.headers)
188202

189203
if response_type==FULL_RESPONSE:
190204
return response
@@ -198,12 +212,13 @@ def get_resource_descendants(self, resource_id, resourceFields=None, offset=0,
198212
capacityHeaders = capacityAreasFields.split(",")+additionalCapacityFields
199213

200214
def get_capacity_areas (self, expand="parent", fields=capacityAreasFields, status="active", queryType="area", response_type=FULL_RESPONSE):
215+
url = urljoin(self.baseUrl, "/rest/ofscMetadata/v1/capacityAreas")
201216
params = {}
202217
params["expand"] = expand
203218
params["fields"] = fields
204219
params["status"] = status
205220
params["type"] = queryType
206-
response = requests.get('https://api.etadirect.com/rest/ofscMetadata/v1/capacityAreas', params = params, headers=self.headers)
221+
response = requests.get(url, params = params, headers=self.headers)
207222
if response_type==FULL_RESPONSE:
208223
return response
209224
elif response_type==JSON_RESPONSE:
@@ -213,7 +228,8 @@ def get_capacity_areas (self, expand="parent", fields=capacityAreasFields, statu
213228

214229
def get_capacity_area (self,label, response_type=FULL_RESPONSE):
215230
encoded_label = urllib.parse.quote_plus(label)
216-
response = requests.get('https://api.etadirect.com/rest/ofscMetadata/v1/capacityAreas/{}'.format(encoded_label), headers=self.headers)
231+
url = urljoin(self.baseUrl, "/rest/ofscMetadata/v1/capacityAreas/{}".format(encoded_label))
232+
response = requests.get(url, headers=self.headers)
217233
if response_type==FULL_RESPONSE:
218234
return response
219235
elif response_type==JSON_RESPONSE:

0 commit comments

Comments
 (0)