freedom_api/extensions/
site.rs1use crate::{Api, error::Error};
2
3use freedom_models::site::{Site, SiteConfiguration};
4
5pub trait SiteConfigurationExt {
6 fn get_id(&self) -> Result<i32, Error>;
7
8 fn get_site<C>(&self, client: &C) -> impl Future<Output = Result<Site, Error>> + Send + Sync
9 where
10 C: Api;
11}
12
13impl SiteConfigurationExt for SiteConfiguration {
14 fn get_id(&self) -> Result<i32, Error> {
15 super::get_id("self", &self.links)
16 }
17
18 async fn get_site<C>(&self, client: &C) -> Result<Site, Error>
19 where
20 C: Api,
21 {
22 super::get_content("site", &self.links, client).await
23 }
24}
25
26pub trait SiteExt {
27 fn get_id(&self) -> Result<i32, Error>;
28
29 fn get_site_configurations<C>(
30 &self,
31 client: &C,
32 ) -> impl Future<Output = Result<Vec<SiteConfiguration>, Error>> + Send + Sync
33 where
34 C: Api;
35}
36
37impl SiteExt for Site {
38 fn get_id(&self) -> Result<i32, Error> {
39 super::get_id("self", &self.links)
40 }
41
42 async fn get_site_configurations<C>(&self, client: &C) -> Result<Vec<SiteConfiguration>, Error>
43 where
44 C: Api,
45 {
46 super::get_embedded("configurations", &self.links, client).await
47 }
48}