pushit 0.1.1

A small, cross-platform command-line tool for sending push notifications.
use crate::cli::SendArgs;
use crate::config::Config;
use crate::error::{Error, Result};
use crate::profile::{MessageDefaults, Profile};

pub fn run(args: SendArgs) -> Result<()> {
    let profile_name = match args.profile {
        Some(name) => name,
        None => Config::resolve_default_profile()?.ok_or(Error::NoDefaultProfile)?,
    };

    let (_tier, profile) = Profile::load(&profile_name)?;

    let overrides = MessageDefaults {
        title: args.title,
        priority: args.priority,
        sound: args.sound,
        device: args.device,
        url: args.url,
        url_title: args.url_title,
    };
    let message = profile.message_with_overrides(args.message, overrides);

    profile.build_service().send(&message)
}