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
[api] fix wrong loved song date
tsiry-sandratraina.com
8 months ago
ffcced84
bfcab309
+11
-6
1 changed file
expand all
collapse all
unified
split
apps
api
src
xrpc
app
rocksky
actor
getActorLovedSongs.ts
+11
-6
apps/api/src/xrpc/app/rocksky/actor/getActorLovedSongs.ts
···
18
18
Effect.catchAll((err) => {
19
19
console.error(err);
20
20
return Effect.succeed({ tracks: [] });
21
21
-
})
21
21
+
}),
22
22
);
23
23
server.app.rocksky.actor.getActorLovedSongs({
24
24
handler: async ({ params }) => {
···
45
45
.from(tables.lovedTracks)
46
46
.leftJoin(
47
47
tables.tracks,
48
48
-
eq(tables.lovedTracks.trackId, tables.tracks.id)
48
48
+
eq(tables.lovedTracks.trackId, tables.tracks.id),
49
49
)
50
50
.leftJoin(tables.users, eq(tables.lovedTracks.userId, tables.users.id))
51
51
.where(
52
52
or(
53
53
eq(tables.users.did, params.did),
54
54
-
eq(tables.users.handle, params.did)
55
55
-
)
54
54
+
eq(tables.users.handle, params.did),
55
55
+
),
56
56
)
57
57
.limit(params.limit ?? 10)
58
58
.offset(params.offset ?? 0)
59
59
.orderBy(desc(tables.lovedTracks.createdAt))
60
60
.execute()
61
61
-
.then((rows) => rows.map((row) => row.tracks)),
61
61
+
.then((rows) =>
62
62
+
rows.map((row) => ({
63
63
+
...row.tracks,
64
64
+
createdAt: row.lovedTracks.createdAt,
65
65
+
}))
66
66
+
),
62
67
catch: (error) => new Error(`Failed to retrieve loved songs: ${error}`),
63
68
});
64
69
};
65
70
66
71
const presentation = (
67
67
-
data: SelectTrack[]
72
72
+
data: SelectTrack[],
68
73
): Effect.Effect<{ tracks: SongViewBasic[] }, never> => {
69
74
return Effect.sync(() => ({
70
75
tracks: data.map((track) => ({