Skip to content

Commit 6b63521

Browse files
Merge pull request #494 from VH-Lab/feature-replace-existing-dataset-doc
Add replaceExisting option to createRemoteDatasetDoc
2 parents dc05c1f + 2c8c5c4 commit 6b63521

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

src/ndi/+ndi/+cloud/+internal/createRemoteDatasetDoc.m

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
1-
function remoteDatasetDoc = createRemoteDatasetDoc(cloudDatasetId, ndiDataset)
1+
function remoteDatasetDoc = createRemoteDatasetDoc(cloudDatasetId, ndiDataset, options)
22
% createRemoteDatasetDoc - Create NDI document with remote dataset details.
33
%
44
% Syntax:
5-
% remoteDatasetDoc = createRemoteDatasetDoc(cloudDatasetId)
5+
% remoteDatasetDoc = createRemoteDatasetDoc(cloudDatasetId, ndiDataset)
6+
% remoteDatasetDoc = createRemoteDatasetDoc(cloudDatasetId, ndiDataset, 'replaceExisting', true)
7+
%
68
% This function retrieves a remote dataset from the cloud and creates
79
% a "dataset remote" NDI document for that dataset.
810
%
911
% Input Arguments:
1012
% cloudDatasetId - The unique identifier for the cloud dataset to be
1113
% retrieved.
14+
% ndiDataset - The NDI dataset object.
15+
% options.replaceExisting - A boolean that if true, will replace an
16+
% existing remote dataset document.
1217
%
1318
% Output Arguments:
1419
% remoteDatasetDoc - A document object containing the remote dataset
@@ -17,6 +22,17 @@
1722
arguments
1823
cloudDatasetId
1924
ndiDataset (1,1) ndi.dataset
25+
options.replaceExisting (1,1) logical = false
26+
end
27+
28+
[~, existingDoc] = ndi.cloud.internal.getCloudDatasetIdForLocalDataset(ndiDataset);
29+
30+
if ~isempty(existingDoc)
31+
if options.replaceExisting
32+
ndiDataset.database_rm(existingDoc{1}.id());
33+
else
34+
error('An existing remote dataset document was found. Use ''replaceExisting'', true to replace it.');
35+
end
2036
end
2137

2238
[success, remoteDataset] = ndi.cloud.api.datasets.getDataset(cloudDatasetId);

0 commit comments

Comments
 (0)