Page MenuHomePhorge

D11413.1767101410.diff
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

D11413.1767101410.diff

diff --git a/services/identity/src/grpc_services/authenticated.rs b/services/identity/src/grpc_services/authenticated.rs
--- a/services/identity/src/grpc_services/authenticated.rs
+++ b/services/identity/src/grpc_services/authenticated.rs
@@ -403,6 +403,27 @@
let (user_id, _) = get_user_and_device_id(&request)?;
let message = request.into_inner();
+ let mut get_farcaster_users_response = self
+ .db_client
+ .get_farcaster_users(vec![message.farcaster_id.clone()])
+ .await
+ .map_err(handle_db_error)?;
+
+ if get_farcaster_users_response.len() > 1 {
+ error!("multiple users associated with the same Farcaster ID");
+ return Err(Status::failed_precondition("cannot link Farcaster ID"));
+ }
+
+ if let Some(u) = get_farcaster_users_response.pop() {
+ if u.0.user_id == user_id {
+ return Ok(Response::new(Empty {}));
+ } else {
+ return Err(Status::already_exists(
+ "farcaster ID already associated with different user",
+ ));
+ }
+ }
+
self
.db_client
.add_farcaster_id(user_id, message.farcaster_id)

File Metadata

Mime Type
text/plain
Expires
Tue, Dec 30, 1:30 PM (8 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5867273
Default Alt Text
D11413.1767101410.diff (1 KB)

Event Timeline