@@ -2,6 +2,7 @@ import { base } from "$app/paths";
2
2
import { ENABLE_ASSISTANTS } from "$env/static/private" ;
3
3
import { collections } from "$lib/server/database.js" ;
4
4
import type { Assistant } from "$lib/types/Assistant" ;
5
+ import type { User } from "$lib/types/User" ;
5
6
import { error , redirect } from "@sveltejs/kit" ;
6
7
import type { Filter } from "mongodb" ;
7
8
@@ -14,21 +15,25 @@ export const load = async ({ url, locals }) => {
14
15
15
16
const modelId = url . searchParams . get ( "modelId" ) ;
16
17
const pageIndex = parseInt ( url . searchParams . get ( "p" ) ?? "0" ) ;
17
- const createdByName = url . searchParams . get ( "user" ) ;
18
- const createdByCurrentUser = locals . user ?. username && locals . user . username === createdByName ;
18
+ const username = url . searchParams . get ( "user" ) ;
19
+ const createdByCurrentUser = locals . user ?. username && locals . user . username === username ;
19
20
20
- if ( createdByName ) {
21
- const existingUser = await collections . users . findOne ( { username : createdByName } ) ;
22
- if ( ! existingUser ) {
23
- throw error ( 404 , `User "${ createdByName } " doesn't exist` ) ;
21
+ let user : Pick < User , "_id" > | null = null ;
22
+ if ( username ) {
23
+ user = await collections . users . findOne < Pick < User , "_id" > > (
24
+ { username } ,
25
+ { projection : { _id : 1 } }
26
+ ) ;
27
+ if ( ! user ) {
28
+ throw error ( 404 , `User "${ username } " doesn't exist` ) ;
24
29
}
25
30
}
26
31
27
32
// fetch the top assistants sorted by user count from biggest to smallest, filter out all assistants with only 1 users. filter by model too if modelId is provided
28
33
const filter : Filter < Assistant > = {
29
34
...( modelId && { modelId } ) ,
30
35
...( ! createdByCurrentUser && { userCount : { $gt : 1 } } ) ,
31
- ...( createdByName ? { createdByName } : { featured : true } ) ,
36
+ ...( user ? { createdById : user . _id } : { featured : true } ) ,
32
37
} ;
33
38
const assistants = await collections . assistants
34
39
. find ( filter )
0 commit comments