Skip to content

Commit 9666d70

Browse files
committed
Made datastore keys have category
1 parent 485f08a commit 9666d70

File tree

3 files changed

+72
-13
lines changed

3 files changed

+72
-13
lines changed

shuffle-tools/1.2.0/api.yaml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,13 @@ actions:
111111
example: "timestamp"
112112
schema:
113113
type: string
114+
- name: category
115+
description: The category to get the value from. Not required.
116+
required: false
117+
multiline: false
118+
example: "tickets"
119+
schema:
120+
type: string
114121
- name: get_cache_value
115122
description: Get a value saved to your organization in Shuffle
116123
parameters:
@@ -121,6 +128,13 @@ actions:
121128
example: "timestamp"
122129
schema:
123130
type: string
131+
- name: category
132+
description: The category to get the value from. Not required.
133+
required: false
134+
multiline: false
135+
example: "tickets"
136+
schema:
137+
type: string
124138
returns:
125139
schema:
126140
type: string
@@ -141,6 +155,13 @@ actions:
141155
example: "1621959545"
142156
schema:
143157
type: string
158+
- name: category
159+
description: The category to get the value from. Not required.
160+
required: false
161+
multiline: false
162+
example: "tickets"
163+
schema:
164+
type: string
144165
returns:
145166
schema:
146167
type: string
@@ -154,6 +175,13 @@ actions:
154175
example: "timestamp"
155176
schema:
156177
type: string
178+
- name: category
179+
description: The category to get the value from. Not required.
180+
required: false
181+
multiline: false
182+
example: "tickets"
183+
schema:
184+
type: string
157185
returns:
158186
schema:
159187
type: string

shuffle-tools/1.2.0/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ json2xml==5.0.5
88
ipaddress==1.0.23
99
google.auth==2.37.0
1010
paramiko==3.5.0
11-
shuffle-sdk==0.0.12
11+
shuffle-sdk==0.0.13
1212

shuffle-tools/1.2.0/src/app.py

Lines changed: 43 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1826,7 +1826,7 @@ def escape_html(self, input_data):
18261826
result = markupsafe.escape(mapping)
18271827
return mapping
18281828

1829-
def check_cache_contains(self, key, value, append):
1829+
def check_cache_contains(self, key, value, append, category=""):
18301830
org_id = self.full_execution["workflow"]["execution_org"]["id"]
18311831
url = "%s/api/v1/orgs/%s/get_cache" % (self.url, org_id)
18321832
data = {
@@ -1837,8 +1837,11 @@ def check_cache_contains(self, key, value, append):
18371837
"search": str(value),
18381838
"key": key,
18391839
}
1840-
directcall = False
18411840

1841+
if category:
1842+
data["category"] = category
1843+
1844+
directcall = False
18421845
allvalues = {}
18431846
try:
18441847
for item in self.local_storage:
@@ -1879,6 +1882,9 @@ def check_cache_contains(self, key, value, append):
18791882
allvalues = self.shared_cache
18801883

18811884
if "success" not in allvalues:
1885+
if category:
1886+
data["category"] = category
1887+
18821888
get_response = requests.post(url, json=data, verify=False)
18831889
allvalues = get_response.json()
18841890
directcall = True
@@ -1893,22 +1899,28 @@ def check_cache_contains(self, key, value, append):
18931899
if append == True:
18941900
new_value = [str(value)]
18951901
data["value"] = json.dumps(new_value)
1902+
if category:
1903+
data["category"] = category
18961904

18971905
set_url = "%s/api/v1/orgs/%s/set_cache" % (self.url, org_id)
18981906
set_response = requests.post(set_url, json=data, verify=False)
18991907
try:
19001908
allvalues = set_response.json()
19011909
self.shared_cache = self.preload_cache(key=key)
1902-
#allvalues["key"] = key
1903-
#return allvalues
19041910

1911+
1912+
newvalue = data["value"]
1913+
try:
1914+
newvalue = json.loads(data["value"])
1915+
except json.JSONDecodeError:
1916+
pass
19051917

19061918
return {
19071919
"success": True,
19081920
"found": False,
19091921
"key": key,
19101922
"search": value,
1911-
"value": new_value,
1923+
"value": newvalue,
19121924
}
19131925
except Exception as e:
19141926
return {
@@ -2000,6 +2012,7 @@ def check_cache_contains(self, key, value, append):
20002012
if value not in allvalues["value"] and isinstance(allvalues["value"], list):
20012013
self.cache_update_buffer.append(value)
20022014
allvalues["value"].append(value)
2015+
20032016
exception = ""
20042017
try:
20052018
# FIXME: This is a hack, but it works
@@ -2009,20 +2022,26 @@ def check_cache_contains(self, key, value, append):
20092022
new_value = [value]
20102023

20112024
data["value"] = json.dumps(new_value)
2025+
if category:
2026+
data["category"] = category
20122027

20132028
set_url = "%s/api/v1/orgs/%s/set_cache" % (self.url, org_id)
20142029
response = requests.post(set_url, json=data, verify=False)
20152030
allvalues = response.json()
20162031

2017-
#return allvalues
2032+
newvalue = data["value"]
2033+
try:
2034+
newvalue = json.loads(data["value"])
2035+
except:
2036+
pass
20182037

20192038
return {
20202039
"success": True,
20212040
"found": False,
20222041
"reason": f"Appended as it didn't exist",
20232042
"key": key,
20242043
"search": value,
2025-
"value": data["value"],
2044+
"value": newvalue,
20262045
}
20272046
except Exception as e:
20282047
exception = e
@@ -2059,7 +2078,7 @@ def check_cache_contains(self, key, value, append):
20592078
## subkey = "hi", value = "test3", overwrite=False
20602079
## {"subkey": "hi", "value": ["test2", "test3"]}
20612080

2062-
def change_cache_subkey(self, key, subkey, value, overwrite):
2081+
def change_cache_subkey(self, key, subkey, value, overwrite, category=""):
20632082
org_id = self.full_execution["workflow"]["execution_org"]["id"]
20642083
url = "%s/api/v1/orgs/%s/set_cache" % (self.url, org_id)
20652084

@@ -2081,6 +2100,9 @@ def change_cache_subkey(self, key, subkey, value, overwrite):
20812100
"value": value,
20822101
}
20832102

2103+
if category:
2104+
data["category"] = category
2105+
20842106
response = requests.post(url, json=data, verify=False)
20852107
try:
20862108
allvalues = response.json()
@@ -2101,10 +2123,10 @@ def change_cache_subkey(self, key, subkey, value, overwrite):
21012123
self.logger.info("Value couldn't be parsed")
21022124
return response.text
21032125

2104-
def delete_cache_value(self, key):
2105-
return self.delete_cache(key)
2126+
def delete_cache_value(self, key, category=""):
2127+
return self.delete_cache(key, category=category)
21062128

2107-
def get_cache_value(self, key):
2129+
def get_cache_value(self, key, category=""):
21082130
org_id = self.full_execution["workflow"]["execution_org"]["id"]
21092131
url = "%s/api/v1/orgs/%s/get_cache" % (self.url, org_id)
21102132
data = {
@@ -2115,6 +2137,9 @@ def get_cache_value(self, key):
21152137
"key": key,
21162138
}
21172139

2140+
if category:
2141+
data["category"] = category
2142+
21182143
value = requests.post(url, json=data, verify=False)
21192144
try:
21202145
allvalues = value.json()
@@ -2138,7 +2163,7 @@ def get_cache_value(self, key):
21382163
self.logger.info("Value couldn't be parsed, or json dump of value failed")
21392164
return value.text
21402165

2141-
def set_cache_value(self, key, value):
2166+
def set_cache_value(self, key, value, category=""):
21422167
org_id = self.full_execution["workflow"]["execution_org"]["id"]
21432168
url = "%s/api/v1/orgs/%s/set_cache" % (self.url, org_id)
21442169

@@ -2160,6 +2185,9 @@ def set_cache_value(self, key, value):
21602185
"value": value,
21612186
}
21622187

2188+
if category:
2189+
data["category"] = category
2190+
21632191
response = requests.post(url, json=data, verify=False)
21642192
try:
21652193
allvalues = response.json()
@@ -2175,6 +2203,9 @@ def set_cache_value(self, key, value):
21752203
else:
21762204
allvalues["value"] = str(value)
21772205

2206+
if category:
2207+
allvalues["category"] = category
2208+
21782209
return json.dumps(allvalues)
21792210
except:
21802211
self.logger.info("Value couldn't be parsed")

0 commit comments

Comments
 (0)