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