42 lines
888 B
Rust
42 lines
888 B
Rust
#[macro_use]
|
|
extern crate serde;
|
|
#[macro_use]
|
|
extern crate serde_json;
|
|
#[macro_use]
|
|
extern crate sugars;
|
|
|
|
pub mod migrations;
|
|
pub mod state;
|
|
|
|
// pub mod mail;
|
|
pub mod messaging;
|
|
#[cfg(test)]
|
|
mod tests;
|
|
|
|
use std::fmt;
|
|
|
|
pub use crate::state::AppState;
|
|
|
|
use anyhow::{bail, Result};
|
|
use serde_json::Value;
|
|
use uuid::Uuid;
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, Hash)]
|
|
pub struct NodeId(pub Uuid);
|
|
|
|
impl fmt::Display for NodeId {
|
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
|
write!(f, "{}", self.0.to_string())
|
|
}
|
|
}
|
|
|
|
pub fn ensure_ok(s: &str) -> Result<()> {
|
|
let status: Value = serde_json::from_str(&s)?;
|
|
let status = status.as_object().unwrap();
|
|
let ok = status.get("ok").unwrap().as_bool().unwrap_or(false);
|
|
if !ok {
|
|
let display = status.get("display").unwrap().as_str().unwrap();
|
|
bail!("shit (error: {display})")
|
|
}
|
|
Ok(())
|
|
}
|