Module request

Source
Expand description

Module for Subsonic API requests.

§Example

Building the request to get a song by ID:

    use subsonic_types::{
        common::{Version, Format},
        request::{Request, SubsonicRequest, browsing::GetSong, Authentication}
    };

    let request = Request {
        username: "admin".into(),
        authentication: Authentication::Password("admin".into()),
        version: Version::LATEST,
        client: "Rust Example".into(),
        format: Some(Format::Json.to_string()),
        body: GetSong {
            id: "123".into(),
       },
    };

    let query = request.to_query();
    assert_eq!("u=admin&p=admin&v=1.16.1&c=Rust%20Example&f=json&id=123", query);

Parsing a request:

    use subsonic_types::{
        common::{Version, Format},
        request::{Request, SubsonicRequest, browsing::GetSong, Authentication}
    };

    let query = "u=admin&p=admin&v=1.16.1&c=Rust%20Example&f=json&id=123";
    let request: Request<GetSong> = Request::from_query(query).unwrap();
    let expected = Request {
        username: "admin".into(),
        authentication: Authentication::Password("admin".into()),
        version: Version::LATEST,
        client: "Rust Example".into(),
        format: Some(Format::Json.to_string()),
        body: GetSong {
            id: "123".into(),
       },
    };
    assert_eq!(expected, request);

Modules§

annotation
Media annotation methods
bookmark
Bookmarks methods
browsing
Browing methods
chat
Chat methods
jukebox
Jukebox methods
lists
Albumm/song lists methods
playlists
Playlists methods
podcast
Podcast methods
radio
Internet radio methods
retrieval
Media retrieval methods
scan
Media library scanning methods
search
Searching methods
sharing
Sharing methods
system
System methods System requests.
user
User management methods

Structs§

Request

Enums§

Authentication

Traits§

SubsonicRequest
Trait for Subsonic API requests