in libs/logic-apps-shared/src/designer-client-services/lib/base/operationmanifest.ts [363:521]
export function getBuiltInOperationInfo(definition: any, isTrigger: boolean): OperationInfo {
const normalizedOperationType = definition.type?.toLowerCase();
const kind = definition.kind?.toLowerCase();
if (kind === undefined) {
const operationInfo = builtInOperationsMetadata[normalizedOperationType];
if (operationInfo) {
return operationInfo;
}
}
switch (normalizedOperationType) {
case expression:
switch (definition.kind?.toLowerCase()) {
case addtotime:
case converttimezone:
case currenttime:
case getfuturetime:
case getpasttime:
case subtractfromtime:
return {
connectorId: dateTimeConnectorId,
operationId: definition.kind.toLowerCase(),
};
default:
throw new UnsupportedException(`Unsupported datetime kind '${definition.kind}'`);
}
case http: {
if (equals(definition?.metadata?.swaggerSource, 'website')) {
return {
connectorId: appServiceConnectorId,
operationId: isTrigger ? appservicetrigger : appservice,
};
}
return {
connectorId: httpConnectorId,
operationId: definition?.metadata?.apiDefinitionUrl
? isTrigger
? httpswaggertrigger
: httpswaggeraction
: isTrigger
? httptrigger
: httpaction,
};
}
case httpwebhook:
return { connectorId: httpConnectorId, operationId: isTrigger ? httpwebhooktrigger : httpwebhookaction };
case liquid:
switch (kind) {
case 'jsontojson':
return {
connectorId: liquidConnectorId,
operationId: 'liquidJsonToJson',
};
case 'jsontotext':
return {
connectorId: liquidConnectorId,
operationId: 'liquidJsonToText',
};
case 'xmltojson':
return {
connectorId: liquidConnectorId,
operationId: 'liquidXmlToJson',
};
case 'xmltotext':
return {
connectorId: liquidConnectorId,
operationId: 'liquidXmlToText',
};
default:
throw new UnsupportedException(`Unsupported operation kind ${kind}`);
}
case request:
switch (kind) {
case 'http':
return {
connectorId: 'connectionProviders/request',
operationId: request,
};
default: {
if (kind === undefined) {
return {
connectorId: 'connectionProviders/request',
operationId: request,
};
}
throw new UnsupportedException(`Unsupported operation kind ${kind} for request type`);
}
}
case response:
switch (kind) {
case 'http':
return {
connectorId: 'connectionProviders/request',
operationId: response,
};
default: {
if (kind === undefined) {
return {
connectorId: 'connectionProviders/request',
operationId: response,
};
}
throw new UnsupportedException(`Unsupported operation kind ${kind} for response type`);
}
}
case table:
switch (definition.inputs?.format?.toLowerCase()) {
case 'csv':
return {
connectorId: dataOperationConnectorId,
operationId: csvtable,
};
case 'html':
return {
connectorId: dataOperationConnectorId,
operationId: htmltable,
};
default:
throw new UnsupportedException(`Unsupported table format ${definition.inputs?.format} for table type`);
}
case wait:
return {
connectorId: scheduleConnectorId,
operationId: definition.inputs?.until ? delayuntil : delay,
};
case apimanagement:
return {
connectorId: apiManagementConnectorId,
operationId: isTrigger ? apimanagementtrigger : apimanagement,
};
case appservice:
return {
connectorId: appServiceConnectorId,
operationId: isTrigger ? appservicetrigger : appservice,
};
case xslt:
switch (kind) {
case datamapper:
return {
connectorId: dataMapperConnectorId,
operationId: xslttransform,
};
default:
throw new UnsupportedException(`Unsupported operation kind ${kind}`);
}
default:
throw new UnsupportedException(`Unsupported built in operation type ${normalizedOperationType}`);
}
}