mirror of
https://github.com/scsibug/nostr-rs-relay.git
synced 2024-11-22 17:19:07 -05:00
70da8eff42
* docs: typo in `build-essential` package name * improvement(NIP-42): use 'restricted:' prefix for auth error msgs * docs: add database maintenance example queries * feat: allow logging output to file * feat: roll over logs daily * refactor: reorder imports * improvement: default to logging on stdout * fix: ensure startup SQL runs, even with zero min writers --------- Co-authored-by: thesimplekid <tsk@thesimplekid.com> Co-authored-by: rorp <rorp@protonmail.com> Co-authored-by: Yuval Adam <_@yuv.al> Co-authored-by: Jamin M <jaminmenter@outlook.com> Co-authored-by: Greg Heartsfield <scsibug@imap.cc>
100 lines
2.4 KiB
Rust
100 lines
2.4 KiB
Rust
pub enum EventResultStatus {
|
|
Saved,
|
|
Duplicate,
|
|
Invalid,
|
|
Blocked,
|
|
RateLimited,
|
|
Error,
|
|
Restricted,
|
|
}
|
|
|
|
pub struct EventResult {
|
|
pub id: String,
|
|
pub msg: String,
|
|
pub status: EventResultStatus,
|
|
}
|
|
|
|
pub enum Notice {
|
|
Message(String),
|
|
EventResult(EventResult),
|
|
AuthChallenge(String),
|
|
}
|
|
|
|
impl EventResultStatus {
|
|
#[must_use]
|
|
pub fn to_bool(&self) -> bool {
|
|
match self {
|
|
Self::Duplicate | Self::Saved => true,
|
|
Self::Invalid | Self::Blocked | Self::RateLimited | Self::Error | Self::Restricted => false,
|
|
}
|
|
}
|
|
|
|
#[must_use]
|
|
pub fn prefix(&self) -> &'static str {
|
|
match self {
|
|
Self::Saved => "saved",
|
|
Self::Duplicate => "duplicate",
|
|
Self::Invalid => "invalid",
|
|
Self::Blocked => "blocked",
|
|
Self::RateLimited => "rate-limited",
|
|
Self::Error => "error",
|
|
Self::Restricted => "restricted",
|
|
}
|
|
}
|
|
}
|
|
|
|
impl Notice {
|
|
//pub fn err(err: error::Error, id: String) -> Notice {
|
|
// Notice::err_msg(format!("{}", err), id)
|
|
//}
|
|
|
|
#[must_use]
|
|
pub fn message(msg: String) -> Notice {
|
|
Notice::Message(msg)
|
|
}
|
|
|
|
fn prefixed(id: String, msg: &str, status: EventResultStatus) -> Notice {
|
|
let msg = format!("{}: {}", status.prefix(), msg);
|
|
Notice::EventResult(EventResult { id, msg, status })
|
|
}
|
|
|
|
#[must_use]
|
|
pub fn invalid(id: String, msg: &str) -> Notice {
|
|
Notice::prefixed(id, msg, EventResultStatus::Invalid)
|
|
}
|
|
|
|
#[must_use]
|
|
pub fn blocked(id: String, msg: &str) -> Notice {
|
|
Notice::prefixed(id, msg, EventResultStatus::Blocked)
|
|
}
|
|
|
|
#[must_use]
|
|
pub fn rate_limited(id: String, msg: &str) -> Notice {
|
|
Notice::prefixed(id, msg, EventResultStatus::RateLimited)
|
|
}
|
|
|
|
#[must_use]
|
|
pub fn duplicate(id: String) -> Notice {
|
|
Notice::prefixed(id, "", EventResultStatus::Duplicate)
|
|
}
|
|
|
|
#[must_use]
|
|
pub fn error(id: String, msg: &str) -> Notice {
|
|
Notice::prefixed(id, msg, EventResultStatus::Error)
|
|
}
|
|
|
|
#[must_use]
|
|
pub fn restricted(id: String, msg: &str) -> Notice {
|
|
Notice::prefixed(id, msg, EventResultStatus::Restricted)
|
|
}
|
|
|
|
#[must_use]
|
|
pub fn saved(id: String) -> Notice {
|
|
Notice::EventResult(EventResult {
|
|
id,
|
|
msg: "".into(),
|
|
status: EventResultStatus::Saved,
|
|
})
|
|
}
|
|
}
|