2024-02-03 02:47:23 -05:00
|
|
|
import type { RequestHandler } from '@sveltejs/kit'
|
2024-03-24 16:03:31 -04:00
|
|
|
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
|
2024-03-24 16:03:31 -04:00
|
|
|
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
|
|
|
|
2024-05-28 00:46:34 -04: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
|
|
|
}
|