diff --git a/services/identity/src/client_service.rs b/services/identity/src/client_service.rs --- a/services/identity/src/client_service.rs +++ b/services/identity/src/client_service.rs @@ -875,9 +875,20 @@ async fn get_farcaster_users( &self, - _request: tonic::Request, + request: tonic::Request, ) -> Result, tonic::Status> { - unimplemented!(); + let message = request.into_inner(); + + let farcaster_users = self + .client + .get_farcaster_users(message.farcaster_ids) + .await + .map_err(handle_db_error)? + .into_iter() + .map(|d| d.0) + .collect(); + + Ok(Response::new(GetFarcasterUsersResponse { farcaster_users })) } } diff --git a/services/identity/src/database/farcaster.rs b/services/identity/src/database/farcaster.rs --- a/services/identity/src/database/farcaster.rs +++ b/services/identity/src/database/farcaster.rs @@ -4,7 +4,6 @@ use comm_lib::database::DBItemAttributeError; use comm_lib::database::DBItemError; use comm_lib::database::Value; -use grpc_clients::identity::protos::unauth::FarcasterUser; use tracing::error; use crate::constants::USERS_TABLE; @@ -13,14 +12,15 @@ use crate::constants::USERS_TABLE_PARTITION_KEY; use crate::constants::USERS_TABLE_USERNAME_ATTRIBUTE; use crate::constants::USERS_TABLE_WALLET_ADDRESS_ATTRIBUTE; +use crate::grpc_services::protos::unauth::FarcasterUser; use super::DatabaseClient; use super::Error; -struct FarcasterUserData(FarcasterUser); +pub struct FarcasterUserData(pub FarcasterUser); impl DatabaseClient { - async fn get_farcaster_users( + pub async fn get_farcaster_users( &self, farcaster_ids: Vec, ) -> Result, Error> {