public GetOne ( string projectId, string collectionId = null, string collectionKey = null, string dataId = null, string dataKey = null, bool includeChildren = false, int depth = null, int childrenLimit = 100 ) : Task |
||
projectId | string | Project id. |
collectionId | string | Collection idy defining a collection for which data will be returned. |
collectionKey | string | Collection key defining a collection for which data will be returned. |
dataId | string | Data Object's id. |
dataKey | string | Data Object's key. |
includeChildren | bool | If true, include Data Object children as well (recursively). Default value: False. Max 100 of children are shown in one request. |
depth | int | Max depth of children to follow. If not specified, will follow all levels until children limit is reached. |
childrenLimit | int | Limit of children to show (if include_children is True). Default and max value: 100 (some children levels may be incomplete if there are more than this limit). |
Résultat | Task |
public async Task AddChild_ByCollectionKey(DataObjectSyncanoClient client) { //given var newParentRequest = new DataObjectDefinitionRequest(); newParentRequest.ProjectId = TestData.ProjectId; newParentRequest.CollectionId = TestData.CollectionId; var parentObject = await client.New(newParentRequest); var newChildRequest = new DataObjectDefinitionRequest(); newChildRequest.ProjectId = TestData.ProjectId; newChildRequest.CollectionId = TestData.CollectionId; var childObject = await client.New(newChildRequest); //when var result = await client.AddChild(TestData.ProjectId, parentObject.Id, childObject.Id, collectionKey: TestData.CollectionKey); var getResult = await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: parentObject.Id, includeChildren: true); //then result.ShouldBeTrue(); getResult.Children.ShouldNotBeEmpty(); getResult.Children[0].Id.ShouldEqual(childObject.Id); //cleanup var deleteRequest = new DataObjectSimpleQueryRequest(); deleteRequest.ProjectId = TestData.ProjectId; deleteRequest.CollectionId = TestData.CollectionId; await client.Delete(deleteRequest); }
public async Task Move_ByCollectionKey_WithFolderAndState(DataObjectSyncanoClient client) { //given var folderClient = new FolderSyncanoClient(new SyncanoHttpClient(TestData.InstanceName, TestData.BackendAdminApiKey)); var folderOne = await folderClient.New(TestData.ProjectId, "folderOne", TestData.CollectionId); var folderTwo = await folderClient.New(TestData.ProjectId, "folderTwo", TestData.CollectionId); var newRequest = new DataObjectDefinitionRequest(); newRequest.ProjectId = TestData.ProjectId; newRequest.CollectionKey = TestData.CollectionKey; newRequest.Folder = folderOne.Name; newRequest.State = DataObjectState.Pending; var dataObject = await client.New(newRequest); var moveRequest = new DataObjectSimpleQueryRequest(); moveRequest.ProjectId = TestData.ProjectId; moveRequest.CollectionKey = TestData.CollectionKey; moveRequest.DataId = dataObject.Id; //when var result = await client.Move(moveRequest, folderTwo.Name, DataObjectState.Moderated); var resultObject = await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObject.Id); //then result.ShouldBeTrue(); resultObject.Folder.ShouldEqual(folderTwo.Name); //cleanup await client.Delete(moveRequest); await folderClient.Delete(TestData.ProjectId, folderOne.Name, TestData.CollectionId); await folderClient.Delete(TestData.ProjectId, folderTwo.Name, TestData.CollectionId); }
public async Task GetOne_WithToBigLimit_ThrowsException(DataObjectSyncanoClient client) { try { //when await client.GetOne(TestData.ProjectId, collectionId: TestData.CollectionId, childrenLimit: DataObjectSyncanoClient.MaxVauluesPerRequest + 1); throw new Exception("New should throw an exception"); } catch (Exception e) { //then e.ShouldBeType<ArgumentException>(); } }
public async Task GetOne_WithInvalidProjectId_ThrowsException(DataObjectSyncanoClient client) { try { //when await client.GetOne("abc", collectionId: TestData.CollectionId); throw new Exception("New should throw an exception"); } catch (Exception e) { //then e.ShouldBeType<SyncanoException>(); } }
public async Task GetOne_WithNullCollectionIdAndCollectionKey_ThrowsException(DataObjectSyncanoClient client) { try { //when await client.GetOne(TestData.ProjectId); throw new Exception("New should throw an exception"); } catch (Exception e) { //then e.ShouldBeType<ArgumentNullException>(); } }
public async Task GetOne_ByCollectionId_IncludeChildren_CreatesNewDataObject(DataObjectSyncanoClient client) { //given var request = new DataObjectDefinitionRequest(); request.ProjectId = TestData.ProjectId; request.CollectionId = TestData.CollectionId; var parentRequest = new DataObjectDefinitionRequest(); parentRequest.ProjectId = TestData.ProjectId; parentRequest.CollectionId = TestData.CollectionId; var parentResult = await client.New(parentRequest); request.ParentId = parentResult.Id; var childResult = await client.New(request); //when var result = await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: parentResult.Id, includeChildren: true); //then result.ShouldNotBeNull(); result.Id.ShouldEqual(parentResult.Id); result.Children.ShouldNotBeEmpty(); result.Children.Any(d => d.Id == childResult.Id).ShouldBeTrue(); //cleanup var deleteRequest = new DataObjectSimpleQueryRequest(); deleteRequest.ProjectId = TestData.ProjectId; deleteRequest.CollectionId = TestData.CollectionId; deleteRequest.DataId = childResult.Id; await client.Delete(deleteRequest); var parentDeleteRequest = new DataObjectSimpleQueryRequest(); parentDeleteRequest.ProjectId = TestData.ProjectId; parentDeleteRequest.CollectionId = TestData.CollectionId; parentDeleteRequest.DataId = parentResult.Id; await client.Delete(parentDeleteRequest); }
public async Task GetOne_ChildrenTreeParentHierarchyWithLimit_CreatesNewDataObject(DataObjectSyncanoClient client) { //given var newRequest = new DataObjectDefinitionRequest(); newRequest.ProjectId = TestData.ProjectId; newRequest.CollectionKey = TestData.CollectionKey; var dataObject = await client.New(newRequest); newRequest.ParentId = dataObject.Id; var childObject = await client.New(newRequest); newRequest.ParentId = childObject.Id; childObject = await client.New(newRequest); newRequest.ParentId = childObject.Id; await client.New(newRequest); var limit = 2; //when var result = await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObject.Id, includeChildren: true, childrenLimit: limit); //then result.ShouldNotBeNull(); result.Folder.ShouldEqual(newRequest.Folder); result.Id.ShouldEqual(dataObject.Id); result.Children.Count.ShouldEqual(1); result.Children[0].Children.Count.ShouldEqual(1); result.Children[0].Children[0].Children.ShouldBeNull(); //cleanup var deleteRequest = new DataObjectSimpleQueryRequest(); deleteRequest.ProjectId = TestData.ProjectId; deleteRequest.CollectionId = TestData.CollectionId; await client.Delete(deleteRequest); }
public async Task Delete_MultipleFolders(DataObjectSyncanoClient client) { //given var request = new DataObjectDefinitionRequest(); request.ProjectId = TestData.ProjectId; request.CollectionId = TestData.CollectionId; var folderClient = new FolderSyncanoClient(new SyncanoHttpClient(TestData.InstanceName, TestData.BackendAdminApiKey)); var folderOne = await folderClient.New(TestData.ProjectId, "folderOne", TestData.CollectionId); var folderTwo = await folderClient.New(TestData.ProjectId, "folderTwo", TestData.CollectionId); var folderThree = await folderClient.New(TestData.ProjectId, "folderThree", TestData.CollectionId); request.Folder = folderOne.Name; var dataObjectOne = await client.New(request); request.Folder = folderTwo.Name; var dataObjectTwo = await client.New(request); request.Folder = folderThree.Name; var dataObjectThree = await client.New(request); var folders = new List<string> { folderOne.Name, folderTwo.Name }; var deleteRequest = new DataObjectSimpleQueryRequest(); deleteRequest.ProjectId = TestData.ProjectId; deleteRequest.CollectionId = TestData.CollectionId; deleteRequest.Folders = folders; deleteRequest.Folder = folderThree.Name; //when var result = await client.Delete(deleteRequest); //then try { await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObjectOne.Id); throw new Exception("GetOne should throw an exception"); } catch (Exception e) { e.ShouldBeType<SyncanoException>(); } try { await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObjectTwo.Id); throw new Exception("GetOne should throw an exception"); } catch (Exception e) { e.ShouldBeType<SyncanoException>(); } try { await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObjectThree.Id); throw new Exception("GetOne should throw an exception"); } catch (Exception e) { e.ShouldBeType<SyncanoException>(); } result.ShouldBeTrue(); //cleanup await folderClient.Delete(TestData.ProjectId, folderOne.Name, TestData.CollectionId); await folderClient.Delete(TestData.ProjectId, folderTwo.Name, TestData.CollectionId); await folderClient.Delete(TestData.ProjectId, folderThree.Name, TestData.CollectionId); }
public async Task GetOne_FilterByDataKey_CreatesNewDataObject(DataObjectSyncanoClient client) { //given var newRequest = new DataObjectDefinitionRequest(); newRequest.ProjectId = TestData.ProjectId; newRequest.CollectionKey = TestData.CollectionKey; newRequest.DataKey = "testDataKey"; var dataObject = await client.New(newRequest); //when var result = await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataKey: newRequest.DataKey); //then result.ShouldNotBeNull(); result.Folder.ShouldEqual(newRequest.Folder); result.Id.ShouldEqual(dataObject.Id); //cleanup var deleteRequest = new DataObjectSimpleQueryRequest(); deleteRequest.ProjectId = TestData.ProjectId; deleteRequest.CollectionId = TestData.CollectionId; deleteRequest.DataId = result.Id; await client.Delete(deleteRequest); }
public async Task RemoveParent_ByCollectionId_WithoutParentId(DataObjectSyncanoClient client) { //given var newParentRequest = new DataObjectDefinitionRequest(); newParentRequest.ProjectId = TestData.ProjectId; newParentRequest.CollectionId = TestData.CollectionId; var parentObject = await client.New(newParentRequest); var newChildRequest = new DataObjectDefinitionRequest(); newChildRequest.ProjectId = TestData.ProjectId; newChildRequest.CollectionId = TestData.CollectionId; var childObject = await client.New(newChildRequest); await client.AddChild(TestData.ProjectId, parentObject.Id, childObject.Id, TestData.CollectionId); //when var result = await client.RemoveParent(TestData.ProjectId, childObject.Id, collectionId: TestData.CollectionId); var getResult = await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: parentObject.Id, includeChildren: true); //then result.ShouldBeTrue(); getResult.Children.ShouldBeNull(); //cleanup var deleteRequest = new DataObjectSimpleQueryRequest(); deleteRequest.ProjectId = TestData.ProjectId; deleteRequest.CollectionId = TestData.CollectionId; await client.Delete(deleteRequest); }
public async Task Delete_FilterByImageContent(DataObjectSyncanoClient client) { //given var request = new DataObjectDefinitionRequest(); request.ProjectId = TestData.ProjectId; request.CollectionId = TestData.CollectionId; request.ImageBase64 = TestData.ImageToBase64("smallSampleImage.png"); var dataObject = await client.New(request); var deleteRequest = new DataObjectSimpleQueryRequest(); deleteRequest.ProjectId = TestData.ProjectId; deleteRequest.CollectionId = TestData.CollectionId; deleteRequest.DataId = dataObject.Id; deleteRequest.Filter = DataObjectContentFilter.Image; //when var result = await client.Delete(deleteRequest); //then try { await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObject.Id); throw new Exception("GetOne should throw an exception"); } catch (Exception e) { e.ShouldBeType<SyncanoException>(); } result.ShouldBeTrue(); }
public async Task Delete_MultipleDataIds_WithLimit(DataObjectSyncanoClient client) { //given int counter = 0; var request = new DataObjectDefinitionRequest(); request.ProjectId = TestData.ProjectId; request.CollectionId = TestData.CollectionId; var dataObjectOne = await client.New(request); var dataObjectTwo = await client.New(request); var dataObjectThree = await client.New(request); var dataIds = new List<string> { dataObjectTwo.Id, dataObjectThree.Id }; var deleteRequest = new DataObjectSimpleQueryRequest(); deleteRequest.ProjectId = TestData.ProjectId; deleteRequest.CollectionId = TestData.CollectionId; deleteRequest.DataId = dataObjectOne.Id; deleteRequest.DataIds = dataIds; deleteRequest.Limit = 2; //when var result = await client.Delete(deleteRequest); //then try { await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObjectOne.Id); throw new Exception("GetOne should throw an exception"); } catch (Exception e) { if (!(e is SyncanoException)) { ++counter; } } try { await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObjectTwo.Id); throw new Exception("GetOne should throw an exception"); } catch (Exception e) { if (!(e is SyncanoException)) { ++counter; } } try { await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObjectThree.Id); throw new Exception("GetOne should throw an exception"); } catch (Exception e) { if (!(e is SyncanoException)) { ++counter; } } counter.ShouldEqual(1); result.ShouldBeTrue(); //cleanup deleteRequest.Limit = 100; await client.Delete(deleteRequest); }
public async Task Delete_MultipleDataIds(DataObjectSyncanoClient client) { //given var request = new DataObjectDefinitionRequest(); request.ProjectId = TestData.ProjectId; request.CollectionId = TestData.CollectionId; var dataObjectOne = await client.New(request); var dataObjectTwo = await client.New(request); var dataObjectThree = await client.New(request); var dataIds = new List<string> { dataObjectTwo.Id, dataObjectThree.Id }; var deleteRequest = new DataObjectSimpleQueryRequest(); deleteRequest.ProjectId = TestData.ProjectId; deleteRequest.CollectionId = TestData.CollectionId; deleteRequest.DataId = dataObjectOne.Id; deleteRequest.DataIds = dataIds; //when var result = await client.Delete(deleteRequest); //then try { await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObjectOne.Id); throw new Exception("GetOne should throw an exception"); } catch (Exception e) { e.ShouldBeType<SyncanoException>(); } try { await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObjectTwo.Id); throw new Exception("GetOne should throw an exception"); } catch (Exception e) { e.ShouldBeType<SyncanoException>(); } try { await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObjectThree.Id); throw new Exception("GetOne should throw an exception"); } catch (Exception e) { e.ShouldBeType<SyncanoException>(); } result.ShouldBeTrue(); }
public async Task Delete_FilterByStatePending(DataObjectSyncanoClient client) { //given var request = new DataObjectDefinitionRequest(); request.ProjectId = TestData.ProjectId; request.CollectionId = TestData.CollectionId; request.State = DataObjectState.Pending; var dataObject = await client.New(request); var deleteRequest = new DataObjectSimpleQueryRequest(); deleteRequest.ProjectId = TestData.ProjectId; deleteRequest.CollectionId = TestData.CollectionId; deleteRequest.DataId = dataObject.Id; deleteRequest.State = DataObjectState.Pending; //when var result = await client.Delete(deleteRequest); //then try { await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObject.Id); throw new Exception("GetOne should throw an exception"); } catch (Exception e) { e.ShouldBeType<SyncanoException>(); } result.ShouldBeTrue(); }
public async Task RemoveChild_ByCollectionKey_WithOtherChildren(DataObjectSyncanoClient client) { //given var newParentRequest = new DataObjectDefinitionRequest(); newParentRequest.ProjectId = TestData.ProjectId; newParentRequest.CollectionId = TestData.CollectionId; var parentObject = await client.New(newParentRequest); var newOtherRequest = new DataObjectDefinitionRequest(); newOtherRequest.ProjectId = TestData.ProjectId; newOtherRequest.CollectionId = TestData.CollectionId; newOtherRequest.ParentId = parentObject.Id; var otherObject = await client.New(newOtherRequest); var newChildRequest = new DataObjectDefinitionRequest(); newChildRequest.ProjectId = TestData.ProjectId; newChildRequest.CollectionId = TestData.CollectionId; var childObject = await client.New(newChildRequest); await client.AddChild(TestData.ProjectId, parentObject.Id, childObject.Id, TestData.CollectionId); //when var result = await client.RemoveChild(TestData.ProjectId, parentObject.Id, childObject.Id, TestData.CollectionId); var getResult = await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: parentObject.Id, includeChildren: true); //then result.ShouldBeTrue(); getResult.Children.ShouldNotBeEmpty(); getResult.Children.Count.ShouldEqual(1); getResult.Children.Any(d => d.Id == otherObject.Id).ShouldBeTrue(); getResult.Children.Any(d => d.Id == childObject.Id).ShouldBeFalse(); //cleanup var deleteRequest = new DataObjectSimpleQueryRequest(); deleteRequest.ProjectId = TestData.ProjectId; deleteRequest.CollectionId = TestData.CollectionId; await client.Delete(deleteRequest); }
public async Task GetOne_ChildrenDefaultLimit_CreatesNewDataObject(DataObjectSyncanoClient client) { //given var newRequest = new DataObjectDefinitionRequest(); newRequest.ProjectId = TestData.ProjectId; newRequest.CollectionKey = TestData.CollectionKey; var dataObject = await client.New(newRequest); newRequest.ParentId = dataObject.Id; for (int i = 0; i < DataObjectSyncanoClient.MaxVauluesPerRequest + 10; ++i) await client.New(newRequest); //when var result = await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObject.Id, includeChildren: true); //then result.ShouldNotBeNull(); result.Folder.ShouldEqual(newRequest.Folder); result.Id.ShouldEqual(dataObject.Id); result.Children.Count.ShouldEqual(DataObjectSyncanoClient.MaxVauluesPerRequest); //cleanup var deleteRequest = new DataObjectSimpleQueryRequest(); deleteRequest.ProjectId = TestData.ProjectId; deleteRequest.CollectionId = TestData.CollectionId; await client.Delete(deleteRequest); await client.Delete(deleteRequest); }
public async Task Delete_FilterWithStateAll(DataObjectSyncanoClient client) { //given var request = new DataObjectDefinitionRequest(); request.ProjectId = TestData.ProjectId; request.CollectionId = TestData.CollectionId; var dataObjectOne = await client.New(request); var dataObjectTwo = await client.New(request); request.State = DataObjectState.Moderated; request.State = DataObjectState.Rejected; var dataObjectThree = await client.New(request); var deleteRequest = new DataObjectSimpleQueryRequest(); deleteRequest.ProjectId = TestData.ProjectId; deleteRequest.CollectionId = TestData.CollectionId; deleteRequest.State = DataObjectState.All; //when var result = await client.Delete(deleteRequest); //then try { await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObjectOne.Id); throw new Exception("GetOne should throw an exception"); } catch (Exception e) { e.ShouldBeType<SyncanoException>(); } try { await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObjectTwo.Id); throw new Exception("GetOne should throw an exception"); } catch (Exception e) { e.ShouldBeType<SyncanoException>(); } try { await client.GetOne(TestData.ProjectId, TestData.CollectionId, dataId: dataObjectThree.Id); throw new Exception("GetOne should throw an exception"); } catch (Exception e) { e.ShouldBeType<SyncanoException>(); } result.ShouldBeTrue(); }