UNPKG

@cognigy/rest-api-client

Version:

Cognigy REST-Client

589 lines 21.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HTTP_REQUEST = exports.HTTP_CONNECTION_OAUTH2 = exports.IHttpOAuthConnectionFieldSchema = exports.HTTP_CONNECTION_APIKEYXKEY = exports.HTTP_CONNECTION_APIKEYAUTHKEY = exports.HTTP_CONNECTION_BASIC = void 0; /* Custom modules */ const createNodeDescriptor_1 = require("../../createNodeDescriptor"); exports.HTTP_CONNECTION_BASIC = { type: "http_basic", label: "Basic Auth for HTTP Requests", fields: [ { fieldName: "username" }, { fieldName: "password" } ] }; exports.HTTP_CONNECTION_APIKEYAUTHKEY = { type: "http_apiKeyAuthKey", label: "ApiKeyAuthKey Auth for HTTP Requests", fields: [ { fieldName: "authApiKey" } ] }; exports.HTTP_CONNECTION_APIKEYXKEY = { type: "http_apiKeyXKey", label: "ApiKeyXKey Auth for HTTP Requests", fields: [ { fieldName: "authApiKey" } ] }; exports.IHttpOAuthConnectionFieldSchema = { title: "foreignSettingsDataSchema", type: "object", additionalProperties: false, properties: { oAuth2Url: { type: "string" }, oAuth2ClientId: { type: "string" }, oAuth2ClientSecret: { type: "string" }, oAuth2Scope: { type: "string" } } }; exports.HTTP_CONNECTION_OAUTH2 = { type: "http_oauth2", label: "OAuth2 for HTTP Requests", fields: [ { fieldName: "oAuth2Url" }, { fieldName: "oAuth2ClientId" }, { fieldName: "oAuth2ClientSecret" }, { fieldName: "oAuth2Scope" } ] }; ; /** * Node name: 'httpRequest' * * Purpose: * Sends HTTP request */ exports.HTTP_REQUEST = (0, createNodeDescriptor_1.createNodeDescriptor)({ type: "httpRequest", defaultLabel: "HTTP Request", summary: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__SUMMARY", appearance: { showIcon: false }, fields: [ { key: "type", type: "select", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__TYPE__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__TYPE__DESCRIPTION", defaultValue: "GET", params: { required: true, options: [ { label: "GET", value: "GET" }, { label: "POST", value: "POST" }, { label: "PATCH", value: "PATCH" }, { label: "PUT", value: "PUT" }, { label: "DELETE", value: "DELETE" } ] } }, { key: "url", type: "cognigyText", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__URL__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__URL__DESCRIPTION", params: { required: true } }, { key: "headers", type: "keyValuePairs", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__HEADERS__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__HEADERS__DESCRIPTION", defaultValue: "{}", }, { key: "payloadType", type: "select", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__PAYLOAD_TYPE__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__PAYLOAD_TYPE__DESCRIPTION", defaultValue: "json", params: { required: true, options: [ { label: "JSON", value: "json" }, { label: "Text", value: "text" }, { label: "Form-Data", value: "form-data" } ] } }, { key: "payloadText", type: "cognigyText", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__PAYLOAD_TEXT__LABEL", defaultValue: "", condition: { key: "payloadType", value: "text" } }, { key: "payloadJSON", type: "json", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__PAYLOAD_JSON__LABEL", defaultValue: "{}", condition: { key: "payloadType", value: "json" } }, { key: "payloadFormData", type: "json", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__PAYLOAD_FORM_DATA__LABEL", defaultValue: "{}", condition: { key: "payloadType", value: "form-data" } }, { key: "storeLocation", type: "select", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__STORE_LOCATION__LABEL", params: { options: [ { label: "Input", value: "input" }, { label: "Context", value: "context" } ], required: true }, defaultValue: "input" }, { key: "inputKey", type: "cognigyText", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__INPUT_KEY__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__INPUT_KEY__DESCRIPTION", defaultValue: "httprequest", condition: { key: "storeLocation", value: "input" } }, { key: "contextKey", type: "cognigyText", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__CONTEXT_KEY__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__CONTEXT_KEY__DESCRIPTION", defaultValue: "httprequest", condition: { key: "storeLocation", value: "context" } }, { key: "authType", type: "select", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__AUTH_TYPE__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__AUTH_TYPE__DESCRIPTION", defaultValue: "none", params: { required: true, options: [ { label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__AUTH_TYPE__OPTIONS__NONE__LABEL", value: "none" }, { label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__AUTH_TYPE__OPTIONS__BASIC__LABEL", value: "basic" }, { label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__AUTH_TYPE__OPTIONS__OAUTH2__LABEL", value: "oAuth2" }, { label: 'UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__AUTH_TYPE__OPTIONS__API_kEY__LABEL', value: "apiKeyAuthKey" }, { label: 'UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__AUTH_TYPE__OPTIONS__X_API_KEY__LABEL', value: "apiKeyXKey" } ] }, resetOption: { lookupValue: "none", fieldsToReset: ["basicConnection", "apiKeyAuthKeyConnection", "apiKeyXKeyConnection", "oAuth2Connection"] } }, { key: "basicConnection", type: "connection", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__BASIC_CONNECTION__LABEL", params: { connectionType: exports.HTTP_CONNECTION_BASIC.type }, condition: { key: "authType", value: "basic" } }, { key: "apiKeyAuthKeyConnection", type: "connection", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__API_KEY_AUTH_CONNECTION__LABEL", params: { connectionType: exports.HTTP_CONNECTION_APIKEYAUTHKEY.type }, condition: { key: "authType", value: "apiKeyAuthKey" } }, { key: "apiKeyXKeyConnection", type: "connection", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__API_KEY_XKEY_CONNECTION__LABEL", params: { connectionType: exports.HTTP_CONNECTION_APIKEYXKEY.type }, condition: { key: "authType", value: "apiKeyXKey" } }, { key: "oAuth2Connection", type: "connection", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__OAUTH2_CONNECTION__LABEL", params: { connectionType: exports.HTTP_CONNECTION_OAUTH2.type }, condition: { key: "authType", value: "oAuth2" } }, { key: "async", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__ASYNC__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__ASYNC__DESCRIPTION", defaultValue: false }, { key: "cache", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__CACHE__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__CACHE__DESCRIPTION", defaultValue: false }, { key: "cacheExpiry", type: "number", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__CACHE_EXPIRY__LABEL", defaultValue: 0, condition: { key: "cache", value: true } }, { key: "timeout", type: "number", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__TIMEOUT__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__TIMEOUT__DESCRIPTION", defaultValue: 8000, params: { min: 2000, max: 30000 // 30 sec }, condition: { key: "async", value: true } }, { key: "retryAttempts", type: "number", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__RETRY_ATTEMPTS__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__RETRY_ATTEMPTS__DESCRIPTION", defaultValue: 0, params: { min: 0, max: 3 }, condition: { key: "async", value: true } }, { key: "storeResponseHeaders", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__STORE_RESPONSE_HEADERS__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__STORE_RESPONSE_HEADERS__DESCRIPTION", defaultValue: false }, { key: "allowSelfSigned", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__ALLOW_SELF_SIGNED__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__ALLOW_SELF_SIGNED__DESCRIPTION", defaultValue: false }, { key: "errorLogging", type: "select", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__ERROR_LOGGING__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__ERROR_LOGGING__DESCRIPTION", defaultValue: "none", params: { required: true, options: [ { label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__ERROR_LOGGING__OPTIONS__NONE__LABEL", value: "none" }, { label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__ERROR_LOGGING__OPTIONS__BASIC__LABEL", value: "basic" }, { label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__ERROR_LOGGING__OPTIONS__FULL__LABEL", value: "full" } ] } }, { key: "debugLogging", type: "select", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__DEBUG_LOGGING__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__DEBUG_LOGGING__DESCRIPTION", defaultValue: "none", params: { required: true, options: [ { label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__DEBUG_LOGGING__OPTIONS__NONE__LABEL", value: "none" }, { label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__DEBUG_LOGGING__OPTIONS__REQUEST__LABEL", value: "request" }, { label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__DEBUG_LOGGING__OPTIONS__RESPONSE__LABEL", value: "response" }, { label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__DEBUG_LOGGING__OPTIONS__FULL__LABEL", value: "full" } ] } }, { key: "abortOnError", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__ABORT_ON_ERROR__LABEL", description: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__ABORT_ON_ERROR__DESCRIPTION", defaultValue: false }, { key: "logWarning", type: "description", label: " ", params: { text: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__FIELDS__LOG_WARNING__PARAMS__TEXT" }, condition: { key: "errorLogging", value: "full" } } ], sections: [ { key: "payloadSection", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__SECTIONS__PAY_LOAD_SECTION__LABEL", defaultCollapsed: false, fields: [ "payloadType", "payloadText", "payloadJSON", "payloadFormData", ], condition: { key: "type", value: ["POST", "PUT", "PATCH"] } }, { key: "storage", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__SECTIONS__STORAGE__LABEL", defaultCollapsed: true, fields: [ "storeLocation", "inputKey", "contextKey", ] }, { key: "advanced", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__SECTIONS__ADVANCED__LABEL", defaultCollapsed: true, fields: [ "headers", "storeResponseHeaders", ] }, { key: "auth", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__SECTIONS__AUTHENTICATION__LABEL", defaultCollapsed: true, fields: [ "authType", "oAuth2Connection", "apiKeyXKeyConnection", "apiKeyAuthKeyConnection", "basicConnection" ] }, { key: "executionAndCaching", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__SECTIONS__EXECUTING_AND_CACHING__LABEL", defaultCollapsed: true, fields: [ "async", "timeout", "retryAttempts", "cache", "cacheExpiry", ] }, { key: "security", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__SECTIONS__SECURITY__LABEL", defaultCollapsed: true, fields: [ "allowSelfSigned" ] }, { key: "errors", label: "UI__NODE_EDITOR__SERVICE__HTTP_REQUEST__SECTIONS__ERRORS__LABEL", defaultCollapsed: true, fields: [ "errorLogging", "logWarning", "abortOnError", "debugLogging" ] } ], form: [ { type: "field", key: "connection" }, { type: "field", key: "type" }, { type: "field", key: "url" }, { type: "section", key: "payloadSection" }, { type: "section", key: "storage" }, { type: "section", key: "advanced" }, { type: "section", key: "auth" }, { type: "section", key: "executionAndCaching" }, { type: "section", key: "security" }, { type: "section", key: "errors" } ], preview: { key: "url", type: "text", }, tags: ["service", "get", "post", "put", "patch"], function: async (httpRequestParams) => { const { cognigy, config } = httpRequestParams; const { api } = cognigy; const { url, inputKey, contextKey, payloadType, payloadJSON, payloadText, payloadFormData, async, storeLocation, authType, } = config; const { oAuth2Connection } = config; const { basicConnection } = config; const { apiKeyAuthKeyConnection } = config; const { apiKeyXKeyConnection } = config; if (!url) { throw new Error("Unable to execute http request. Url is missing."); } if (storeLocation === "context" && !contextKey) { throw new Error("Unable to execute http request. Context Key is missing."); } if (storeLocation === "input" && !inputKey) { throw new Error("Unable to execute http request. Input Key is missing."); } // Check if an authType has been set if (authType && authType !== "none") { switch (authType) { case "basic": if (!basicConnection) { throw new Error("Unable to execute HTTP request. No authentication connection (basic) selected."); } break; case "oAuth2": if (!oAuth2Connection) { throw new Error("Unable to execute HTTP request. No authentication connection (oAuth2) selected."); } break; case "apiKeyAuthKey": if (!apiKeyAuthKeyConnection) { throw new Error("Unable to execute HTTP request. No authentication connection (apiKeyAuthKey) selected."); } break; case "apiKeyXKey": if (!apiKeyXKeyConnection) { throw new Error("Unable to execute HTTP request. No authentication connection (apiKeyXKey) selected."); } break; } } if (payloadType === "json" && typeof payloadJSON === "object") { config.payloadIsJSON = true; config.payload = payloadJSON; } else if (payloadType === "form-data" && typeof payloadFormData === "object") { config.payloadIsFormData = true; config.payload = payloadFormData; } else { config.payloadIsJSON = false; config.payload = payloadText; } if (async) { api.sendHttpRequest(httpRequestParams); } else { return await api.sendHttpRequest(httpRequestParams); } } }); //# sourceMappingURL=httpRequest.js.map