nexus_mods_api 0.0.1-alpha

Rust wrapper for the official Nexus Mods API
Documentation
pub mod mod_files;
pub mod mods;

use std::rc::Rc;

use mod_files::ModFiles;
use mods::Mods;
use raxios::{map_string, Raxios, RaxiosConfig};

pub type NexusApiResult<T> = anyhow::Result<T>;

const NEXUS_API_BASE_URL: &'static str = "https://api.nexusmods.com/";

pub struct NexusApi {
    pub mods: Mods,
    pub mod_files: ModFiles,
}

impl NexusApi {
    pub fn new(api_key: &str) -> Self {
        let default_headers = map_string! {
            apikey : api_key
        };

        let raxios = Raxios::new(
            NEXUS_API_BASE_URL,
            Some(RaxiosConfig {
                headers: Some(default_headers),
                ..Default::default()
            }),
        )
        .unwrap();

        let raxios = Rc::new(raxios);
        let mods = Mods::from(&raxios);
        let mod_files = ModFiles::from(&raxios);

        Self { mods, mod_files }
    }
}