eversal_esi/alliance/
routes.rs1use super::{Alliance, AllianceIcon};
2use crate::{get_public, Esi, EsiResult, Response};
3
4impl Esi {
5 pub async fn get_alliances(&self, etag: Option<&str>) -> EsiResult<Response<Vec<i32>>> {
10 let result = get_public::<Vec<i32>>("alliances/", self, None, etag).await?;
11 Ok(result)
12 }
13
14 pub async fn get_alliance(
19 &self,
20 alliance_id: i32,
21 etag: Option<&str>,
22 ) -> EsiResult<Response<Alliance>> {
23 let result =
24 get_public::<Alliance>(&format!("alliances/{}", alliance_id), self, None, etag).await?;
25 Ok(result)
26 }
27
28 pub async fn get_alliance_corporations(
33 &self,
34 alliance_id: i32,
35 etag: Option<&str>,
36 ) -> EsiResult<Response<Vec<i32>>> {
37 let result = get_public::<Vec<i32>>(
38 &format!("alliances/{}/corporations/", alliance_id),
39 self,
40 None,
41 etag,
42 )
43 .await?;
44 Ok(result)
45 }
46
47 pub async fn get_alliance_icons(
52 &self,
53 alliance_id: i32,
54 etag: Option<&str>,
55 ) -> EsiResult<Response<AllianceIcon>> {
56 let result = get_public::<AllianceIcon>(
57 &format!("alliances/{}/icons/", alliance_id),
58 self,
59 None,
60 etag,
61 )
62 .await?;
63 Ok(result)
64 }
65}
66
67#[cfg(test)]
68mod tests {
69 use crate::Esi;
70
71 const OWNER_ID: &str = "1234567890";
72 const CLIENT_ID: &str = "1234567890";
73 const CLIENT_SECRET: &str = "1234567890";
74 const CALLBACK_URL: &str = "https://example.com/callback";
75
76 async fn get_alliance_id() -> i32 {
77 let esi = Esi::new(OWNER_ID, CLIENT_ID, CLIENT_SECRET, CALLBACK_URL, 10);
78 assert!(esi.is_ok());
79 let esi = esi.unwrap();
80 let result = esi.get_alliances(None).await;
81 assert!(result.is_ok());
82 let alliances = result.unwrap().data;
83 assert!(!alliances.is_empty());
84 alliances[0]
85 }
86
87 #[tokio::test]
88 async fn test_get_alliances() {
89 let esi = Esi::new(OWNER_ID, CLIENT_ID, CLIENT_SECRET, CALLBACK_URL, 10);
90 assert!(esi.is_ok());
91 let esi = esi.unwrap();
92 let result = esi.get_alliances(None).await;
93 assert!(result.is_ok());
94 let etag = result.unwrap().headers.etag;
95 let result = esi.get_alliances(Some(&etag)).await;
96 assert!(result.is_err_and(|x| x.status() == 304));
97 }
98
99 #[tokio::test]
100 async fn test_get_alliance() {
101 let esi = Esi::new(OWNER_ID, CLIENT_ID, CLIENT_SECRET, CALLBACK_URL, 10);
102 assert!(esi.is_ok());
103 let esi = esi.unwrap();
104 let alliance_id = get_alliance_id().await;
105 let result = esi.get_alliance(alliance_id, None).await;
106 assert!(result.is_ok());
107 let etag = result.unwrap().headers.etag;
108 let result = esi.get_alliance(alliance_id, Some(&etag)).await;
109 assert!(result.is_err_and(|x| x.status() == 304));
110 }
111
112 #[tokio::test]
113 async fn test_get_alliance_corporations() {
114 let esi = Esi::new(OWNER_ID, CLIENT_ID, CLIENT_SECRET, CALLBACK_URL, 10);
115 assert!(esi.is_ok());
116 let esi = esi.unwrap();
117 let alliance_id = get_alliance_id().await;
118 let result = esi.get_alliance_corporations(alliance_id, None).await;
119 assert!(result.is_ok());
120 let etag = result.unwrap().headers.etag;
121 let result = esi
122 .get_alliance_corporations(alliance_id, Some(&etag))
123 .await;
124 assert!(result.is_err_and(|x| x.status() == 304));
125 }
126
127 #[tokio::test]
128 async fn test_get_alliance_icons() {
129 let esi = Esi::new(OWNER_ID, CLIENT_ID, CLIENT_SECRET, CALLBACK_URL, 10);
130 assert!(esi.is_ok());
131 let esi = esi.unwrap();
132 let alliance_id = get_alliance_id().await;
133 let result = esi.get_alliance_icons(alliance_id, None).await;
134 assert!(result.is_ok());
135 let etag = result.unwrap().headers.etag;
136 let result = esi.get_alliance_icons(alliance_id, Some(&etag)).await;
137 assert!(result.is_err_and(|x| x.status() == 304));
138 }
139}