mirror of
https://github.com/aljazceru/react-native-pubky.git
synced 2025-12-18 23:24:22 +01:00
feat: setup new methods
Sets up signIn, signUp, signOut, put & get methods. Updates README.md.
This commit is contained in:
@@ -13,18 +13,6 @@ pub async fn authorize(url: String, secret_key: String) -> Vec<String> {
|
||||
Err(error) => return create_response_vector(true, error),
|
||||
};
|
||||
|
||||
// const HOMESERVER: &'static str = "8pinxxgqs41n4aididenw5apqp1urfmzdztr8jt4abrkdn435ewo";
|
||||
// const URL: &'static str = "http://localhost:6287?relay=http://demo.httprelay.io/link";
|
||||
// match client.signin(&keypair).await {
|
||||
// Ok(_) => {}, // Signin successful, continue to send_auth_token
|
||||
// Err(_) => {
|
||||
// match client.signup(&keypair, &PublicKey::try_from(HOMESERVER).unwrap()).await {
|
||||
// Ok(_) => {}, // Signup successful, continue to send_auth_token
|
||||
// Err(error) => return create_response_vector(true, format!("Failed to signup: {}", error)),
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
let parsed_url = match Url::parse(&url) {
|
||||
Ok(url) => url,
|
||||
Err(_) => return create_response_vector(true, "Failed to parse URL".to_string()),
|
||||
|
||||
@@ -24,6 +24,85 @@ use pkarr::dns::ResourceRecord;
|
||||
use serde_json::json;
|
||||
use utils::*;
|
||||
|
||||
#[uniffi::export]
|
||||
pub async fn sign_up(secret_key: String, homeserver: String) -> Vec<String> {
|
||||
let client = PubkyClient::testnet();
|
||||
let keypair = match get_keypair_from_secret_key(&secret_key) {
|
||||
Ok(keypair) => keypair,
|
||||
Err(error) => return create_response_vector(true, error),
|
||||
};
|
||||
|
||||
let homeserver_public_key = match PublicKey::try_from(homeserver) {
|
||||
Ok(key) => key,
|
||||
Err(error) => return create_response_vector(true, format!("Invalid homeserver public key: {}", error)),
|
||||
};
|
||||
|
||||
match client.signup(&keypair, &homeserver_public_key).await {
|
||||
Ok(_) => create_response_vector(false, "signup success".to_string()),
|
||||
Err(error) => create_response_vector(true, format!("signup failure: {}", error)),
|
||||
}
|
||||
}
|
||||
|
||||
#[uniffi::export]
|
||||
pub async fn sign_in(secret_key: String) -> Vec<String> {
|
||||
let client = PubkyClient::testnet();
|
||||
let keypair = match get_keypair_from_secret_key(&secret_key) {
|
||||
Ok(keypair) => keypair,
|
||||
Err(error) => return create_response_vector(true, error),
|
||||
};
|
||||
match client.signin(&keypair).await {
|
||||
Ok(_) => create_response_vector(false, "Sign in success".to_string()),
|
||||
Err(error) => {
|
||||
create_response_vector(true, format!("Failed to sign in: {}", error))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[uniffi::export]
|
||||
pub async fn sign_out(secret_key: String) -> Vec<String> {
|
||||
let client = PubkyClient::testnet();
|
||||
let keypair = match get_keypair_from_secret_key(&secret_key) {
|
||||
Ok(keypair) => keypair,
|
||||
Err(error) => return create_response_vector(true, error),
|
||||
};
|
||||
match client.signout(&keypair.public_key()).await {
|
||||
Ok(_) => create_response_vector(false, "Sign out success".to_string()),
|
||||
Err(error) => {
|
||||
create_response_vector(true, format!("Failed to sign out: {}", error))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[uniffi::export]
|
||||
pub async fn put(url: String, content: String) -> Vec<String> {
|
||||
let client = PubkyClient::testnet();
|
||||
let parsed_url = match Url::parse(&url) {
|
||||
Ok(url) => url,
|
||||
Err(_) => return create_response_vector(true, "Failed to parse URL".to_string()),
|
||||
};
|
||||
match client.put(parsed_url, &content.as_bytes()).await {
|
||||
Ok(_) => create_response_vector(false, "Put success".to_string()),
|
||||
Err(error) => {
|
||||
create_response_vector(true, format!("Failed to put: {}", error))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[uniffi::export]
|
||||
pub async fn get(url: String) -> Vec<String> {
|
||||
let client = PubkyClient::testnet();
|
||||
let parsed_url = match Url::parse(&url) {
|
||||
Ok(url) => url,
|
||||
Err(_) => return create_response_vector(true, "Failed to parse URL".to_string()),
|
||||
};
|
||||
match client.get(parsed_url).await {
|
||||
Ok(_) => create_response_vector(false, "Get success".to_string()),
|
||||
Err(error) => {
|
||||
create_response_vector(true, format!("Failed to get: {}", error))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[uniffi::export]
|
||||
fn resolve(public_key: String) -> Vec<String> {
|
||||
let public_key = match public_key.as_str().try_into() {
|
||||
|
||||
Reference in New Issue
Block a user