Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To support adding all of the files in a folder (non-recursive) (use case 1a) we will need to return the total number of files in a folder and the total size of all files in the folder from POST/entity/children.  The proposal is to add a 'partMask' (similar to QueryBundleRequest) with 0x01=count and 0x02=totalFileSizeMB..

REST APIs

DownloadList
List<FileHandleAssociation> filesToDownload
Date updatedOn


DownloadOrder
String orderId
List<FileHandleAssociation> files
Date createdOn
String createdBy
String zipFileName
Long totalSizeMB


DownloadOrderSummary
String orderId
Date createdOn
String zipFileName
Long numberOfFiles
Long totalSizeMB


<<Interface>>

AddRequest


AddFolderRequest
extends
implements AddRequest
String parentId


AddQueryRequest
extends
implements AddRequest
Query query


Name
DownloadOrderRequest
LIst<FileHandleAssociation> subSet
String zipFileName



PhaseDescriptionResponsePathRequest
startAddJob()
File SelectionStart an asynchronous job to add all of the files from either a folder or a view query to the user's DownloadList
JobId
AsyncJobId
PUT
POST /download/list/<userid>/add/async/startAddRequest
File SelectionGet the results of an asynchronous job to add files to a user's download list.DownloadListGET /download/list/<userid>/add
AddRequestgetJobResultsJobIdGET
/async/get/<jobid>
File SelectionAdd a single file to a user's download list.DownloadListPOST /download/list/<userid>/addFileHandleAssociation
Selection ReviewGet a user's download list.DownloadListGET /download/list/<userid>
Selection ReviewRemove a list of file from a user's download list
POST /download/list/<userid>/removeList<FileHandleAssociation>
Selection ReviewClear a user's download list
DELETE /download/list/<userid>
DownloadCreate a DownloadOrder from the user's current download list.DownloadOrderPUT /download/list/<userid>/orderDownloadOrderRequest
Download Order ReviewGet a DownloadOrder given its ID.DownloadOrderGET /download/order/<orderId>
Download Order ReviewStart an asynchronous job to download a download order.AsyncJobIdPOST /download/order/<orderId>/async/start
/add

Download ReviewGet the results of an asynchronous job to download a download order.BulkFileDownloadResponsePOST /download/order/<orderId>/async/get/<jobId>
Download HistoryGet a user's previous download order history in reverse chronological order.Paginated<DownloadOrderSummary>GET /download/order/<userId>/history


Review Notes

  1. Do not use file size to restrict the addition of a file to the list. Allow the user's download list to be larger than the size limit.  Instead block the download of a list if over the size limit.
  2. Download order should include a sub-list so use can choose to download a sub-set of the their list.  This is part of allowing user's download list to be over the max file size.