coder/builders/registries/
get.rs

1imports!();
2
3new_builder!(
4    /// `/api/registries/:id`
5    GlobalRegistry,
6    /// `/api/registries`
7    GlobalRegistries,
8    /// `/api/orgs/:id/registries`
9    OrgRegistries
10);
11
12use crate::builders::orgs::get::OrgBuilder;
13
14exec!(
15    GlobalRegistry -> crate::models::Registry,
16    GlobalRegistries -> Vec<crate::models::Registry>,
17
18    OrgRegistries -> Vec<crate::models::Registry>,
19);
20
21from!(
22    @Org
23        -> OrgRegistries,
24    @GlobalRegistries
25        -> GlobalRegistry,
26);
27
28impl_client!(
29    /// Begins a global registry query.
30    -> registries ["registries"] -> GlobalRegistries,
31);
32
33impl_builder!(
34    @Org
35        /// Queries all registries in an organization.
36        -> registries ["registries"] -> OrgRegistries,
37    @GlobalRegistries
38        /// Queries a specific registry in an organization by its id.
39        => get [] -> GlobalRegistry = id,
40);
41
42#[cfg(test)]
43mod test {
44    use crate::client::test::{client, ids::*};
45    use crate::client::Executor;
46
47    #[tokio::test]
48    async fn test_registry() {
49        let c = client();
50
51        let res = c
52            .registries()
53            .get(REG_ID)
54            .execute()
55            .await
56            .expect("send request")
57            .response
58            .expect("api error returned");
59
60        // id shouldn't be empty
61        assert_ne!(res.id, "");
62    }
63
64    mod org {
65        use super::*;
66
67        #[tokio::test]
68        async fn test_org_registries() {
69            let c = client();
70
71            let res = c
72                .orgs()
73                .get(ORG_ID)
74                .registries()
75                .execute()
76                .await
77                .expect("send request")
78                .response
79                .expect("api error returned");
80
81            // we should get at least 1
82            assert_ne!(res.len(), 0);
83
84            // they should all have non-empty ids
85            let ok = res.iter().fold(false, |ok, reg| ok || reg.id != "");
86            assert_eq!(ok, true);
87        }
88    }
89}