Skip to content

Commit 23f526d

Browse files
committed
make a util function to link the managed object
1 parent c1c874b commit 23f526d

File tree

5 files changed

+46
-14
lines changed

5 files changed

+46
-14
lines changed

client/packages/lowcoder/src/pages/setting/environments/services/apps.service.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { getManagedApps } from "./enterprise.service";
55
import { App, AppStats } from "../types/app.types";
66
import axios from "axios";
77
import { getManagedObjects, ManagedObject } from "./managed-objects.service";
8+
import { ManagedObjectType, transferManagedObject } from "./managed-objects.service";
89

910

1011
export interface MergedAppsResult {
@@ -122,6 +123,15 @@ export const deployApp = async (params: DeployAppParams): Promise<boolean> => {
122123
}
123124
);
124125

126+
if (response.status === 200) {
127+
await transferManagedObject(
128+
params.applicationId,
129+
params.envId,
130+
params.targetEnvId,
131+
ManagedObjectType.APP
132+
);
133+
}
134+
125135
return response.status === 200;
126136
} catch (error) {
127137
const errorMessage = error instanceof Error ? error.message : 'Failed to deploy app';

client/packages/lowcoder/src/pages/setting/environments/services/datasources.service.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import axios from 'axios';
33
import { message } from "antd";
44
import { DataSource, DataSourceWithMeta } from "../types/datasource.types";
5-
import { getManagedObjects, ManagedObject, ManagedObjectType } from "./managed-objects.service";
5+
import { getManagedObjects, ManagedObject, ManagedObjectType , transferManagedObject } from "./managed-objects.service";
66

77
export interface DataSourceStats {
88
total: number;
@@ -160,6 +160,14 @@ export async function deployDataSource(params: DeployDataSourceParams): Promise<
160160
updateDependenciesIfNeeded: params.updateDependenciesIfNeeded ?? false
161161
}
162162
});
163+
if (response.status === 200) {
164+
await transferManagedObject(
165+
params.datasourceId,
166+
params.envId,
167+
params.targetEnvId,
168+
ManagedObjectType.DATASOURCE
169+
);
170+
}
163171
return response.status === 200;
164172
} catch (error) {
165173
console.error('Error deploying data source:', error);

client/packages/lowcoder/src/pages/setting/environments/services/managed-objects.service.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,3 +190,18 @@ export async function getSingleManagedObject(
190190
}
191191
}
192192

193+
194+
export async function transferManagedObject(objGid: string, sourceEnvId: string, targetEnvId: string, objType: ManagedObjectType): Promise<void> {
195+
try {
196+
const managedObject = await getSingleManagedObject(objGid, sourceEnvId, objType);
197+
if (managedObject) {
198+
await setManagedObject(managedObject.objGid, targetEnvId, objType, managedObject.managedId);
199+
} else {
200+
throw new Error(`Managed object not found for objGid: ${objGid}`);
201+
}
202+
} catch (error) {
203+
console.error('Error transferring managed object:', error);
204+
throw error;
205+
}
206+
}
207+

client/packages/lowcoder/src/pages/setting/environments/services/query.service.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* Get merged queries (both regular and managed) for a workspace
33
*/
44
import axios from 'axios';
5-
import { getManagedObjects, ManagedObject, ManagedObjectType } from './managed-objects.service';
5+
import { getManagedObjects, ManagedObjectType, transferManagedObject } from './managed-objects.service';
66
import { getWorkspaceQueries } from './environments.service';
77
import { Query, QueryStats } from '../types/query.types';
88
export interface MergedQueriesResult {
@@ -82,6 +82,14 @@ export interface MergedQueriesResult {
8282
updateDependenciesIfNeeded: params.updateDependenciesIfNeeded ?? false
8383
}
8484
});
85+
if (response.status === 200) {
86+
await transferManagedObject(
87+
params.queryId,
88+
params.envId,
89+
params.targetEnvId,
90+
ManagedObjectType.QUERY
91+
);
92+
}
8593
return response.status === 200;
8694
} catch (error) {
8795
console.error('Error deploying query:', error);

client/packages/lowcoder/src/pages/setting/environments/services/workspace.service.ts

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// services/workspacesService.ts (or wherever makes sense in your structure)
22
import { message } from "antd";
33
import { getEnvironmentWorkspaces } from "./environments.service";
4-
import { getManagedObjects, getSingleManagedObject, ManagedObject, ManagedObjectType, setManagedObject } from "./managed-objects.service";
4+
import { getManagedObjects, ManagedObject, ManagedObjectType, transferManagedObject } from "./managed-objects.service";
55
import { Workspace } from "../types/workspace.types";
66
import { ManagedOrg } from "../types/enterprise.types";
77
import axios from "axios";
@@ -98,20 +98,11 @@ export async function deployWorkspace(params: {
9898

9999
// After successful deployment, set the managed object in target environment
100100
if (response.status === 200) {
101-
const res = await getSingleManagedObject(
101+
await transferManagedObject(
102102
params.workspaceId,
103103
params.envId,
104-
ManagedObjectType.ORG
105-
);
106-
// managedID => res.managedId
107-
//objGID = res.objGid
108-
// targetEnvId = params.targetEnvId
109-
// objType = ManagedObjectType.ORG
110-
await setManagedObject(
111-
res?.objGid!,
112104
params.targetEnvId,
113-
ManagedObjectType.ORG,
114-
res?.managedId!
105+
ManagedObjectType.ORG
115106
);
116107
}
117108

0 commit comments

Comments
 (0)