Page MenuHomePhorge

D15181.1765119483.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D15181.1765119483.diff

diff --git a/services/tunnelbroker/src/constants.rs b/services/tunnelbroker/src/constants.rs
--- a/services/tunnelbroker/src/constants.rs
+++ b/services/tunnelbroker/src/constants.rs
@@ -61,6 +61,17 @@
pub const DEVICE_TOKEN_INDEX_NAME: &str = "deviceToken-index";
}
+
+ //FIXME: This is a temporary solution to retrieve the Farcaster-related
+ // data without introducing dependency between services and will be
+ // fixed as part of ENG-11058.
+ pub mod users {
+ pub const TABLE_NAME: &str = "identity-users";
+ pub const PARTITION_KEY: &str = "userID";
+ pub const USERS_TABLE_FARCASTER_ID_ATTRIBUTE_NAME: &str = "farcasterID";
+ pub const USERS_TABLE_FARCASTER_DCS_TOKEN_ATTRIBUTE_NAME: &str =
+ "farcasterDCsToken";
+ }
}
// Log Error Types
diff --git a/services/tunnelbroker/src/database/mod.rs b/services/tunnelbroker/src/database/mod.rs
--- a/services/tunnelbroker/src/database/mod.rs
+++ b/services/tunnelbroker/src/database/mod.rs
@@ -13,7 +13,7 @@
use std::sync::Arc;
use tracing::{debug, error, warn};
-use crate::constants::dynamodb::{device_tokens, undelivered_messages};
+use crate::constants::dynamodb::{device_tokens, undelivered_messages, users};
use crate::constants::error_types;
pub mod message;
@@ -326,4 +326,32 @@
})?;
Ok(())
}
+
+ pub async fn get_farcaster_token(
+ &self,
+ user_id: &str,
+ ) -> Result<Option<String>, Error> {
+ let get_response = self
+ .client
+ .get_item()
+ .table_name(users::TABLE_NAME)
+ .key(users::PARTITION_KEY, AttributeValue::S(user_id.into()))
+ .send()
+ .await
+ .map_err(|e| {
+ error!(
+ errorType = error_types::DDB_ERROR,
+ "DynamoDB client failed to get device farcaster token {:?}", e
+ );
+ Error::AwsSdk(e.into())
+ })?;
+
+ let Some(mut item) = get_response.item else {
+ return Ok(None);
+ };
+
+ let device_token: String =
+ item.take_attr(users::USERS_TABLE_FARCASTER_DCS_TOKEN_ATTRIBUTE_NAME)?;
+ Ok(Some(device_token))
+ }
}

File Metadata

Mime Type
text/plain
Expires
Sun, Dec 7, 2:58 PM (15 h, 10 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5844657
Default Alt Text
D15181.1765119483.diff (2 KB)

Event Timeline