A decentralized music tracking and discovery platform built on AT Protocol 🎵 rocksky.app
spotify atproto lastfm musicbrainz scrobbling listenbrainz

Reuse unwrapped record for JSON parsing

+7 -7
+7 -7
crates/jetstream/src/repo.rs
··· 53 54 match commit.operation.as_str() { 55 "create" => { 56 if commit.collection == SCROBBLE_NSID { 57 let mut tx = pool.begin().await?; 58 - let scrobble_record: ScrobbleRecord = 59 - serde_json::from_value(commit.record.unwrap().clone())?; 60 61 let album_id = save_album(&mut tx, scrobble_record.clone()).await?; 62 let artist_id = save_artist(&mut tx, scrobble_record.clone()).await?; ··· 169 let user_id = save_user(&mut tx, did).await?; 170 let uri = format!("at://{}/app.rocksky.artist/{}", did, commit.rkey); 171 172 - let artist_record: ArtistRecord = serde_json::from_value(commit.record.clone())?; 173 save_user_artist(&mut tx, &user_id, artist_record.clone(), &uri).await?; 174 update_artist_uri(&mut tx, &user_id, artist_record, &uri).await?; 175 ··· 182 let user_id = save_user(&mut tx, did).await?; 183 let uri = format!("at://{}/app.rocksky.album/{}", did, commit.rkey); 184 185 - let album_record: AlbumRecord = serde_json::from_value(commit.record.clone())?; 186 save_user_album(&mut tx, &user_id, album_record.clone(), &uri).await?; 187 update_album_uri(&mut tx, &user_id, album_record, &uri).await?; 188 ··· 196 let user_id = save_user(&mut tx, did).await?; 197 let uri = format!("at://{}/app.rocksky.song/{}", did, commit.rkey); 198 199 - let song_record: SongRecord = serde_json::from_value(commit.record.clone())?; 200 save_user_track(&mut tx, &user_id, song_record.clone(), &uri).await?; 201 update_track_uri(&mut tx, &user_id, song_record, &uri).await?; 202 ··· 211 let uri = format!("at://{}/app.rocksky.feed.generator/{}", did, commit.rkey); 212 213 let feed_generator_record: FeedGeneratorRecord = 214 - serde_json::from_value(commit.record.clone())?; 215 save_feed_generator(&mut tx, &user_id, feed_generator_record, &uri).await?; 216 217 tx.commit().await?; ··· 224 let user_id = save_user(&mut tx, did).await?; 225 let uri = format!("at://{}/app.rocksky.graph.follow/{}", did, commit.rkey); 226 227 - let follow_record: FollowRecord = serde_json::from_value(commit.record)?; 228 let subject_user_id = save_user(&mut tx, &follow_record.subject).await?; 229 save_follow(&mut tx, did, follow_record, &uri).await?; 230
··· 53 54 match commit.operation.as_str() { 55 "create" => { 56 + let record = commit.record.unwrap(); 57 if commit.collection == SCROBBLE_NSID { 58 let mut tx = pool.begin().await?; 59 + let scrobble_record: ScrobbleRecord = serde_json::from_value(record.clone())?; 60 61 let album_id = save_album(&mut tx, scrobble_record.clone()).await?; 62 let artist_id = save_artist(&mut tx, scrobble_record.clone()).await?; ··· 169 let user_id = save_user(&mut tx, did).await?; 170 let uri = format!("at://{}/app.rocksky.artist/{}", did, commit.rkey); 171 172 + let artist_record: ArtistRecord = serde_json::from_value(record.clone())?; 173 save_user_artist(&mut tx, &user_id, artist_record.clone(), &uri).await?; 174 update_artist_uri(&mut tx, &user_id, artist_record, &uri).await?; 175 ··· 182 let user_id = save_user(&mut tx, did).await?; 183 let uri = format!("at://{}/app.rocksky.album/{}", did, commit.rkey); 184 185 + let album_record: AlbumRecord = serde_json::from_value(record.clone())?; 186 save_user_album(&mut tx, &user_id, album_record.clone(), &uri).await?; 187 update_album_uri(&mut tx, &user_id, album_record, &uri).await?; 188 ··· 196 let user_id = save_user(&mut tx, did).await?; 197 let uri = format!("at://{}/app.rocksky.song/{}", did, commit.rkey); 198 199 + let song_record: SongRecord = serde_json::from_value(record.clone())?; 200 save_user_track(&mut tx, &user_id, song_record.clone(), &uri).await?; 201 update_track_uri(&mut tx, &user_id, song_record, &uri).await?; 202 ··· 211 let uri = format!("at://{}/app.rocksky.feed.generator/{}", did, commit.rkey); 212 213 let feed_generator_record: FeedGeneratorRecord = 214 + serde_json::from_value(record.clone())?; 215 save_feed_generator(&mut tx, &user_id, feed_generator_record, &uri).await?; 216 217 tx.commit().await?; ··· 224 let user_id = save_user(&mut tx, did).await?; 225 let uri = format!("at://{}/app.rocksky.graph.follow/{}", did, commit.rkey); 226 227 + let follow_record: FollowRecord = serde_json::from_value(record.clone())?; 228 let subject_user_id = save_user(&mut tx, &follow_record.subject).await?; 229 save_follow(&mut tx, did, follow_record, &uri).await?; 230