Moved GetAllApps to handler

This commit is contained in:
Kasra Bigdeli
2025-09-02 23:18:48 -07:00
parent 6a35863cd3
commit c3abec0367
3 changed files with 60 additions and 34 deletions
@@ -82,3 +82,49 @@ export async function registerAppDefinition(
throw error
}
}
export interface GetAllAppDefinitionsResult extends BaseHandlerResult {
data: {
appDefinitions: any[]
rootDomain: string
captainSubDomain: string
defaultNginxConfig: any
}
}
export async function getAllAppDefinitions(
dataStore: DataStore,
serviceManager: ServiceManager
): Promise<GetAllAppDefinitionsResult> {
Logger.d('Getting all app definitions started')
try {
const apps = await dataStore.getAppsDataStore().getAppDefinitions()
const appsArray: any[] = []
Object.keys(apps).forEach(function (key) {
const app = apps[key]
app.appName = key
app.isAppBuilding = serviceManager.isAppBuilding(key)
app.appPushWebhook = app.appPushWebhook || undefined
appsArray.push(app)
})
const defaultNginxConfig = await dataStore.getDefaultAppNginxConfig()
Logger.d(`App definitions retrieved: ${appsArray.length} apps`)
return {
message: 'App definitions are retrieved.',
data: {
appDefinitions: appsArray,
rootDomain: dataStore.getRootDomain(),
captainSubDomain: CaptainConstants.configs.captainSubDomain,
defaultNginxConfig: defaultNginxConfig,
},
}
} catch (error: any) {
Logger.e(`Failed to get app definitions: ${error}`)
throw error
}
}
@@ -1,9 +1,12 @@
import express = require('express')
import ApiStatusCodes from '../../../../api/ApiStatusCodes'
import BaseApi from '../../../../api/BaseApi'
import { registerAppDefinition } from '../../../../handlers/users/apps/appdefinition/AppDefinitionHandler'
import {
getAllAppDefinitions,
registerAppDefinition,
} from '../../../../handlers/users/apps/appdefinition/AppDefinitionHandler'
import InjectionExtractor from '../../../../injection/InjectionExtractor'
import { AppDeployTokenConfig, IAppDef } from '../../../../models/AppDefinition'
import { AppDeployTokenConfig } from '../../../../models/AppDefinition'
import CaptainManager from '../../../../user/system/CaptainManager'
import CaptainConstants from '../../../../utils/CaptainConstants'
import Logger from '../../../../utils/Logger'
@@ -59,39 +62,14 @@ router.get('/', function (req, res, next) {
InjectionExtractor.extractUserFromInjected(res).user.dataStore
const serviceManager =
InjectionExtractor.extractUserFromInjected(res).user.serviceManager
const appsArray: IAppDef[] = []
return dataStore
.getAppsDataStore()
.getAppDefinitions()
.then(function (apps) {
const promises: Promise<void>[] = []
Object.keys(apps).forEach(function (key, index) {
const app = apps[key]
app.appName = key
app.isAppBuilding = serviceManager.isAppBuilding(key)
app.appPushWebhook = app.appPushWebhook || undefined
appsArray.push(app)
})
return Promise.all(promises)
})
.then(function () {
return dataStore.getDefaultAppNginxConfig()
})
.then(function (defaultNginxConfig) {
return getAllAppDefinitions(dataStore, serviceManager)
.then(function (result) {
const baseApi = new BaseApi(
ApiStatusCodes.STATUS_OK,
'App definitions are retrieved.'
result.message
)
baseApi.data = {
appDefinitions: appsArray,
rootDomain: dataStore.getRootDomain(),
captainSubDomain: CaptainConstants.configs.captainSubDomain,
defaultNginxConfig: defaultNginxConfig,
}
baseApi.data = result.data
res.send(baseApi)
})
.catch(ApiStatusCodes.createCatcher(res))
@@ -1,5 +1,8 @@
import DataStore from '../../datastore/DataStore'
import { registerAppDefinition } from '../../handlers/users/apps/appdefinition/AppDefinitionHandler'
import {
getAllAppDefinitions,
registerAppDefinition,
} from '../../handlers/users/apps/appdefinition/AppDefinitionHandler'
import { registerProject } from '../../handlers/users/ProjectHandler'
import { IAppDef } from '../../models/AppDefinition'
import { ICaptainDefinition } from '../../models/ICaptainDefinition'
@@ -44,8 +47,7 @@ class ApiManager {
return registerProject(projectDef, this.dataStore)
}
getAllApps(): Promise<any> {
// Mock implementation
return Promise.resolve({ appDefinitions: [] })
return getAllAppDefinitions(this.dataStore, this.serviceManager)
}
updateConfigAndSave(appName: string, appDef: IAppDef): Promise<any> {
// Mock implementation