Feature #8688

Updated by Tom Clegg over 5 years ago

The API call will have these arguments:

a) a unique identifier for the external data provider

b) the 3rd party activity identifier for the pgp participant which was sent to the data provider when the participant signed up for the activity

c) a payload which indicates what file(s) to import. Details of the format of that payload are TBD, but at a minimum it should probably be a collection of URLs, ideally associated with a file type for each individual file to download. The URLs _should_ include either a manifest file with MD5 digests (like http://cdimage.debian.org/debian-cd/8.3.0/amd64/iso-cd/MD5SUMS), or an @*.md5@ file for each data file. The size of each file should also be included.

h2. Acceptance criteria Implementation

Given a @POST /third_party/study/add_dataset@ request: New UserFile attributes
# Ensure @study_id@ and @participant_id@ params correspond to a participant who is participating in the study (otherwise HTTP 4xx) * <pre>
t.datetime "sent_notification_at"
t.datetime "seen_by_participant_at"
t.datetime "published_at"
t.integer "study_id"
t.string "download_job_uuid"

# Ensure @data_sources_tsv@ param is a TSV document, where each line has a URI and a hex md5 digest of the corresponding file data </pre>

New Study attribute

# Respond HTTP 4xx if any parameters are invalid; otherwise 200 * <pre>
t.boolean "contributed_user_files_are_public", :default => true