mediafire_rs 0.1.1

Downloads files and folders from mediafire
use crate::types::permissions::Permissions;
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug)]
pub struct File {
    pub quickkey: String,
    pub hash: String,
    pub filename: String,
    pub description: String,
    pub size: String,
    pub privacy: String,
    pub created: String,
    pub password_protected: String,
    pub mimetype: String,
    pub filetype: String,
    pub view: String,
    pub edit: String,
    pub revision: String,
    pub flag: String,
    pub permissions: Permissions,
    pub downloads: String,
    pub views: String,
    pub links: Links,
    pub created_utc: String,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct Links {
    pub normal_download: String,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct FileInfo {
    pub quickkey: String,
    pub filename: String,
    pub ready: String,
    pub created: String,
    pub description: String,
    pub size: String,
    pub privacy: String,
    pub password_protected: String,
    pub hash: String,
    pub filetype: String,
    pub mimetype: String,
    pub owner_name: String,
    pub flag: String,
    pub permissions: Permissions,
    pub revision: String,
    pub view: String,
    pub edit: String,
    pub links: Links,
    pub created_utc: String,
}

impl From<FileInfo> for File {
    fn from(file_info: FileInfo) -> Self {
        File {
            quickkey: file_info.quickkey,
            hash: file_info.hash,
            filename: file_info.filename,
            description: file_info.description,
            size: file_info.size,
            privacy: file_info.privacy,
            created: file_info.created,
            password_protected: file_info.password_protected,
            mimetype: file_info.mimetype,
            filetype: file_info.filetype,
            view: file_info.view,
            edit: file_info.edit,
            revision: file_info.revision,
            flag: file_info.flag,
            permissions: file_info.permissions,
            downloads: "".to_string(),
            views: "".to_string(),
            links: file_info.links,
            created_utc: file_info.created_utc,
        }
    }
}