From 83569230701b17a0c24c1c9bdd197629649d92bc Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Mon, 19 Dec 2022 22:19:49 -0800 Subject: update bsky getProfile schema --- adenosine-pds/src/bsky.rs | 7 +++++++ adenosine-pds/src/models.rs | 20 ++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/adenosine-pds/src/bsky.rs b/adenosine-pds/src/bsky.rs index d2ae827..7be72f0 100644 --- a/adenosine-pds/src/bsky.rs +++ b/adenosine-pds/src/bsky.rs @@ -104,14 +104,21 @@ pub fn bsky_get_profile(srv: &mut AtpService, did: &Did) -> Result { .conn .prepare_cached("SELECT COUNT(*) FROM bsky_follow WHERE subject_did = $1")?; let followers_count: u64 = stmt.query_row(params!(did.to_string()), |row| row.get(0))?; + let decl = DeclRef { + actorType: "app.bsky.system.actorUser".to_string(), + cid: "bafyreid27zk7lbis4zw5fz4podbvbs4fc5ivwji3dmrwa6zggnj4bnd57u".to_string(), + }; Ok(Profile { did: did.to_string(), handle, + creator: did.to_string(), displayName: display_name, description, + declaration: decl, followersCount: followers_count, followsCount: follows_count, postsCount: post_count, + membersCount: 0, myState: json!({}), }) } diff --git a/adenosine-pds/src/models.rs b/adenosine-pds/src/models.rs index 32f9f71..5bf4329 100644 --- a/adenosine-pds/src/models.rs +++ b/adenosine-pds/src/models.rs @@ -118,15 +118,35 @@ pub struct ProfileRecord { pub description: Option, } +// app.bsky.system.actorUser or app.bsky.system.actorScene +#[allow(non_snake_case)] +#[derive(Debug, serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq)] +pub struct Declaration { + pub actorType: String, +} + +// actorType: app.bsky.system.actorUser +// cid: bafyreid27zk7lbis4zw5fz4podbvbs4fc5ivwji3dmrwa6zggnj4bnd57u +#[allow(non_snake_case)] +#[derive(Debug, serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq)] +pub struct DeclRef { + pub actorType: String, + pub cid: String, +} + #[allow(non_snake_case)] #[derive(Debug, serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq)] pub struct Profile { pub did: String, + pub declaration: DeclRef, pub handle: String, + // for simple accounts, 'creator' is just the did + pub creator: String, pub displayName: Option, pub description: Option, pub followersCount: u64, pub followsCount: u64, + pub membersCount: u64, pub postsCount: u64, pub myState: serde_json::Value, } -- cgit v1.2.3