tauri-plugin-sumup 0.1.3

Tauri plugin for SumUp payment processing integration on iOS and Android
Documentation
use tauri::{
  plugin::{Builder, TauriPlugin},
  Manager, Runtime,
};

pub use models::*;

mod mobile;

mod commands;
mod error;
mod models;

pub use error::{Error, Result};

use mobile::Sumup;

/// Extensions to [`tauri::App`], [`tauri::AppHandle`] and [`tauri::Window`] to access the sumup APIs.
pub trait SumupExt<R: Runtime> {
  fn sumup(&self) -> &Sumup<R>;
}

impl<R: Runtime, T: Manager<R>> crate::SumupExt<R> for T {
  fn sumup(&self) -> &Sumup<R> {
    self.state::<Sumup<R>>().inner()
  }
}

/// Initializes the plugin.
pub fn init<R: Runtime>() -> TauriPlugin<R> {
  Builder::new("sumup")
    .invoke_handler(tauri::generate_handler![
      commands::init_sumup_sdk,
      commands::is_logged_in,
      commands::logout,
      commands::login_with_token,
      commands::get_merchant,
      commands::prepare_for_checkout,
      commands::present_card_reader_selection,
      commands::checkout
    ])
    .setup(|app, api| {
      let sumup = mobile::init(app, api)?;
      app.manage(sumup);
      Ok(())
    })
    .build()
}