static_valorant_api/endpoints/
contracts.rs1use crate::models::api_result::APIResult;
2use crate::models::contract::Contract;
3use crate::models::language::Language;
4use url::Url;
5use uuid::Uuid;
6
7pub async fn get_contracts(
8 client: &reqwest::Client,
9 language: Option<Language>,
10) -> reqwest::Result<Vec<Contract>> {
11 let mut url = Url::parse("https://valorant-api.com/v1/contracts").unwrap();
12 if let Some(language) = language {
13 url.query_pairs_mut()
14 .append_pair("language", &format!("{}", language));
15 }
16 client
17 .get(url)
18 .send()
19 .await?
20 .json::<APIResult<Vec<_>>>()
21 .await
22 .map(|x| x.data)
23}
24
25pub async fn get_contract(
26 client: &reqwest::Client,
27 contract: Uuid,
28 language: Option<Language>,
29) -> reqwest::Result<Contract> {
30 let mut url = Url::parse(&format!(
31 "https://valorant-api.com/v1/contracts/{}",
32 contract
33 ))
34 .unwrap();
35 if let Some(language) = language {
36 url.query_pairs_mut()
37 .append_pair("language", &format!("{}", language));
38 }
39 client
40 .get(url)
41 .send()
42 .await?
43 .json::<APIResult<_>>()
44 .await
45 .map(|x| x.data)
46}