From 50e30ee4ea414646479e7cd66cc1aa24efc096a0 Mon Sep 17 00:00:00 2001 From: Andrew Bastin Date: Thu, 30 Dec 2021 13:34:00 +0530 Subject: [PATCH] fix: remove old codegen code --- .../helpers/codegen/__tests__/codegen.sample | 91 -------- .../hoppscotch-app/helpers/codegen/codegen.ts | 209 ------------------ .../helpers/codegen/generators/c-libcurl.js | 79 ------- .../codegen/generators/cs-restsharp.js | 102 --------- .../helpers/codegen/generators/curl.js | 45 ---- .../helpers/codegen/generators/go-native.js | 87 -------- .../helpers/codegen/generators/java-okhttp.js | 83 ------- .../codegen/generators/java-unirest.js | 73 ------ .../codegen/generators/javascript-fetch.js | 68 ------ .../codegen/generators/javascript-jquery.js | 66 ------ .../codegen/generators/javascript-xhr.js | 60 ----- .../codegen/generators/nodejs-axios.js | 73 ------ .../codegen/generators/nodejs-native.js | 82 ------- .../codegen/generators/nodejs-request.js | 87 -------- .../codegen/generators/nodejs-unirest.js | 87 -------- .../helpers/codegen/generators/php-curl.js | 99 --------- .../generators/powershell-restmethod.js | 63 ------ .../codegen/generators/python-http-client.js | 105 --------- .../codegen/generators/python-requests.js | 102 --------- .../codegen/generators/ruby-net-http.js | 80 ------- .../codegen/generators/salesforce-apex.js | 80 ------- .../codegen/generators/shell-httpie.js | 58 ----- .../helpers/codegen/generators/shell-wget.js | 43 ---- 23 files changed, 1922 deletions(-) delete mode 100644 packages/hoppscotch-app/helpers/codegen/__tests__/codegen.sample delete mode 100644 packages/hoppscotch-app/helpers/codegen/codegen.ts delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/c-libcurl.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/cs-restsharp.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/curl.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/go-native.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/java-okhttp.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/java-unirest.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/javascript-fetch.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/javascript-jquery.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/javascript-xhr.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/nodejs-axios.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/nodejs-native.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/nodejs-request.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/nodejs-unirest.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/php-curl.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/powershell-restmethod.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/python-http-client.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/python-requests.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/ruby-net-http.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/salesforce-apex.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/shell-httpie.js delete mode 100644 packages/hoppscotch-app/helpers/codegen/generators/shell-wget.js diff --git a/packages/hoppscotch-app/helpers/codegen/__tests__/codegen.sample b/packages/hoppscotch-app/helpers/codegen/__tests__/codegen.sample deleted file mode 100644 index 574aacbce..000000000 --- a/packages/hoppscotch-app/helpers/codegen/__tests__/codegen.sample +++ /dev/null @@ -1,91 +0,0 @@ -import { codegens } from "../codegen" - -const TEST_URL = "https://httpbin.org" -const TEST_PATH_NAME = "/path/to" -const TEST_QUERY_STRING = "?a=b" -const TEST_HTTP_USER = "mockUser" -const TEST_HTTP_PASSWORD = "mockPassword" -const TEST_BEARER_TOKEN = "abcdefghijklmn" -const TEST_RAW_REQUEST_BODY = "foo=bar&baz=qux" -const TEST_RAW_PARAMS_JSON = '{"foo": "bar", "baz": "qux"}' -const TEST_RAW_PARAMS_XML = ` - - -` -const TEST_HEADERS = [ - { key: "h1", value: "h1v" }, - { key: "h2", value: "h2v" }, -] - -codegens.forEach((codegen) => { - describe(`generate request for ${codegen.name}`, () => { - const testCases = [ - [ - "generate GET request", - { - url: TEST_URL, - pathName: TEST_PATH_NAME, - queryString: TEST_QUERY_STRING, - auth: "Basic Auth", - httpUser: TEST_HTTP_USER, - httpPassword: TEST_HTTP_PASSWORD, - method: "GET", - rawInput: false, - rawParams: "", - rawRequestBody: "", - headers: TEST_HEADERS, - }, - ], - [ - "generate POST request for JSON", - { - url: TEST_URL, - pathName: TEST_PATH_NAME, - queryString: TEST_QUERY_STRING, - auth: "Bearer Token", - bearerToken: TEST_BEARER_TOKEN, - method: "POST", - rawInput: true, - rawParams: TEST_RAW_PARAMS_JSON, - rawRequestBody: "", - contentType: "application/json", - headers: TEST_HEADERS, - }, - ], - [ - "generate POST request for XML", - { - url: TEST_URL, - pathName: TEST_PATH_NAME, - queryString: TEST_QUERY_STRING, - auth: "OAuth 2.0", - bearerToken: TEST_BEARER_TOKEN, - method: "POST", - rawInput: true, - rawParams: TEST_RAW_PARAMS_XML, - rawRequestBody: "", - contentType: "application/xml", - headers: TEST_HEADERS, - }, - ], - [ - "generate PUT request for www-form-urlencoded", - { - url: TEST_URL, - pathName: TEST_PATH_NAME, - queryString: TEST_QUERY_STRING, - method: "PUT", - rawInput: false, - rawRequestBody: TEST_RAW_REQUEST_BODY, - contentType: "application/x-www-form-urlencoded", - headers: [], - }, - ], - ] - - test.each(testCases)("%s", (_, context) => { - const result = codegen.generator(context) - expect(result).toMatchSnapshot() - }) - }) -}) diff --git a/packages/hoppscotch-app/helpers/codegen/codegen.ts b/packages/hoppscotch-app/helpers/codegen/codegen.ts deleted file mode 100644 index 71219ba75..000000000 --- a/packages/hoppscotch-app/helpers/codegen/codegen.ts +++ /dev/null @@ -1,209 +0,0 @@ -import { - FormDataKeyValue, - HoppRESTHeader, - HoppRESTParam, -} from "@hoppscotch/data" -import { EffectiveHoppRESTRequest } from "../utils/EffectiveURL" -import { CLibcurlCodegen } from "./generators/c-libcurl" -import { CsRestsharpCodegen } from "./generators/cs-restsharp" -import { CurlCodegen } from "./generators/curl" -import { GoNativeCodegen } from "./generators/go-native" -import { JavaOkhttpCodegen } from "./generators/java-okhttp" -import { JavaUnirestCodegen } from "./generators/java-unirest" -import { JavascriptFetchCodegen } from "./generators/javascript-fetch" -import { JavascriptJqueryCodegen } from "./generators/javascript-jquery" -import { JavascriptXhrCodegen } from "./generators/javascript-xhr" -import { NodejsAxiosCodegen } from "./generators/nodejs-axios" -import { NodejsNativeCodegen } from "./generators/nodejs-native" -import { NodejsRequestCodegen } from "./generators/nodejs-request" -import { NodejsUnirestCodegen } from "./generators/nodejs-unirest" -import { PhpCurlCodegen } from "./generators/php-curl" -import { PowershellRestmethodCodegen } from "./generators/powershell-restmethod" -import { PythonHttpClientCodegen } from "./generators/python-http-client" -import { PythonRequestsCodegen } from "./generators/python-requests" -import { RubyNetHttpCodeGen } from "./generators/ruby-net-http" -import { SalesforceApexCodegen } from "./generators/salesforce-apex" -import { ShellHttpieCodegen } from "./generators/shell-httpie" -import { ShellWgetCodegen } from "./generators/shell-wget" - -/* Register code generators here. - * A code generator is defined as an object with the following structure. - * - * id: string - * name: string - * language: string // a string identifier used in ace editor for syntax highlighting - * // see node_modules/ace-builds/src-noconflict/mode-** files for valid value - * generator: (ctx) => string - * - */ -export const codegens = [ - CLibcurlCodegen, - CsRestsharpCodegen, - CurlCodegen, - GoNativeCodegen, - JavaOkhttpCodegen, - JavaUnirestCodegen, - JavascriptFetchCodegen, - JavascriptJqueryCodegen, - JavascriptXhrCodegen, - NodejsAxiosCodegen, - NodejsNativeCodegen, - NodejsRequestCodegen, - NodejsUnirestCodegen, - PhpCurlCodegen, - PowershellRestmethodCodegen, - PythonHttpClientCodegen, - PythonRequestsCodegen, - RubyNetHttpCodeGen, - SalesforceApexCodegen, - ShellHttpieCodegen, - ShellWgetCodegen, -] - -export type HoppCodegenContext = { - name: string - method: string - uri: string - url: string - pathName: string - auth: any // TODO: Change this - httpUser: string | null - httpPassword: string | null - bearerToken: string | null - headers: HoppRESTHeader[] - params: HoppRESTParam[] - bodyParams: FormDataKeyValue[] - rawParams: string | null - rawInput: boolean - rawRequestBody: string | null - contentType: string | null - queryString: string -} - -export function generateCodeWithGenerator( - codegenID: string, - context: HoppCodegenContext -) { - if (codegenID) { - const gen = codegens.find(({ id }) => id === codegenID) - return gen ? gen.generator(context) : "" - } - - return "" -} - -function getCodegenAuth( - request: EffectiveHoppRESTRequest -): Pick< - HoppCodegenContext, - "auth" | "bearerToken" | "httpUser" | "httpPassword" -> { - if (!request.auth.authActive || request.auth.authType === "none") { - return { - auth: "None", - httpUser: null, - httpPassword: null, - bearerToken: null, - } - } - - if (request.auth.authType === "basic") { - return { - auth: "Basic Auth", - httpUser: request.auth.username, - httpPassword: request.auth.password, - bearerToken: null, - } - } else { - return { - auth: "Bearer Token", - httpUser: null, - httpPassword: null, - bearerToken: request.auth.token, - } - } -} - -function addhttps(url: string) { - if (!/^(?:f|ht)tps?:\/\//.test(url)) { - url = "https://" + url - } - return url -} - -function getCodegenGeneralRESTInfo( - request: EffectiveHoppRESTRequest -): Pick< - HoppCodegenContext, - | "name" - | "uri" - | "url" - | "method" - | "queryString" - | "pathName" - | "params" - | "headers" -> { - let urlObj: URL - try { - urlObj = new URL(request.effectiveFinalURL) - } catch (error) { - urlObj = new URL(addhttps(request.effectiveFinalURL)) - } - request.effectiveFinalParams.forEach(({ key, value }) => { - urlObj.searchParams.append(key, value) - }) - - // Remove authorization headers if auth is specified (because see #1798) - const finalHeaders = - request.auth.authActive && request.auth.authType !== "none" - ? request.effectiveFinalHeaders - .filter((x) => x.key.toLowerCase() !== "authorization") - .map((x) => ({ ...x, active: true })) - : request.effectiveFinalHeaders.map((x) => ({ ...x, active: true })) - - return { - name: request.name, - uri: request.effectiveFinalURL, - headers: finalHeaders, - params: request.effectiveFinalParams.map((x) => ({ ...x, active: true })), - method: request.method, - url: urlObj.origin, - queryString: `${urlObj.searchParams}`, - pathName: urlObj.pathname, - } -} - -function getCodegenReqBodyData( - request: EffectiveHoppRESTRequest -): Pick< - HoppCodegenContext, - "rawRequestBody" | "rawInput" | "contentType" | "bodyParams" | "rawParams" -> { - return { - contentType: request.body.contentType, - rawInput: request.body.contentType !== "multipart/form-data", - rawRequestBody: - request.body.contentType !== "multipart/form-data" - ? request.body.body - : null, - bodyParams: - request.body.contentType === "multipart/form-data" - ? request.body.body - : [], - rawParams: - request.body.contentType !== "multipart/form-data" - ? request.body.body - : null, - } -} - -export function generateCodegenContext( - request: EffectiveHoppRESTRequest -): HoppCodegenContext { - return { - ...getCodegenAuth(request), - ...getCodegenGeneralRESTInfo(request), - ...getCodegenReqBodyData(request), - } -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/c-libcurl.js b/packages/hoppscotch-app/helpers/codegen/generators/c-libcurl.js deleted file mode 100644 index 7cb2b5987..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/c-libcurl.js +++ /dev/null @@ -1,79 +0,0 @@ -export const CLibcurlCodegen = { - id: "c-libcurl", - name: "C libcurl", - language: "c_cpp", - generator: ({ - auth, - httpUser, - httpPassword, - method, - url, - pathName, - queryString, - bearerToken, - headers, - rawInput, - rawParams, - rawRequestBody, - contentType, - }) => { - const requestString = [] - - requestString.push("CURL *hnd = curl_easy_init();") - requestString.push( - `curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "${method}");` - ) - requestString.push( - `curl_easy_setopt(hnd, CURLOPT_URL, "${url}${pathName}?${queryString}");` - ) - requestString.push(`struct curl_slist *headers = NULL;`) - - // append header attributes - if (headers) { - headers.forEach(({ key, value }) => { - if (key) - requestString.push( - `headers = curl_slist_append(headers, "${key}: ${value}");` - ) - }) - } - - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - requestString.push( - `headers = curl_slist_append(headers, "Authorization: Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}");` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - requestString.push( - `headers = curl_slist_append(headers, "Authorization: Bearer ${bearerToken}");` - ) - } - - // set headers - if (headers?.length) { - requestString.push("curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);") - } - - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - let requestBody = rawInput ? rawParams : rawRequestBody - - if (contentType && contentType.includes("x-www-form-urlencoded")) { - requestBody = `"${requestBody}"` - } else { - requestBody = requestBody ? JSON.stringify(requestBody) : null - } - - // set request-body - if (requestBody) { - requestString.push( - `curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, ${requestBody});` - ) - } - } - - requestString.push(`CURLcode ret = curl_easy_perform(hnd);`) - return requestString.join("\n") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/cs-restsharp.js b/packages/hoppscotch-app/helpers/codegen/generators/cs-restsharp.js deleted file mode 100644 index 597deaa73..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/cs-restsharp.js +++ /dev/null @@ -1,102 +0,0 @@ -import { isJSONContentType } from "~/helpers/utils/contenttypes" - -export const CsRestsharpCodegen = { - id: "cs-restsharp", - name: "C# RestSharp", - language: "csharp", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - contentType, - headers, - }) => { - const requestString = [] - - // initial request setup - let requestBody = rawInput ? rawParams : rawRequestBody - if (requestBody) { - requestBody = requestBody.replace(/"/g, '""') // escape quotes for C# verbatim string compatibility - } - - // prepare data - let requestDataFormat - let requestContentType - - if (isJSONContentType(contentType)) { - requestDataFormat = "DataFormat.Json" - requestContentType = "text/json" - } else { - requestDataFormat = "DataFormat.Xml" - requestContentType = "text/xml" - } - - const verbs = [ - { verb: "GET", csMethod: "Get" }, - { verb: "POST", csMethod: "Post" }, - { verb: "PUT", csMethod: "Put" }, - { verb: "PATCH", csMethod: "Patch" }, - { verb: "DELETE", csMethod: "Delete" }, - ] - - // create client and request - requestString.push(`var client = new RestClient("${url}");\n\n`) - requestString.push( - `var request = new RestRequest("${pathName}?${queryString}", ${requestDataFormat});\n\n` - ) - - // authentification - if (auth === "Basic Auth") { - requestString.push( - `client.Authenticator = new HttpBasicAuthenticator("${httpUser}", "${httpPassword}");\n` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - requestString.push( - `request.AddHeader("Authorization", "Bearer ${bearerToken}");\n` - ) - } - - // custom headers - if (headers) { - headers.forEach(({ key, value }) => { - if (key) { - requestString.push(`request.AddHeader("${key}", "${value}");\n`) - } - }) - } - - requestString.push(`\n`) - - // set body - if (["POST", "PUT", "PATCH", "DELETE"].includes(method) && requestBody) { - requestString.push( - `request.AddParameter("${requestContentType}", @"${requestBody}", ParameterType.RequestBody);\n\n` - ) - } - - // process - const verb = verbs.find((v) => v.verb === method) - if (verb) { - requestString.push(`var response = client.${verb.csMethod}(request);\n\n`) - } else { - return "" - } - - // analyse result - requestString.push( - `if (!response.IsSuccessful)\n{\n Console.WriteLine("An error occurred " + response.ErrorMessage);\n}\n\n` - ) - - requestString.push(`var result = response.Content;\n`) - - return requestString.join("") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/curl.js b/packages/hoppscotch-app/helpers/codegen/generators/curl.js deleted file mode 100644 index 41cb79189..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/curl.js +++ /dev/null @@ -1,45 +0,0 @@ -export const CurlCodegen = { - id: "curl", - name: "cURL", - language: "sh", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - headers, - }) => { - const requestString = [] - requestString.push(`curl -X ${method}`) - requestString.push(` '${url}${pathName}?${queryString}'`) - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - requestString.push( - ` -H 'Authorization: Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}'` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - requestString.push(` -H 'Authorization: Bearer ${bearerToken}'`) - } - if (headers) { - headers.forEach(({ key, value }) => { - if (key) requestString.push(` -H '${key}: ${value}'`) - }) - } - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - let requestBody = rawInput ? rawParams : rawRequestBody - requestBody = requestBody || "" - - requestString.push(` -d '${requestBody}'`) - } - return requestString.join(" \\\n") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/go-native.js b/packages/hoppscotch-app/helpers/codegen/generators/go-native.js deleted file mode 100644 index 8f5a6917e..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/go-native.js +++ /dev/null @@ -1,87 +0,0 @@ -import { isJSONContentType } from "~/helpers/utils/contenttypes" - -export const GoNativeCodegen = { - id: "go-native", - name: "Go Native", - language: "golang", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - contentType, - headers, - }) => { - const requestString = [] - let genHeaders = [] - // initial request setup - const requestBody = rawInput ? rawParams : rawRequestBody - - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - if (contentType && requestBody) { - if (isJSONContentType(contentType)) { - requestString.push(`var reqBody = []byte(\`${requestBody}\`)\n\n`) - requestString.push( - `req, err := http.NewRequest("${method}", "${url}${pathName}?${queryString}", bytes.NewBuffer(reqBody))\n` - ) - } else if (contentType.includes("x-www-form-urlencoded")) { - requestString.push( - `req, err := http.NewRequest("${method}", "${url}${pathName}?${queryString}", strings.NewReader("${requestBody}"))\n` - ) - } - } else { - requestString.push( - `req, err := http.NewRequest("${method}", "${url}${pathName}?${queryString}", nil)\n` - ) - } - } else { - requestString.push( - `req, err := http.NewRequest("${method}", "${url}${pathName}?${queryString}", nil)\n` - ) - } - - // headers - // auth - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - genHeaders.push( - `req.Header.Set("Authorization", "Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}")\n` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - genHeaders.push( - `req.Header.Set("Authorization", "Bearer ${bearerToken}")\n` - ) - } - // custom headers - if (headers) { - headers.forEach(({ key, value }) => { - if (key) genHeaders.push(`req.Header.Set("${key}", "${value}")\n`) - }) - } - genHeaders = genHeaders.join("").slice(0, -1) - requestString.push(`${genHeaders}\n`) - requestString.push( - `if err != nil {\n log.Fatalf("An error occurred %v", err)\n}\n\n` - ) - - // request boilerplate - requestString.push(`client := &http.Client{}\n`) - requestString.push( - `resp, err := client.Do(req)\nif err != nil {\n log.Fatalf("An error occurred %v", err)\n}\n\n` - ) - requestString.push(`defer resp.Body.Close()\n`) - requestString.push( - `body, err := ioutil.ReadAll(resp.Body)\nif err != nil {\n log.Fatalln(err)\n}\n` - ) - return requestString.join("") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/java-okhttp.js b/packages/hoppscotch-app/helpers/codegen/generators/java-okhttp.js deleted file mode 100644 index 1bec7ef09..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/java-okhttp.js +++ /dev/null @@ -1,83 +0,0 @@ -export const JavaOkhttpCodegen = { - id: "java-okhttp", - name: "Java OkHttp", - language: "java", - generator: ({ - auth, - httpUser, - httpPassword, - method, - url, - pathName, - queryString, - bearerToken, - headers, - rawInput, - rawParams, - rawRequestBody, - contentType, - }) => { - const requestString = [] - - requestString.push( - "OkHttpClient client = new OkHttpClient().newBuilder().build();" - ) - - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - let requestBody = rawInput ? rawParams : rawRequestBody - - if (contentType && contentType.includes("x-www-form-urlencoded")) { - requestBody = `"${requestBody}"` - } else { - requestBody = requestBody ? JSON.stringify(requestBody) : null - } - - if (contentType) { - requestString.push( - `MediaType mediaType = MediaType.parse("${contentType}");` - ) - } - if (requestBody) { - requestString.push( - `RequestBody body = RequestBody.create(mediaType,${requestBody});` - ) - } else { - requestString.push( - "RequestBody body = RequestBody.create(null, new byte[0]);" - ) - } - } - - requestString.push("Request request = new Request.Builder()") - requestString.push(`.url("${url}${pathName}?${queryString}")`) - - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - requestString.push(`.method("${method}", body)`) - } else { - requestString.push(`.method("${method}", null)`) - } - - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - requestString.push( - `.addHeader("authorization", "Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}") \n` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - requestString.push( - `.addHeader("authorization", "Bearer ${bearerToken}" ) \n` - ) - } - - if (headers) { - headers.forEach(({ key, value }) => { - if (key) requestString.push(`.addHeader("${key}", "${value}")`) - }) - } - - requestString.push(`.build();`) - requestString.push("Response response = client.newCall(request).execute();") - return requestString.join("\n") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/java-unirest.js b/packages/hoppscotch-app/helpers/codegen/generators/java-unirest.js deleted file mode 100644 index bb696d6e6..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/java-unirest.js +++ /dev/null @@ -1,73 +0,0 @@ -export const JavaUnirestCodegen = { - id: "java-unirest", - name: "Java Unirest", - language: "java", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - contentType, - headers, - }) => { - const requestString = [] - // initial request setup - let requestBody = rawInput ? rawParams : rawRequestBody - const verbs = [ - { verb: "GET", unirestMethod: "get" }, - { verb: "POST", unirestMethod: "post" }, - { verb: "PUT", unirestMethod: "put" }, - { verb: "PATCH", unirestMethod: "patch" }, - { verb: "DELETE", unirestMethod: "delete" }, - { verb: "HEAD", unirestMethod: "head" }, - { verb: "OPTIONS", unirestMethod: "options" }, - ] - // create client and request - const verb = verbs.find((v) => v.verb === method) - const unirestMethod = verb.unirestMethod || "get" - requestString.push( - `HttpResponse response = Unirest.${unirestMethod}("${url}${pathName}?${queryString}")\n` - ) - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - requestString.push( - `.header("authorization", "Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}") \n` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - requestString.push(`.header("authorization", "Bearer ${bearerToken}") \n`) - } - // custom headers - if (headers) { - headers.forEach(({ key, value }) => { - if (key) { - requestString.push(`.header("${key}", "${value}")\n`) - } - }) - } - - // set body - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - if (contentType && requestBody) { - if (contentType.includes("x-www-form-urlencoded")) { - requestBody = `"${requestBody}"` - } else { - requestBody = JSON.stringify(requestBody) - } - } - if (requestBody) { - requestString.push(`.body(${requestBody})\n`) - } - } - requestString.push(`.asString();\n`) - return requestString.join("") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/javascript-fetch.js b/packages/hoppscotch-app/helpers/codegen/generators/javascript-fetch.js deleted file mode 100644 index 665cd6d13..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/javascript-fetch.js +++ /dev/null @@ -1,68 +0,0 @@ -import { isJSONContentType } from "~/helpers/utils/contenttypes" - -export const JavascriptFetchCodegen = { - id: "js-fetch", - name: "JavaScript Fetch", - language: "javascript", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - contentType, - headers, - }) => { - const requestString = [] - let genHeaders = [] - requestString.push(`fetch("${url}${pathName}?${queryString}", {\n`) - requestString.push(` method: "${method}",\n`) - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - genHeaders.push( - ` "Authorization": "Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}",\n` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - genHeaders.push(` "Authorization": "Bearer ${bearerToken}",\n`) - } - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - let requestBody = rawInput ? rawParams : rawRequestBody - - if (contentType && requestBody) { - if (isJSONContentType(contentType)) { - requestBody = `JSON.stringify(${requestBody})` - } else if (contentType.includes("x-www-form-urlencoded")) { - requestBody = `"${requestBody}"` - } - } - - if (requestBody) { - requestString.push(` body: ${requestBody},\n`) - } - } - if (headers) { - headers.forEach(({ key, value }) => { - if (key) genHeaders.push(` "${key}": "${value}",\n`) - }) - } - genHeaders = genHeaders.join("").slice(0, -2) - if (genHeaders) { - requestString.push(` headers: {\n${genHeaders}\n },\n`) - } - requestString.push(' credentials: "same-origin"\n') - requestString.push("}).then(function(response) {\n") - requestString.push(" return response.text()\n") - requestString.push("}).catch(function(e) {\n") - requestString.push(" console.error(e)\n") - requestString.push("})") - return requestString.join("") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/javascript-jquery.js b/packages/hoppscotch-app/helpers/codegen/generators/javascript-jquery.js deleted file mode 100644 index 6626fc2c7..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/javascript-jquery.js +++ /dev/null @@ -1,66 +0,0 @@ -export const JavascriptJqueryCodegen = { - id: "js-jquery", - name: "JavaScript jQuery", - language: "javascript", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - contentType, - rawRequestBody, - headers, - }) => { - const requestString = [] - const genHeaders = [] - - requestString.push( - `jQuery.ajax({\n url: "${url}${pathName}?${queryString}"` - ) - requestString.push(`,\n method: "${method.toUpperCase()}"`) - let requestBody = rawInput ? rawParams : rawRequestBody - - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - if (contentType && contentType.includes("x-www-form-urlencoded")) { - requestBody = `"${requestBody}"` - } else { - requestBody = requestBody.replaceAll("}", " }") - } - requestString.push(`,\n data: ${requestBody}`) - } - if (headers) { - headers.forEach(({ key, value }) => { - if (key) genHeaders.push(` "${key}": "${value}",\n`) - }) - } - - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - genHeaders.push( - ` "Authorization": "Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}",\n` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - genHeaders.push(` "Authorization": "Bearer ${bearerToken}",\n`) - } - if (genHeaders.length > 0) { - requestString.push( - `,\n headers: {\n${genHeaders.join("").slice(0, -2)}\n }` - ) - } - requestString.push("\n}).then(response => {\n") - requestString.push(" console.log(response);\n") - requestString.push("})") - requestString.push(".catch(e => {\n") - requestString.push(" console.error(e);\n") - requestString.push("})\n") - return requestString.join("") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/javascript-xhr.js b/packages/hoppscotch-app/helpers/codegen/generators/javascript-xhr.js deleted file mode 100644 index 63e1a8f12..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/javascript-xhr.js +++ /dev/null @@ -1,60 +0,0 @@ -import { isJSONContentType } from "~/helpers/utils/contenttypes" - -export const JavascriptXhrCodegen = { - id: "js-xhr", - name: "JavaScript XHR", - language: "javascript", - generator: ({ - auth, - httpUser, - httpPassword, - method, - url, - pathName, - queryString, - bearerToken, - headers, - rawInput, - rawParams, - rawRequestBody, - contentType, - }) => { - const requestString = [] - requestString.push("const xhr = new XMLHttpRequest()") - requestString.push(`xhr.addEventListener("readystatechange", function() {`) - requestString.push(` if(this.readyState === 4) {`) - requestString.push(` console.log(this.responseText)\n }\n})`) - - const user = auth === "Basic Auth" ? `'${httpUser}'` : null - const password = auth === "Basic Auth" ? `'${httpPassword}'` : null - requestString.push( - `xhr.open('${method}', '${url}${pathName}?${queryString}', true, ${user}, ${password})` - ) - if (auth === "Bearer Token" || auth === "OAuth 2.0") { - requestString.push( - `xhr.setRequestHeader('Authorization', 'Bearer ${bearerToken}')` - ) - } - if (headers) { - headers.forEach(({ key, value }) => { - if (key) - requestString.push(`xhr.setRequestHeader('${key}', '${value}')`) - }) - } - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - let requestBody = rawInput ? rawParams : rawRequestBody - if (contentType && requestBody) { - if (isJSONContentType(contentType)) { - requestBody = `JSON.stringify(${requestBody})` - } else if (contentType.includes("x-www-form-urlencoded")) { - requestBody = `"${requestBody}"` - } - } - requestBody = requestBody || "" - requestString.push(`xhr.send(${requestBody})`) - } else { - requestString.push("xhr.send()") - } - return requestString.join("\n") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/nodejs-axios.js b/packages/hoppscotch-app/helpers/codegen/generators/nodejs-axios.js deleted file mode 100644 index 325d6d0fc..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/nodejs-axios.js +++ /dev/null @@ -1,73 +0,0 @@ -export const NodejsAxiosCodegen = { - id: "nodejs-axios", - name: "NodeJs Axios", - language: "javascript", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - contentType, - headers, - }) => { - const requestString = [] - const genHeaders = [] - let requestBody = rawInput ? rawParams : rawRequestBody - - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - if ( - contentType && - contentType.includes("x-www-form-urlencoded") && - requestBody - ) { - requestString.push( - `var params = new URLSearchParams("${requestBody}")\n` - ) - requestBody = "params" - } - } - requestString.push( - `axios.${method.toLowerCase()}('${url}${pathName}?${queryString}'` - ) - if (requestBody && requestBody.length !== 0) { - requestString.push(", ") - } - if (headers) { - headers.forEach(({ key, value }) => { - if (key) genHeaders.push(`\n "${key}": "${value}",`) - }) - } - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - genHeaders.push( - ` "Authorization": "Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}",\n` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - genHeaders.push(` "Authorization": "Bearer ${bearerToken}",\n`) - } - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - requestString.push(`${requestBody},`) - } - if (genHeaders.length > 0) { - requestString.push( - `{ \n headers : {${genHeaders.join("").slice(0, -1)}\n }\n}` - ) - } - requestString.push(").then(response => {\n") - requestString.push(" console.log(response);\n") - requestString.push("})") - requestString.push(".catch(e => {\n") - requestString.push(" console.error(e);\n") - requestString.push("})\n") - return requestString.join("") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/nodejs-native.js b/packages/hoppscotch-app/helpers/codegen/generators/nodejs-native.js deleted file mode 100644 index e4d75f111..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/nodejs-native.js +++ /dev/null @@ -1,82 +0,0 @@ -import { isJSONContentType } from "~/helpers/utils/contenttypes" - -export const NodejsNativeCodegen = { - id: "nodejs-native", - name: "NodeJs Native", - language: "javascript", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - contentType, - headers, - }) => { - const requestString = [] - const genHeaders = [] - - requestString.push(`const http = require('http');\n\n`) - - requestString.push(`const url = '${url}${pathName}?${queryString}';\n`) - - requestString.push(`const options = {\n`) - requestString.push(` method: '${method}',\n`) - - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - genHeaders.push( - ` "Authorization": "Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}",\n` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - genHeaders.push(` "Authorization": "Bearer ${bearerToken}",\n`) - } - - let requestBody - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - requestBody = rawInput ? rawParams : rawRequestBody - if (isJSONContentType(contentType) && requestBody) { - requestBody = `JSON.stringify(${requestBody})` - } else if (requestBody) { - requestBody = `\`${requestBody}\`` - } - } - - if (headers) { - headers.forEach(({ key, value }) => { - if (key) genHeaders.push(` "${key}": "${value}",\n`) - }) - } - if (genHeaders.length > 0 || headers.length > 0) { - requestString.push( - ` headers: {\n${genHeaders.join("").slice(0, -2)}\n }\n` - ) - } - requestString.push(`};\n\n`) - - requestString.push( - `const request = http.request(url, options, (response) => {\n` - ) - requestString.push(` console.log(response);\n`) - requestString.push(`});\n\n`) - - requestString.push(`request.on('error', (e) => {\n`) - requestString.push(` console.error(e);\n`) - requestString.push(`});\n`) - - if (requestBody) { - requestString.push(`\nrequest.write(${requestBody});\n`) - } - - requestString.push(`request.end();`) - return requestString.join("") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/nodejs-request.js b/packages/hoppscotch-app/helpers/codegen/generators/nodejs-request.js deleted file mode 100644 index 6e8ee9927..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/nodejs-request.js +++ /dev/null @@ -1,87 +0,0 @@ -import { isJSONContentType } from "~/helpers/utils/contenttypes" - -export const NodejsRequestCodegen = { - id: "nodejs-request", - name: "NodeJs Request", - language: "javascript", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - contentType, - headers, - }) => { - const requestString = [] - const genHeaders = [] - - requestString.push(`const request = require('request');\n`) - requestString.push(`const options = {\n`) - requestString.push(` method: '${method.toLowerCase()}',\n`) - requestString.push(` url: '${url}${pathName}?${queryString}'`) - - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - genHeaders.push( - ` "Authorization": "Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}",\n` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - genHeaders.push(` "Authorization": "Bearer ${bearerToken}",\n`) - } - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - let requestBody = rawInput ? rawParams : rawRequestBody - let reqBodyType = "formData" - if (contentType && requestBody) { - if (isJSONContentType(contentType)) { - requestBody = `JSON.stringify(${requestBody})` - reqBodyType = "body" - } else if (contentType.includes("x-www-form-urlencoded")) { - const formData = [] - if (requestBody.includes("=")) { - requestBody.split("&").forEach((rq) => { - const [key, val] = rq.split("=") - formData.push(`"${key}": "${val}"`) - }) - } - if (formData.length) { - requestBody = `{${formData.join(", ")}}` - } - reqBodyType = "form" - } else if (contentType.includes("application/xml")) { - requestBody = `\`${requestBody}\`` - reqBodyType = "body" - } - } - if (requestBody) { - requestString.push(`,\n ${reqBodyType}: ${requestBody}`) - } - } - - if (headers.length > 0) { - headers.forEach(({ key, value }) => { - if (key) genHeaders.push(` "${key}": "${value}",\n`) - }) - } - if (genHeaders.length > 0 || headers.length > 0) { - requestString.push( - `,\n headers: {\n${genHeaders.join("").slice(0, -2)}\n }` - ) - } - - requestString.push(`\n}`) - requestString.push(`\nrequest(options, (error, response) => {\n`) - requestString.push(` if (error) throw new Error(error);\n`) - requestString.push(` console.log(response.body);\n`) - requestString.push(`});`) - return requestString.join("") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/nodejs-unirest.js b/packages/hoppscotch-app/helpers/codegen/generators/nodejs-unirest.js deleted file mode 100644 index f533b52af..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/nodejs-unirest.js +++ /dev/null @@ -1,87 +0,0 @@ -import { isJSONContentType } from "~/helpers/utils/contenttypes" - -export const NodejsUnirestCodegen = { - id: "nodejs-unirest", - name: "NodeJs Unirest", - language: "javascript", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - contentType, - headers, - }) => { - const requestString = [] - const genHeaders = [] - - requestString.push(`const unirest = require('unirest');\n`) - requestString.push(`const req = unirest(\n`) - requestString.push( - `'${method.toLowerCase()}', '${url}${pathName}?${queryString}')\n` - ) - - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - genHeaders.push( - ` "Authorization": "Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}",\n` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - genHeaders.push(` "Authorization": "Bearer ${bearerToken}",\n`) - } - - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - let requestBody = rawInput ? rawParams : rawRequestBody - let reqBodyType = "formData" - if (contentType && requestBody) { - if (isJSONContentType(contentType)) { - requestBody = `\`${requestBody}\`` - reqBodyType = "send" - } else if (contentType.includes("x-www-form-urlencoded")) { - const formData = [] - if (requestBody.includes("=")) { - requestBody.split("&").forEach((rq) => { - const [key, val] = rq.split("=") - formData.push(`"${key}": "${val}"`) - }) - } - if (formData.length) { - requestBody = `{${formData.join(", ")}}` - } - reqBodyType = "send" - } else if (contentType.includes("application/xml")) { - requestBody = `\`${requestBody}\`` - reqBodyType = "send" - } - } - if (requestBody) { - requestString.push(`\n.${reqBodyType}( ${requestBody})`) - } - } - - if (headers.length > 0) { - headers.forEach(({ key, value }) => { - if (key) genHeaders.push(` "${key}": "${value}",\n`) - }) - } - if (genHeaders.length > 0 || headers.length > 0) { - requestString.push( - `\n.headers({\n${genHeaders.join("").slice(0, -2)}\n })` - ) - } - - requestString.push(`\n.end(function (res) {\n`) - requestString.push(` if (res.error) throw new Error(res.error);\n`) - requestString.push(` console.log(res.raw_body);\n });\n`) - return requestString.join("") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/php-curl.js b/packages/hoppscotch-app/helpers/codegen/generators/php-curl.js deleted file mode 100644 index 3f6022d10..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/php-curl.js +++ /dev/null @@ -1,99 +0,0 @@ -import { isJSONContentType } from "~/helpers/utils/contenttypes" - -export const PhpCurlCodegen = { - id: "php-curl", - name: "PHP cURL", - language: "php", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - contentType, - headers, - }) => { - const requestString = [] - const genHeaders = [] - - requestString.push(` "${url}${pathName}?${queryString}",\n`) - requestString.push(` CURLOPT_RETURNTRANSFER => true,\n`) - requestString.push(` CURLOPT_ENCODING => "",\n`) - requestString.push(` CURLOPT_MAXREDIRS => 10,\n`) - requestString.push(` CURLOPT_TIMEOUT => 0,\n`) - requestString.push(` CURLOPT_FOLLOWLOCATION => true,\n`) - requestString.push(` CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n`) - requestString.push(` CURLOPT_CUSTOMREQUEST => "${method}",\n`) - - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - genHeaders.push( - ` "Authorization: Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}",\n` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - genHeaders.push(` "Authorization: Bearer ${bearerToken}",\n`) - } - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - let requestBody = rawInput ? rawParams : rawRequestBody - - if (contentType && requestBody) { - if ( - !isJSONContentType(contentType) && - rawInput && - !contentType.includes("x-www-form-urlencoded") - ) { - const toRemove = /[\n {}]/gim - const toReplace = /:/gim - const parts = requestBody - .replace(toRemove, "") - .replace(toReplace, "=>") - requestBody = `array(${parts})` - } else if (isJSONContentType(contentType)) { - requestBody = JSON.stringify(requestBody) - } else if (contentType.includes("x-www-form-urlencoded")) { - if (requestBody.includes("=")) { - requestBody = `"${requestBody}"` - } else { - const requestObject = JSON.parse(requestBody) - requestBody = `"${Object.keys(requestObject) - .map((key) => `${key}=${requestObject[key]}`) - .join("&")}"` - } - } - - requestString.push(` CURLOPT_POSTFIELDS => ${requestBody},\n`) - } - } - - if (headers.length > 0) { - headers.forEach(({ key, value }) => { - if (key) genHeaders.push(` "${key}: ${value}",\n`) - }) - } - if (genHeaders.length > 0 || headers.length > 0) { - requestString.push( - ` CURLOPT_HTTPHEADER => array(\n${genHeaders - .join("") - .slice(0, -2)}\n )\n` - ) - } - - requestString.push(`));\n`) - requestString.push(`$response = curl_exec($curl);\n`) - requestString.push(`curl_close($curl);\n`) - requestString.push(`echo $response;\n`) - - return requestString.join("") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/powershell-restmethod.js b/packages/hoppscotch-app/helpers/codegen/generators/powershell-restmethod.js deleted file mode 100644 index 13d2fcd70..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/powershell-restmethod.js +++ /dev/null @@ -1,63 +0,0 @@ -export const PowershellRestmethodCodegen = { - id: "powershell-restmethod", - name: "PowerShell RestMethod", - language: "powershell", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - headers, - }) => { - const methodsWithBody = ["Put", "Post", "Delete"] - const formattedMethod = - method[0].toUpperCase() + method.substring(1).toLowerCase() - const includeBody = methodsWithBody.includes(formattedMethod) - const requestString = [] - let genHeaders = [] - let variables = "" - - requestString.push( - `Invoke-RestMethod -Method '${formattedMethod}' -Uri '${url}${pathName}?${queryString}'` - ) - const requestBody = rawInput ? rawParams : rawRequestBody - - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - if (requestBody && includeBody) { - variables = variables.concat(`$body = @'\n${requestBody}\n'@\n\n`) - } - } - if (headers) { - headers.forEach(({ key, value }) => { - if (key) genHeaders.push(` '${key}' = '${value}'\n`) - }) - } - - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - genHeaders.push( - ` 'Authorization' = 'Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}'\n` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - genHeaders.push(` 'Authorization' = 'Bearer ${bearerToken}'\n`) - } - genHeaders = genHeaders.join("").slice(0, -1) - if (genHeaders) { - variables = variables.concat(`$headers = @{\n${genHeaders}\n}\n`) - requestString.push(` -Headers $headers`) - } - if (requestBody && includeBody) { - requestString.push(` -Body $body`) - } - return `${variables}${requestString.join("")}` - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/python-http-client.js b/packages/hoppscotch-app/helpers/codegen/generators/python-http-client.js deleted file mode 100644 index 1d3a63c44..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/python-http-client.js +++ /dev/null @@ -1,105 +0,0 @@ -import { isJSONContentType } from "~/helpers/utils/contenttypes" - -const printHeaders = (headers) => { - if (headers.length) { - return [`headers = {\n`, ` ${headers.join(",\n ")}\n`, `}\n`] - } else { - return [`headers = {}\n`] - } -} - -export const PythonHttpClientCodegen = { - id: "python-http-client", - name: "Python http.client", - language: "python", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - contentType, - headers, - }) => { - const requestString = [] - const genHeaders = [] - - requestString.push(`import http.client\n`) - requestString.push(`import mimetypes\n`) - - const currentUrl = new URL(url) - const hostname = currentUrl.hostname - const port = currentUrl.port - if (!port) { - requestString.push(`conn = http.client.HTTPSConnection("${hostname}")\n`) - } else { - requestString.push( - `conn = http.client.HTTPSConnection("${hostname}", ${port})\n` - ) - } - // auth headers - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - genHeaders.push( - `'Authorization': 'Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}'` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - genHeaders.push(`'Authorization': 'Bearer ${bearerToken}'`) - } - - // custom headers - if (headers.length) { - headers.forEach(({ key, value }) => { - if (key) genHeaders.push(`'${key}': '${value}'`) - }) - } - - // initial request setup - let requestBody = rawInput ? rawParams : rawRequestBody - if (method === "GET") { - requestString.push(...printHeaders(genHeaders)) - requestString.push(`payload = ''\n`) - } - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - requestString.push(...printHeaders(genHeaders)) - - if (contentType && requestBody) { - if (isJSONContentType(contentType)) { - requestBody = JSON.stringify(requestBody) - requestString.push(`payload = ${requestBody}\n`) - } else if (contentType.includes("x-www-form-urlencoded")) { - const formData = [] - if (requestBody.includes("=")) { - requestBody.split("&").forEach((rq) => { - const [key, val] = rq.split("=") - formData.push(`('${key}', '${val}')`) - }) - } - if (formData.length) { - requestString.push(`payload = [${formData.join(",\n ")}]\n`) - } - } else { - requestString.push(`paylod = '''${requestBody}'''\n`) - } - } else { - requestString.push(`payload = ''\n`) - } - } - requestString.push( - `conn.request("${method}", "${pathName}?${queryString}", payload, headers)\n` - ) - requestString.push(`res = conn.getresponse()\n`) - requestString.push(`data = res.read()\n`) - requestString.push(`print(data.decode("utf-8"))`) - - return requestString.join("") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/python-requests.js b/packages/hoppscotch-app/helpers/codegen/generators/python-requests.js deleted file mode 100644 index 5955e0d33..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/python-requests.js +++ /dev/null @@ -1,102 +0,0 @@ -import { isJSONContentType } from "~/helpers/utils/contenttypes" - -const printHeaders = (headers) => { - if (headers.length) { - return [`headers = {\n`, ` ${headers.join(",\n ")}\n`, `}\n`] - } - - return [] -} - -export const PythonRequestsCodegen = { - id: "python-requests", - name: "Python Requests", - language: "python", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - contentType, - headers, - }) => { - const requestString = [] - const genHeaders = [] - - requestString.push(`import requests\n\n`) - requestString.push(`url = '${url}${pathName}?${queryString}'\n`) - - // auth headers - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - genHeaders.push( - `'Authorization': 'Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}'` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - genHeaders.push(`'Authorization': 'Bearer ${bearerToken}'`) - } - - // custom headers - if (headers.length) { - headers.forEach(({ key, value }) => { - if (key) genHeaders.push(`'${key}': '${value}'`) - }) - } - - // initial request setup - let requestBody = rawInput ? rawParams : rawRequestBody - let requestDataObj = "" - requestString.push(...printHeaders(genHeaders)) - - if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) { - if (contentType && requestBody) { - if (isJSONContentType(contentType)) { - requestBody = JSON.stringify(requestBody) - requestDataObj = `data = ${requestBody}\n` - } else if (contentType.includes("x-www-form-urlencoded")) { - const formData = [] - if (requestBody.includes("=")) { - requestBody.split("&").forEach((rq) => { - const [key, val] = rq.split("=") - formData.push(`('${key}', '${val}')`) - }) - } - if (formData.length) { - requestDataObj = `data = [${formData.join(",\n ")}]\n` - } - } else { - requestDataObj = `data = '''${requestBody}'''\n` - } - } - } - if (requestDataObj) { - requestString.push(requestDataObj) - } - - requestString.push(`response = requests.request(\n`) - requestString.push(` '${method}',\n`) - requestString.push(` '${url}${pathName}?${queryString}',\n`) - - if (requestDataObj && requestBody) { - requestString.push(` data=data,\n`) - } - - if (genHeaders.length) { - requestString.push(` headers=headers,\n`) - } - - requestString.push(`)\n\n`) - requestString.push(`print(response)`) - - return requestString.join("") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/ruby-net-http.js b/packages/hoppscotch-app/helpers/codegen/generators/ruby-net-http.js deleted file mode 100644 index a76efedb5..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/ruby-net-http.js +++ /dev/null @@ -1,80 +0,0 @@ -export const RubyNetHttpCodeGen = { - id: "ruby-net-http", - name: "Ruby Net::HTTP", - language: "ruby", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - headers, - }) => { - const requestString = [] - - requestString.push(`require 'net/http'\n`) - - // initial request setup - let requestBody = rawInput ? rawParams : rawRequestBody - if (requestBody) { - requestBody = requestBody.replaceAll(/'/g, "\\'") // escape single-quotes for single-quoted string compatibility - } - - const verbs = [ - { verb: "GET", rbMethod: "Get" }, - { verb: "POST", rbMethod: "Post" }, - { verb: "PUT", rbMethod: "Put" }, - { verb: "PATCH", rbMethod: "Patch" }, - { verb: "DELETE", rbMethod: "Delete" }, - ] - - // create URI and request - const verb = verbs.find((v) => v.verb === method) - if (!verb) return "" - requestString.push(`uri = URI.parse('${url}${pathName}?${queryString}')\n`) - requestString.push(`request = Net::HTTP::${verb.rbMethod}.new(uri)`) - - // custom headers - if (headers) { - headers.forEach(({ key, value }) => { - if (key) { - requestString.push(`request['${key}'] = '${value}'`) - } - }) - } - - // authentication - if (auth === "Basic Auth") { - requestString.push(`request.basic_auth('${httpUser}', '${httpPassword}')`) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - requestString.push(`request['Authorization'] = 'Bearer ${bearerToken}'`) - } - - // set body - if (["POST", "PUT", "PATCH", "DELETE"].includes(method) && requestBody) { - requestString.push(`request.body = '${requestBody}'\n`) - } - - // process - requestString.push(`http = Net::HTTP.new(uri.host, uri.port)`) - requestString.push(`http.use_ssl = uri.is_a?(URI::HTTPS)`) - requestString.push(`response = http.request(request)\n`) - - // analyse result - requestString.push(`unless response.is_a?(Net::HTTPSuccess) then`) - requestString.push( - ` raise "An error occurred: #{response.code} #{response.message}"` - ) - requestString.push(`else`) - requestString.push(` puts response.body`) - requestString.push(`end`) - - return requestString.join("\n") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/salesforce-apex.js b/packages/hoppscotch-app/helpers/codegen/generators/salesforce-apex.js deleted file mode 100644 index 72180faa4..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/salesforce-apex.js +++ /dev/null @@ -1,80 +0,0 @@ -export const SalesforceApexCodegen = { - id: "salesforce-apex", - name: "Salesforce Apex", - language: "apex", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - headers, - }) => { - const requestString = [] - - // initial request setup - let requestBody = rawInput ? rawParams : rawRequestBody - if (requestBody) { - requestBody = JSON.stringify(requestBody) - .replace(/^"|"$/g, "") - .replace(/\\"/g, '"') - .replace(/'/g, "\\'") // Apex uses single quotes for strings - } - - // create request - requestString.push(`HttpRequest request = new HttpRequest();\n`) - requestString.push(`request.setMethod('${method}');\n`) - requestString.push( - `request.setEndpoint('${url}${pathName}?${queryString}');\n\n` - ) - - // authentification - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - requestString.push( - `request.setHeader('Authorization', 'Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}');\n` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - requestString.push( - `request.setHeader('Authorization', 'Bearer ${bearerToken}');\n` - ) - } - - // custom headers - if (headers) { - headers.forEach(({ key, value }) => { - if (key) { - requestString.push(`request.setHeader('${key}', '${value}');\n`) - } - }) - } - - requestString.push(`\n`) - - // set body - if (["POST", "PUT", "PATCH", "DELETE"].includes(method) && requestBody) { - requestString.push(`request.setBody('${requestBody}');\n\n`) - } - - // process - requestString.push(`try {\n`) - requestString.push(` Http client = new Http();\n`) - requestString.push(` HttpResponse response = client.send(request);\n`) - requestString.push(` System.debug(response.getBody());\n`) - requestString.push(`} catch (CalloutException ex) {\n`) - requestString.push( - ` System.debug('An error occurred ' + ex.getMessage());\n` - ) - requestString.push(`}`) - - return requestString.join("") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/shell-httpie.js b/packages/hoppscotch-app/helpers/codegen/generators/shell-httpie.js deleted file mode 100644 index 0b1f2a06a..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/shell-httpie.js +++ /dev/null @@ -1,58 +0,0 @@ -export const ShellHttpieCodegen = { - id: "shell-httpie", - name: "Shell HTTPie", - language: "sh", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - headers, - }) => { - const methodsWithBody = ["POST", "PUT", "PATCH", "DELETE"] - const includeBody = methodsWithBody.includes(method) - const requestString = [] - - let requestBody = rawInput ? rawParams : rawRequestBody - if (requestBody && includeBody) { - requestBody = requestBody.replace(/'/g, "\\'") - - // Send request body via redirected input - requestString.push(`echo -n $'${requestBody}' | `) - } - - // Executable itself - requestString.push(`http`) - - // basic authentication - if (auth === "Basic Auth") { - requestString.push(` -a ${httpUser}:${httpPassword}`) - } - - // URL - let escapedUrl = `${url}${pathName}?${queryString}` - escapedUrl = escapedUrl.replace(/'/g, "\\'") - requestString.push(` ${method} $'${escapedUrl}'`) - - if (headers) { - headers.forEach(({ key, value }) => { - requestString.push( - ` $'${key.replace(/'/g, "\\'")}:${value.replace(/'/g, "\\'")}'` - ) - }) - } - - if (auth === "Bearer Token" || auth === "OAuth 2.0") { - requestString.push(` 'Authorization:Bearer ${bearerToken}'`) - } - - return requestString.join("") - }, -} diff --git a/packages/hoppscotch-app/helpers/codegen/generators/shell-wget.js b/packages/hoppscotch-app/helpers/codegen/generators/shell-wget.js deleted file mode 100644 index 133065c56..000000000 --- a/packages/hoppscotch-app/helpers/codegen/generators/shell-wget.js +++ /dev/null @@ -1,43 +0,0 @@ -export const ShellWgetCodegen = { - id: "shell-wget", - name: "Shell wget", - language: "sh", - generator: ({ - url, - pathName, - queryString, - auth, - httpUser, - httpPassword, - bearerToken, - method, - rawInput, - rawParams, - rawRequestBody, - headers, - }) => { - const requestString = [] - const requestBody = rawInput ? rawParams : rawRequestBody - requestString.push(`wget -O - --method=${method}`) - requestString.push(` '${url}${pathName}?${queryString}'`) - if (auth === "Basic Auth") { - const basic = `${httpUser}:${httpPassword}` - requestString.push( - ` --header='Authorization: Basic ${window.btoa( - unescape(encodeURIComponent(basic)) - )}'` - ) - } else if (auth === "Bearer Token" || auth === "OAuth 2.0") { - requestString.push(` --header='Authorization: Bearer ${bearerToken}'`) - } - if (headers) { - headers.forEach(({ key, value }) => { - if (key) requestString.push(` --header='${key}: ${value}'`) - }) - } - if (["POST", "PUT", "PATCH", "DELETE"].includes(method) && requestBody) { - requestString.push(` --body-data='${requestBody}'`) - } - return requestString.join(" \\\n") - }, -}