Files
Lazuli/src/routes/api/users/[userId]/recommendations/+server.ts

27 lines
1.0 KiB
TypeScript
Raw Normal View History

2024-02-03 02:47:23 -05:00
import type { RequestHandler } from '@sveltejs/kit'
import { Connections } from '$lib/server/connections'
2024-02-03 02:47:23 -05:00
// This is temporary functionally for the sake of developing the app.
2024-02-04 01:01:37 -05:00
// In the future will implement more robust algorithm for offering recommendations
export const GET: RequestHandler = async ({ params }) => {
2024-02-18 00:01:54 -05:00
const userId = params.userId!
2024-02-03 02:47:23 -05:00
const userConnections = Connections.getUserConnections(userId)
if (!userConnections) return new Response('Invalid user id', { status: 400 })
const recommendations = (
await Promise.all(
userConnections.map((connection) =>
connection.getRecommendations().catch((reason) => {
console.log(`Failed to fetch recommendations: ${reason}`)
return undefined
}),
),
)
)
.flat()
.filter((recommendation): recommendation is Song | Album | Artist | Playlist => recommendation?.id !== undefined)
2024-02-04 01:01:37 -05:00
return Response.json({ recommendations })
2024-02-03 02:47:23 -05:00
}