Skip to content

Commit

Permalink
fix(desinger): Move non-outputschema dynamic data outside fetch (#4656)
Browse files Browse the repository at this point in the history
move logic outside fetch
  • Loading branch information
Eric-B-Wu committed Apr 19, 2024
1 parent 3a936cd commit 3afadda
Showing 1 changed file with 37 additions and 38 deletions.
75 changes: 37 additions & 38 deletions libs/designer/src/lib/core/utils/parameters/dynamicdata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,43 @@ export async function getDynamicSchema(
const { parameter, definition } = dependencyInfo;
const emptySchema = { ...parameter?.schema };
try {
if (isDynamicPropertiesExtension(definition)) {
const { dynamicState, parameters } = definition.extension;
const operationParameters = getParameterValuesForDynamicInvoke(parameters, nodeInputs, idReplacements, workflowParameters);
let schema: OpenAPIV2.SchemaObject;
switch (dynamicState?.extension?.builtInOperation) {
case 'getVariableSchema': {
schema = {
type: getSwaggerTypeFromVariableType(operationParameters['type']?.toLowerCase() ?? 'boolean'),
enum: getSwaggerEnumFromVariableType(operationParameters['type']?.toLowerCase() ?? 'boolean'),
};

break;
}
case 'getVariable': {
const variable = variables.find((variable) => variable.name === operationParameters['name']);
schema = variable
? {
type: getSwaggerTypeFromVariableType(variable.type?.toLowerCase()),
enum: getSwaggerEnumFromVariableType(variable.type?.toLowerCase()),
}
: {};
break;
}
default: {
schema = await getDynamicSchemaProperties(
connectionReference?.connection.id,
operationInfo.connectorId,
operationInfo.operationId,
operationParameters,
dynamicState
);
break;
}
}

return schema ? { ...emptySchema, ...schema } : schema;
}
const queryClient = getReactQueryClient();
const outputSchema = await queryClient.fetchQuery(
[
Expand All @@ -166,44 +203,6 @@ export async function getDynamicSchema(
dependencyInfo.parameter?.key,
],
async () => {
if (isDynamicPropertiesExtension(definition)) {
const { dynamicState, parameters } = definition.extension;
const operationParameters = getParameterValuesForDynamicInvoke(parameters, nodeInputs, idReplacements, workflowParameters);
let schema: OpenAPIV2.SchemaObject;

switch (dynamicState?.extension?.builtInOperation) {
case 'getVariableSchema': {
schema = {
type: getSwaggerTypeFromVariableType(operationParameters['type']?.toLowerCase() ?? 'boolean'),
enum: getSwaggerEnumFromVariableType(operationParameters['type']?.toLowerCase() ?? 'boolean'),
};

break;
}
case 'getVariable': {
const variable = variables.find((variable) => variable.name === operationParameters['name']);
schema = variable
? {
type: getSwaggerTypeFromVariableType(variable.type?.toLowerCase()),
enum: getSwaggerEnumFromVariableType(variable.type?.toLowerCase()),
}
: {};
break;
}
default: {
schema = await getDynamicSchemaProperties(
connectionReference?.connection.id,
operationInfo.connectorId,
operationInfo.operationId,
operationParameters,
dynamicState
);
break;
}
}

return schema ? { ...emptySchema, ...schema } : schema;
}
const { connectorId } = operationInfo;
const { parameters, operationId } = definition.extension;
const { connector, parsedSwagger } = await getConnectorWithSwagger(connectorId);
Expand Down

0 comments on commit 3afadda

Please sign in to comment.