A decentralized music tracking and discovery platform built on AT Protocol 🎵

[api] update playlist subscriber, use drizzle orm

+13 -5
+13 -5
apps/api/src/subscribers/playlist.ts
··· 2 2 import { BlobRef } from "@atproto/lexicon"; 3 3 import chalk from "chalk"; 4 4 import { Context } from "context"; 5 + import { eq } from "drizzle-orm"; 5 6 import * as Playlist from "lexicon/types/app/rocksky/playlist"; 6 7 import { createAgent } from "lib/agent"; 7 8 import downloadImage, { getContentType } from "lib/downloadImage"; 8 9 import { StringCodec } from "nats"; 10 + import tables from "schema"; 9 11 10 12 export function onNewPlaylist(ctx: Context) { 11 13 const sc = StringCodec(); ··· 37 39 return; 38 40 } 39 41 40 - const playlist = await ctx.client.db.playlists 41 - .filter("xata_id", payload.id) 42 - .getFirst(); 42 + const [playlist] = await ctx.db 43 + .select() 44 + .from(tables.playlists) 45 + .where(eq(tables.playlists.id, payload.id)) 46 + .execute(); 43 47 44 48 let rkey = TID.nextStr(); 45 49 ··· 62 66 name: playlist.name, 63 67 description: playlist.description, 64 68 createdAt: new Date().toISOString(), 65 - spotifyLink: playlist.spotify_link, 69 + spotifyLink: playlist.spotifyLink, 66 70 }; 67 71 68 72 if (playlist.picture) { ··· 89 93 }); 90 94 const uri = res.data.uri; 91 95 console.log(`Playlist record created: ${chalk.greenBright(uri)}`); 92 - await ctx.client.db.playlists.update(payload.id, { uri }); 96 + await ctx.db 97 + .update(tables.playlists) 98 + .set({ uri }) 99 + .where(eq(tables.playlists.id, payload.id)) 100 + .execute(); 93 101 } catch (e) { 94 102 console.error(`Failed to put record: ${chalk.redBright(e.message)}`); 95 103 }