tuta_poll 0.1.0

tuta library to fetch new mails, decrypt them, and mark them as read
Documentation
use crate::http_client::{HttpClient, Method};
use crate::serialize::*;
use anyhow::Result;
use serde::Deserialize;
use tracing::{debug, trace};

#[derive(Deserialize)]
struct Response {
    #[serde(with = "serde_format")]
    _format: (),
    folders: Folders,
}

#[derive(Deserialize)]
struct Folders {
    folders: String,
}

pub async fn fetch(client: &HttpClient, mailbox: &str) -> Result<String> {
    debug!("Fetching mailbox");
    let url = url::Url::parse(super::BASE_URL)?
        .join(format!("/rest/tutanota/mailbox/{}", mailbox).as_str())?;

    let folders = client
        .send(Method::AuthGet, url, None)
        .await?
        .json::<Response>()
        .await?
        .folders
        .folders;

    debug!("Fetched mailbox");
    trace!("mailbox: {:#?}", folders);
    Ok(folders)
}