cognite/api/data_organization/
relationships.rs1use serde::Serialize;
2
3use crate::api::resource::*;
4use crate::dto::{
5 data_organization::relationships::*,
6 items::{Cursor, ItemsVec},
7};
8use crate::error::Result;
9use crate::{CogniteExternalId, IdentityList, Patch};
10
11pub type RelationshipsResource = Resource<Relationship>;
13
14impl WithBasePath for RelationshipsResource {
15 const BASE_PATH: &'static str = "relationships";
16}
17
18impl Create<AddRelationship, Relationship> for RelationshipsResource {}
19impl Update<Patch<PatchRelationship>, Relationship> for RelationshipsResource {}
20impl<R> DeleteWithIgnoreUnknownIds<IdentityList<R>> for RelationshipsResource
21where
22 IdentityList<R>: Serialize,
23 R: Send + Sync,
24{
25}
26impl FilterWithRequest<FilterRelationshipsQuery, Relationship> for RelationshipsResource {}
27impl RetrieveWithRequest<RetrieveRelationshipsRequest, Relationship> for RelationshipsResource {}
28
29impl RelationshipsResource {
30 pub async fn retrieve(
39 &self,
40 relationship_ids: &[CogniteExternalId],
41 ignore_unknown_ids: bool,
42 fetch_resources: bool,
43 ) -> Result<Vec<Relationship>> {
44 let mut id_items = RetrieveRelationshipsRequest::from(relationship_ids);
45 id_items.fetch_resources = fetch_resources;
46 id_items.ignore_unknown_ids = ignore_unknown_ids;
47 let rel_response: ItemsVec<Relationship, Cursor> = self
48 .api_client
49 .post("relationships/byids", &id_items)
50 .await?;
51 Ok(rel_response.items)
52 }
53}