//! API endpoints for calendars //! //! pub mod my { //! My calendars pub mod shows { //! Get shows //! //! use time::Date; use crate::smo::EpisodeAirEvent; #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, trakt_macros::Request)] #[trakt( response = Response, endpoint = "/calendars/my/shows/{start_date}/{days}", auth = Required )] pub struct Request { #[serde(with = "crate::iso8601_date")] pub start_date: Date, pub days: u64, } #[derive(Debug, Clone, Eq, PartialEq, Hash, trakt_macros::Response)] pub struct Response(pub Vec); } pub mod new_shows { //! Get new show premieres //! //! use time::Date; use crate::smo::EpisodeAirEvent; #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, trakt_macros::Request)] #[trakt( response = Response, endpoint = "/calendars/my/shows/new/{start_date}/{days}", auth = Required )] pub struct Request { #[serde(with = "crate::iso8601_date")] pub start_date: Date, pub days: u64, } #[derive(Debug, Clone, Eq, PartialEq, Hash, trakt_macros::Response)] pub struct Response(pub Vec); } pub mod season_premiers { //! Get season premieres //! //! use time::Date; use crate::smo::EpisodeAirEvent; #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, trakt_macros::Request)] #[trakt( response = Response, endpoint = "/calendars/my/shows/premieres/{start_date}/{days}", auth = Required )] pub struct Request { #[serde(with = "crate::iso8601_date")] pub start_date: Date, pub days: u64, } #[derive(Debug, Clone, Eq, PartialEq, Hash, trakt_macros::Response)] pub struct Response(pub Vec); } pub mod finales { //! Get show finales //! //! use time::Date; use crate::smo::EpisodeAirEvent; #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, trakt_macros::Request)] #[trakt( response = Response, endpoint = "/calendars/my/shows/finales/{start_date}/{days}", auth = Required )] pub struct Request { #[serde(with = "crate::iso8601_date")] pub start_date: Date, pub days: u64, } #[derive(Debug, Clone, Eq, PartialEq, Hash, trakt_macros::Response)] pub struct Response(pub Vec); } pub mod movies { //! Get movies //! //! use time::Date; use crate::smo::MovieReleaseEvent; #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, trakt_macros::Request)] #[trakt( response = Response, endpoint = "/calendars/my/movies/{start_date}/{days}", auth = Required )] pub struct Request { #[serde(with = "crate::iso8601_date")] pub start_date: Date, pub days: u64, } #[derive(Debug, Clone, Eq, PartialEq, Hash, trakt_macros::Response)] pub struct Response(pub Vec); } pub mod dvd_releases { //! Get DVD releases //! //! use time::Date; use crate::smo::MovieReleaseEvent; #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, trakt_macros::Request)] #[trakt( response = Response, endpoint = "/calendars/my/dvd/{start_date}/{days}", auth = Required )] pub struct Request { #[serde(with = "crate::iso8601_date")] pub start_date: Date, pub days: u64, } #[derive(Debug, Clone, Eq, PartialEq, Hash, trakt_macros::Response)] pub struct Response(pub Vec); } } pub mod all { //! All calendars pub mod new_shows { //! Get all new show premieres //! //! use time::Date; use crate::smo::EpisodeAirEvent; #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, trakt_macros::Request)] #[trakt( response = Response, endpoint = "/calendars/all/shows/new/{start_date}/{days}", auth = Required )] pub struct Request { #[serde(with = "crate::iso8601_date")] pub start_date: Date, pub days: u64, } #[derive(Debug, Clone, Eq, PartialEq, Hash, trakt_macros::Response)] pub struct Response(pub Vec); } pub mod season_premiers { //! Get all season premieres //! //! use time::Date; use crate::smo::EpisodeAirEvent; #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, trakt_macros::Request)] #[trakt( response = Response, endpoint = "/calendars/all/shows/premieres/{start_date}/{days}", auth = Required )] pub struct Request { #[serde(with = "crate::iso8601_date")] pub start_date: Date, pub days: u64, } #[derive(Debug, Clone, Eq, PartialEq, Hash, trakt_macros::Response)] pub struct Response(pub Vec); } pub mod finales { //! Get all show finales //! //! use time::Date; use crate::smo::EpisodeAirEvent; #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, trakt_macros::Request)] #[trakt( response = Response, endpoint = "/calendars/all/shows/finales/{start_date}/{days}", auth = Required )] pub struct Request { #[serde(with = "crate::iso8601_date")] pub start_date: Date, pub days: u64, } #[derive(Debug, Clone, Eq, PartialEq, Hash, trakt_macros::Response)] pub struct Response(pub Vec); } pub mod movies { //! Get all movies //! //! use time::Date; use crate::smo::MovieReleaseEvent; #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, trakt_macros::Request)] #[trakt( response = Response, endpoint = "/calendars/all/movies/{start_date}/{days}", auth = Required )] pub struct Request { #[serde(with = "crate::iso8601_date")] pub start_date: Date, pub days: u64, } #[derive(Debug, Clone, Eq, PartialEq, Hash, trakt_macros::Response)] pub struct Response(pub Vec); } pub mod dvd_releases { //! Get all DVD releases //! //! use time::Date; use crate::smo::MovieReleaseEvent; #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, trakt_macros::Request)] #[trakt( response = Response, endpoint = "/calendars/all/dvd/{start_date}/{days}", auth = Required )] pub struct Request { #[serde(with = "crate::iso8601_date")] pub start_date: Date, pub days: u64, } #[derive(Debug, Clone, Eq, PartialEq, Hash, trakt_macros::Response)] pub struct Response(pub Vec); } }