tangled
alpha
login
or
join now
rocksky.app
/
rocksky
96
fork
atom
A decentralized music tracking and discovery platform built on AT Protocol 🎵
rocksky.app
spotify
atproto
lastfm
musicbrainz
scrobbling
listenbrainz
96
fork
atom
overview
issues
7
pulls
pipelines
Reuse unwrapped record for JSON parsing
tsiry-sandratraina.com
3 weeks ago
16dd0c28
a85bb62a
+7
-7
1 changed file
expand all
collapse all
unified
split
crates
jetstream
src
repo.rs
+7
-7
crates/jetstream/src/repo.rs
···
53
53
54
54
match commit.operation.as_str() {
55
55
"create" => {
56
56
+
let record = commit.record.unwrap();
56
57
if commit.collection == SCROBBLE_NSID {
57
58
let mut tx = pool.begin().await?;
58
58
-
let scrobble_record: ScrobbleRecord =
59
59
-
serde_json::from_value(commit.record.unwrap().clone())?;
59
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
172
-
let artist_record: ArtistRecord = serde_json::from_value(commit.record.clone())?;
172
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
185
-
let album_record: AlbumRecord = serde_json::from_value(commit.record.clone())?;
185
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
199
-
let song_record: SongRecord = serde_json::from_value(commit.record.clone())?;
199
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
214
-
serde_json::from_value(commit.record.clone())?;
214
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
227
-
let follow_record: FollowRecord = serde_json::from_value(commit.record)?;
227
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