Skip to content

Commit 57ab369

Browse files
authored
Merge pull request #68 from edanalytics/fix/delete_by_identity_params
GET deletes by identity, not required params
2 parents 48790bb + 29f89d7 commit 57ab369

2 files changed

Lines changed: 7 additions & 2 deletions

File tree

lightbeam/api.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ def __init__(self, lightbeam=None):
2121
self.lightbeam = lightbeam
2222
self.logger = self.lightbeam.logger
2323
self.config = None
24+
self.reports_identity = False
2425

2526
# prepares this API object by fetching some of its metadata and
2627
# setting up data and objects for further use
@@ -248,6 +249,8 @@ def load_swagger_docs(self):
248249
if not response.ok:
249250
raise Exception("OpenAPI metadata URL returned status {0} ({1})".format(response.status_code, (response.content[:75] + "...") if len(response.content)>75 else response.content))
250251
swagger = response.json()
252+
if '"x-Ed-Fi-isIdentity":' in response.text:
253+
self.reports_identity = True
251254

252255
except Exception as e:
253256
self.logger.critical(f"Unable to load {endpoint_type} Swagger from API... terminating. Check API connectivity.")

lightbeam/delete.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,10 @@ async def do_deletes(self, endpoint):
5454
tasks = []
5555

5656
# determine the fields that uniquely define a record for this endpoint
57-
params_structure = self.lightbeam.api.get_params_for_endpoint(endpoint)
58-
57+
interpolation_type = 'required'
58+
if self.lightbeam.api.reports_identity: interpolation_type = 'identity'
59+
params_structure = self.lightbeam.api.get_params_for_endpoint(endpoint, type=interpolation_type)
60+
5961
# for Descriptors, we need to fetch all Descriptor values first, then we can look up the ID for deletion
6062
if endpoint.endswith('Descriptors'):
6163
self.logger.info("fetching current descriptors from endpoint {0} ...".format(endpoint))

0 commit comments

Comments
 (0)