@@ -3,7 +3,13 @@ import {
33 resetUserPassword ,
44} from '@openops/common' ;
55import { AppSystemProp , logger , system } from '@openops/server-shared' ;
6- import { OrganizationRole , Provider , User } from '@openops/shared' ;
6+ import {
7+ Organization ,
8+ OrganizationRole ,
9+ Project ,
10+ Provider ,
11+ User ,
12+ } from '@openops/shared' ;
713import { authenticationService } from '../../authentication/basic/authentication-service' ;
814import { openopsTables } from '../../openops-tables' ;
915import { authenticateAdminUserInOpenOpsTables } from '../../openops-tables/auth-admin-tables' ;
@@ -27,9 +33,19 @@ export const upsertAdminUser = async (): Promise<void> => {
2733 const { workspaceId, databaseId, databaseToken } =
2834 await ensureOpenOpsTablesWorkspaceAndDatabaseExist ( ) ;
2935
30- await ensureOrganizationExists ( user ) ;
36+ const organization = await ensureOrganizationExists ( user ) ;
37+
38+ const userWithOrganization = {
39+ ...user ,
40+ organizationId : organization . id ,
41+ } ;
3142
32- await ensureProjectExists ( user , databaseId , workspaceId , databaseToken ) ;
43+ await ensureProjectExists (
44+ userWithOrganization ,
45+ databaseId ,
46+ workspaceId ,
47+ databaseToken ,
48+ ) ;
3349 }
3450} ;
3551
@@ -107,7 +123,7 @@ async function ensureOpenOpsTablesWorkspaceAndDatabaseExist(): Promise<{
107123 return { workspaceId, databaseId, databaseToken } ;
108124}
109125
110- async function ensureOrganizationExists ( user : User ) : Promise < void > {
126+ async function ensureOrganizationExists ( user : User ) : Promise < Organization > {
111127 if ( user . organizationId ) {
112128 const existingOrganization = await organizationService . getOne (
113129 user . organizationId ,
@@ -119,23 +135,25 @@ async function ensureOrganizationExists(user: User): Promise<void> {
119135 ) ;
120136 }
121137
122- return ;
138+ return existingOrganization ;
123139 }
124140
125- const organization = await organizationService . create ( {
141+ return organizationService . create ( {
126142 ownerId : user . id ,
127143 name : DEFAULT_ORGANIZATION_NAME ,
128144 } ) ;
129-
130- user . organizationId = organization . id ;
131145}
132146
147+ type UserWithOrganization = User & {
148+ organizationId : string ;
149+ } ;
150+
133151async function ensureProjectExists (
134- user : User ,
152+ user : UserWithOrganization ,
135153 databaseId : number ,
136154 workspaceId : number ,
137155 databaseToken : string ,
138- ) : Promise < void > {
156+ ) : Promise < Project > {
139157 const project = await projectService . getOneForUser ( user ) ;
140158 if ( project ) {
141159 if ( project . tablesDatabaseId !== databaseId ) {
@@ -150,13 +168,13 @@ async function ensureProjectExists(
150168 ) ;
151169 }
152170
153- return ;
171+ return project ;
154172 }
155173
156- await projectService . create ( {
174+ return projectService . create ( {
157175 displayName : `${ user . firstName } 's Project` ,
158176 ownerId : user . id ,
159- organizationId : user . organizationId ! ,
177+ organizationId : user . organizationId ,
160178 tablesDatabaseId : databaseId ,
161179 tablesWorkspaceId : workspaceId ,
162180 tablesDatabaseToken : databaseToken ,
0 commit comments