Changeset View
Changeset View
Standalone View
Standalone View
native/native_rust_library/src/farcaster.rs
use crate::{ | use crate::{ | ||||
handle_string_result_as_callback, handle_void_result_as_callback, Error, | handle_string_result_as_callback, handle_void_result_as_callback, Error, | ||||
CODE_VERSION, DEVICE_TYPE, IDENTITY_SOCKET_ADDR, RUNTIME, | CODE_VERSION, DEVICE_TYPE, IDENTITY_SOCKET_ADDR, RUNTIME, | ||||
}; | }; | ||||
use grpc_clients::identity::{ | use grpc_clients::identity::{ | ||||
get_auth_client, get_unauthenticated_client, | get_auth_client, get_unauthenticated_client, | ||||
protos::auth::LinkFarcasterAccountRequest, | protos::auth::LinkFarcasterAccountRequest, protos::unauth::Empty, | ||||
protos::unauth::GetFarcasterUsersRequest, | protos::unauth::GetFarcasterUsersRequest, | ||||
}; | }; | ||||
use serde::Serialize; | use serde::Serialize; | ||||
#[derive(Serialize)] | #[derive(Serialize)] | ||||
#[serde(rename_all = "camelCase")] | #[serde(rename_all = "camelCase")] | ||||
struct FarcasterUser { | struct FarcasterUser { | ||||
#[serde(rename = "userID")] | #[serde(rename = "userID")] | ||||
▲ Show 20 Lines • Show All 87 Lines • ▼ Show 20 Lines | let link_farcaster_account_request = | ||||
LinkFarcasterAccountRequest { farcaster_id }; | LinkFarcasterAccountRequest { farcaster_id }; | ||||
identity_client | identity_client | ||||
.link_farcaster_account(link_farcaster_account_request) | .link_farcaster_account(link_farcaster_account_request) | ||||
.await?; | .await?; | ||||
Ok(()) | Ok(()) | ||||
} | } | ||||
pub fn unlink_farcaster_account( | |||||
user_id: String, | |||||
device_id: String, | |||||
access_token: String, | |||||
promise_id: u32, | |||||
) { | |||||
RUNTIME.spawn(async move { | |||||
let result = | |||||
unlink_farcaster_account_helper(user_id, device_id, access_token).await; | |||||
handle_void_result_as_callback(result, promise_id); | |||||
}); | |||||
} | |||||
async fn unlink_farcaster_account_helper( | |||||
user_id: String, | |||||
device_id: String, | |||||
access_token: String, | |||||
) -> Result<(), Error> { | |||||
let mut identity_client = get_auth_client( | |||||
IDENTITY_SOCKET_ADDR, | |||||
user_id, | |||||
device_id, | |||||
access_token, | |||||
CODE_VERSION, | |||||
DEVICE_TYPE.as_str_name().to_lowercase(), | |||||
) | |||||
.await?; | |||||
identity_client.unlink_farcaster_account(Empty {}).await?; | |||||
Ok(()) | |||||
} |