feat: onboarding

This commit is contained in:
reya
2024-05-09 15:06:42 +07:00
parent c8e1b8b8bd
commit 777eb15b4f
18 changed files with 562 additions and 63 deletions

View File

@@ -82,6 +82,45 @@ pub async fn get_activities(
}
}
#[tauri::command]
pub async fn friend_to_friend(npub: &str, state: State<'_, Nostr>) -> Result<bool, String> {
let client = &state.client;
match PublicKey::from_bech32(npub) {
Ok(author) => {
let mut contact_list: Vec<Contact> = Vec::new();
let contact_list_filter = Filter::new()
.author(author)
.kind(Kind::ContactList)
.limit(1);
if let Ok(contact_list_events) = client.get_events_of(vec![contact_list_filter], None).await {
for event in contact_list_events.into_iter() {
for tag in event.into_iter_tags() {
if let Tag::PublicKey {
public_key,
relay_url,
alias,
uppercase: false,
} = tag
{
contact_list.push(Contact::new(public_key, relay_url, alias))
}
}
}
}
println!("contact list: {}", contact_list.len());
match client.set_contact_list(contact_list).await {
Ok(_) => Ok(true),
Err(err) => Err(err.to_string()),
}
}
Err(err) => Err(err.to_string()),
}
}
#[tauri::command]
pub async fn get_current_user_profile(state: State<'_, Nostr>) -> Result<Metadata, String> {
let client = &state.client;