discogs_api/endpoints/
release.rs1use super::Endpoint;
2use crate::Error;
3use reqwest::Url;
4
5pub struct Release;
6
7impl<'de> Endpoint<'de> for Release {
8 type Parameters = isize;
9 type ReturnType = crate::data_types::Release;
10
11 fn build_url(base: &Url, params: Self::Parameters) -> Result<Url, Error> {
12 base.join(&format!("/releases/{params}"))
13 .map_err(|_| Error::UrlError)
14 }
15}
16
17#[cfg(test)]
18mod tests {
19 use super::Release;
20 use crate::{Auth, Client};
21
22 #[test]
23 fn basic() {
24 let id = 27651927;
25 let _data = Client::builder()
26 .build()
27 .unwrap()
28 .get::<Release>(id)
29 .unwrap();
30 }
31
32 #[test]
33 fn with_auth() {
34 let id = 27651927;
35 let pat = std::env::var("discogs-pat")
36 .expect("expected personal access token in env var `discogs-pat`");
37
38 let data = Client::builder()
39 .auth(Auth::Token(pat))
40 .build()
41 .unwrap()
42 .get::<Release>(id)
43 .unwrap();
44
45 assert!(!data.images.as_ref().unwrap()[0].resource_url.is_empty());
46 }
47}