aboutsummaryrefslogtreecommitdiff
path: root/trakt-rs/src/api/country.rs
blob: 477a9e5adcba619d5407b2b3a791e3f7a6eb0c62 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! Country-related endpoints
//!
//! <https://trakt.docs.apiary.io/#reference/countries/list>

pub mod list {
    //! List all countries
    //!
    //! <https://trakt.docs.apiary.io/#reference/countries/list/get-countries>

    use serde::{Deserialize, Serialize};
    use smol_str::SmolStr;

    use crate::smo::Country;

    #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, trakt_macros::Request)]
    #[trakt(
    response = Response,
    endpoint = "/countries/{tp}",
    )]
    pub struct Request {
        tp: Type,
    }

    #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, Serialize)]
    #[serde(rename_all = "lowercase")]
    pub enum Type {
        Movies,
        Shows,
    }

    #[derive(Debug, Clone, PartialEq, Eq, Hash, trakt_macros::Response)]
    pub struct Response(Vec<ResponseItem>);

    #[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize)]
    pub struct ResponseItem {
        pub name: SmolStr,
        pub code: Country,
    }
}