Skip to content

Commit 17bb62a

Browse files
committed
Add deployment config for Query Library
1 parent 8527dd9 commit 17bb62a

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

client/packages/lowcoder/src/pages/setting/environments/config/query.config.tsx

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import { ApiOutlined } from '@ant-design/icons';
55
import { DeployableItemConfig } from '../types/deployable-item.types';
66
import { Query } from '../types/query.types';
77
import { connectManagedQuery, unconnectManagedQuery } from '../services/enterprise.service';
8-
import { getMergedWorkspaceQueries } from '../services/query.service';
8+
import { getMergedWorkspaceQueries, deployQuery } from '../services/query.service';
9+
import { Environment } from '../types/environment.types';
910

1011
// Define QueryStats interface
1112
export interface QueryStats {
@@ -117,5 +118,25 @@ export const queryConfig: DeployableItemConfig<Query, QueryStats> = {
117118
console.error('Error toggling managed status:', error);
118119
return false;
119120
}
121+
},
122+
deploy: {
123+
enabled: true,
124+
fields: [
125+
{
126+
name: 'updateDependenciesIfNeeded',
127+
label: 'Update Dependencies If Needed',
128+
type: 'checkbox',
129+
defaultValue: false
130+
}
131+
],
132+
prepareParams: (item: Query, values: any, sourceEnv: Environment, targetEnv: Environment) => {
133+
return {
134+
envId: sourceEnv.environmentId,
135+
targetEnvId: targetEnv.environmentId,
136+
queryId: item.id,
137+
updateDependenciesIfNeeded: values.updateDependenciesIfNeeded
138+
};
139+
},
140+
execute: (params: any) => deployQuery(params)
120141
}
121142
};

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

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/**
22
* Get merged queries (both regular and managed) for a workspace
33
*/
4+
import axios from 'axios';
45
import { getManagedQueries } from './enterprise.service';
56
import { getWorkspaceQueries } from './environments.service';
67
import { Query } from '../types/query.types';
@@ -12,6 +13,14 @@ export interface MergedQueriesResult {
1213
unmanaged: number;
1314
};
1415
}
16+
17+
export interface DeployQueryParams {
18+
envId: string;
19+
targetEnvId: string;
20+
queryId: string;
21+
updateDependenciesIfNeeded?: boolean;
22+
}
23+
1524

1625
export async function getMergedWorkspaceQueries(
1726
workspaceId: string,
@@ -65,4 +74,14 @@ export interface MergedQueriesResult {
6574
console.error("Error in getMergedWorkspaceQueries:", error);
6675
throw error;
6776
}
77+
}
78+
79+
export async function deployQuery(params: DeployQueryParams): Promise<boolean> {
80+
try {
81+
const response = await axios.post('/api/plugins/enterprise/qlQuery/deploy', params);
82+
return response.status === 200;
83+
} catch (error) {
84+
console.error('Error deploying query:', error);
85+
throw error;
86+
}
6887
}

0 commit comments

Comments
 (0)