- NIP-42 Can be enabled in nix module or as environment variable 'CONFIG_ENABLE_AUTH' - NIP-05 Still WIP, but building up slowly
43 lines
1.1 KiB
Rust
43 lines
1.1 KiB
Rust
use super::dto::AccountPubkey;
|
|
use crate::utils::error::Error;
|
|
use nostr::prelude::FromPkStr;
|
|
use validator::{Validate, ValidationError, validate_url};
|
|
|
|
pub async fn validate_account_pubkey_query(
|
|
account_pubkey: AccountPubkey,
|
|
) -> Result<AccountPubkey, Error>
|
|
where
|
|
AccountPubkey: Validate,
|
|
{
|
|
match account_pubkey.validate() {
|
|
Ok(_) => Ok(account_pubkey),
|
|
Err(e) => {
|
|
log::error!("AccountPubkey validation errors: {}", e);
|
|
Err(Error::validation_error(e))
|
|
}
|
|
}
|
|
}
|
|
|
|
pub fn validate_pubkey(value: &str) -> Result<(), ValidationError> {
|
|
if value.is_empty() {
|
|
return Err(ValidationError::new("Value is empty"));
|
|
}
|
|
|
|
match nostr::Keys::from_pk_str(value) {
|
|
Ok(_) => Ok(()),
|
|
Err(_) => Err(ValidationError::new("Failed to parse pubkey")),
|
|
}
|
|
}
|
|
|
|
pub fn validate_relays(relays: &Vec<String>) -> Result<(), ValidationError> {
|
|
if relays.is_empty() {
|
|
return Ok(())
|
|
}
|
|
|
|
if relays.iter().all(validate_url) {
|
|
return Ok(())
|
|
}
|
|
|
|
Err(ValidationError::new("Relays have wrong url format"))
|
|
}
|