Revert "chore: Update dependencies and add thiserror crate (#196)"

This reverts commit e254ee3203.
This commit is contained in:
reya 2024-05-30 15:40:44 +07:00
parent 5f30ddcfca
commit 6676b4e2a4
3 changed files with 276 additions and 383 deletions

598
src-tauri/Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -11,17 +11,16 @@ rust-version = "1.68"
tauri-build = { version = "2.0.0-beta", features = [] }
[dependencies]
thiserror = "1.0"
nostr-sdk = { version = "0.31", features = ["sqlite"] }
tokio = { version = "1", features = ["full"] }
serde_json = "1.0"
serde = { version = "1.0", features = ["derive"] }
tauri = { version = "2.0.0-beta", features = [
"unstable",
"tray-icon",
"macos-private-api",
"native-tls-vendored",
"protocol-asset",
"unstable",
"tray-icon",
"macos-private-api",
"native-tls-vendored",
"protocol-asset",
] }
tauri-plugin-clipboard-manager = "2.1.0-beta"
tauri-plugin-dialog = "2.0.0-beta"

View File

@ -3,45 +3,35 @@ use keyring::Entry;
use nostr_sdk::prelude::*;
use std::{str::FromStr, time::Duration};
use tauri::State;
use thiserror::Error;
use url::Url;
#[derive(Debug, Error)]
enum Error {
#[error(transparent)]
Client(#[from] nostr_sdk::client::Error),
#[error(transparent)]
Key(#[from] nostr_sdk::key::Error),
#[error(transparent)]
Num(#[from] std::num::ParseIntError),
}
impl serde::Serialize for Error {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::ser::Serializer,
{
serializer.serialize_str(self.to_string().as_ref())
}
}
#[tauri::command]
#[specta::specta]
pub async fn get_activities(
account: &str,
kind: &str,
state: State<'_, Nostr>,
) -> Result<Vec<String>, Error> {
) -> Result<Vec<String>, String> {
let client = &state.client;
let public_key = PublicKey::from_str(account)?;
let kind = Kind::from_str(kind)?;
let filter = Filter::new()
.pubkey(public_key)
.kind(kind)
.limit(100)
.until(Timestamp::now());
let events = client.get_events_of(vec![filter], None).await?;
Ok(events.into_iter().map(|ev| ev.as_json()).collect())
if let Ok(pubkey) = PublicKey::from_str(account) {
if let Ok(kind) = Kind::from_str(kind) {
let filter = Filter::new()
.pubkey(pubkey)
.kind(kind)
.limit(100)
.until(Timestamp::now());
match client.get_events_of(vec![filter], None).await {
Ok(events) => Ok(events.into_iter().map(|ev| ev.as_json()).collect()),
Err(err) => Err(err.to_string()),
}
} else {
Err("Kind is not valid, please check again.".into())
}
} else {
Err("Public Key is not valid, please check again.".into())
}
}
#[tauri::command]