sneedstr/src/usernames/validators.rs
Tony Klink f7b74bd22c
Implemented feature:
- NIP-42 Can be enabled in nix module or as environment variable 'CONFIG_ENABLE_AUTH'
 - NIP-05 Still WIP, but building up slowly
2024-02-08 19:19:03 -06:00

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"))
}