cloud_terrastodon_credentials 0.35.1

Helpers for getting Azure PAT and stuff for Cloud Terrastodon
use reqwest::Url;

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum RestService {
    AzureDevOps,
    MicrosoftGraph,
    AzureResourceManager,
}

impl RestService {
    pub fn infer(url: &Url) -> Option<Self> {
        let host = url.host_str()?.to_ascii_lowercase();
        match host.as_str() {
            "graph.microsoft.com" => Some(Self::MicrosoftGraph),
            "management.azure.com" => Some(Self::AzureResourceManager),
            "dev.azure.com"
            | "vssps.dev.azure.com"
            | "vsrm.dev.azure.com"
            | "vsaex.dev.azure.com"
            | "app.vssps.visualstudio.com" => Some(Self::AzureDevOps),
            _ => None,
        }
    }
}