Add Support for Pre-Approved Datasets #116
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR updates the record handling logic in our distribution service to differentiate between datasets that require SME approval and those that are pre-approved.
Changes
createRecord()
method to first create records in Salesforce then handle all post-processing (caching, emailing) based on the dataset type, only after successful creation.RECORD_PRE_APPROVED_STATUS
, which is used for datasets that are pre-approved, allowing them to be cached and sent to the user without SME intervention.Leveraged the RPA configuration to identify pre-approved datasets; each dataset ID is mapped to a set of approvers in the configuration file. If no approvers are specified for a given dataset ID, it is considered pre-approved. This is just temporary until we add the new metadata fields.Replaced the configuration-based logic with a metadata-based check: pre-approval is determined by parsing the NERDm metadata, looking for components with "@type" containingnrdp:RestrictedAccessPage
and verifying that thepdr:accessProfile
field has a "@type" value ofrpa:rp0
.RecordResponseHandlerImpl
to handle pre-approved datasets by sending both confirmation and download emails in a single step.Updated workflow
createRecord
will be called with user info.RECORD_PRE_APPROVED_STATUS
if pre-approved; otherwise,RECORD_PENDING_STATUS
.Testing