A decentralized music tracking and discovery platform built on AT Protocol 馃幍
at fix/spotify 30 lines 804 B view raw
1import chalk from "chalk"; 2import type { Context } from "context"; 3import { eq } from "drizzle-orm"; 4import _ from "lodash"; 5import { StringCodec } from "nats"; 6import tables from "schema"; 7 8export function onNewUser(ctx: Context) { 9 const sc = StringCodec(); 10 const sub = ctx.nc.subscribe("rocksky.user"); 11 (async () => { 12 for await (const m of sub) { 13 const payload: { 14 xata_id: string; 15 } = JSON.parse(sc.decode(m.data)); 16 const results = await ctx.db 17 .select() 18 .from(tables.users) 19 .where(eq(tables.users.id, payload.xata_id)) 20 .execute(); 21 22 console.log(`New user: ${chalk.cyan(_.get(results, "0.handle"))}`); 23 24 await ctx.meilisearch.post( 25 `/indexes/users/documents?primaryKey=id`, 26 results, 27 ); 28 } 29 })(); 30}