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