@@ -5,14 +5,15 @@ import { createClient } from "@libsql/client";
5
5
import { drizzle } from "drizzle-orm/libsql" ;
6
6
import { getMembers } from "@acme/extract-functions" ;
7
7
import type { Context , GetMembersEntities , GetMembersSourceControl } from "@acme/extract-functions" ;
8
- import { members , repositoriesToMembers } from "@acme/extract-schema" ;
8
+ import { members , namespaces , repositories , repositoriesToMembers } from "@acme/extract-schema" ;
9
9
import type { Namespace , Repository } from "@acme/extract-schema" ;
10
10
import { GitHubSourceControl , GitlabSourceControl } from "@acme/source-control" ;
11
11
import type { Pagination } from "@acme/source-control" ;
12
12
import { Config } from "sst/node/config" ;
13
13
import { extractMemberPageMessage } from "./messages" ;
14
14
15
15
import { QueueHandler } from "./create-message" ;
16
+ import { eq } from "drizzle-orm" ;
16
17
17
18
const clerkClient = Clerk ( { secretKey : Config . CLERK_SECRET_KEY } ) ;
18
19
const client = createClient ( { url : Config . DATABASE_URL , authToken : Config . DATABASE_AUTH_TOKEN } ) ;
@@ -72,18 +73,26 @@ const extractMembersPage = async ({ namespace, repository, sourceControl, userId
72
73
} ;
73
74
74
75
export const eventHandler = EventHandler ( extractRepositoryEvent , async ( ev ) => {
76
+ if ( ! ev . properties . namespaceId ) throw new Error ( "Missing namespaceId" ) ;
77
+
78
+ const repository = await db . select ( ) . from ( repositories ) . where ( eq ( repositories . id , ev . properties . repositoryId ) ) . get ( ) ;
79
+ const namespace = await db . select ( ) . from ( namespaces ) . where ( eq ( namespaces . id , ev . properties . namespaceId ) ) . get ( ) ;
80
+
81
+ if ( ! repository ) throw new Error ( "invalid repo id" ) ;
82
+ if ( ! namespace ) throw new Error ( "Invalid namespace id" ) ;
83
+
75
84
const pagination = await extractMembersPage ( {
76
- namespace : ev . properties . namespace ,
77
- repository : ev . properties . repository ,
85
+ namespace : namespace ,
86
+ repository : repository ,
78
87
sourceControl : ev . metadata . sourceControl ,
79
88
userId : ev . metadata . userId ,
80
89
} ) ;
81
90
82
91
const arrayOfExtractMemberPageMessageContent : { repository : Repository , namespace : Namespace | null , pagination : Pagination } [ ] = [ ] ;
83
92
for ( let i = 2 ; i <= pagination . totalPages ; i ++ ) {
84
93
arrayOfExtractMemberPageMessageContent . push ( {
85
- namespace : ev . properties . namespace ,
86
- repository : ev . properties . repository ,
94
+ namespace : namespace ,
95
+ repository : repository ,
87
96
pagination : {
88
97
page : i ,
89
98
perPage : pagination . perPage ,
0 commit comments