2019-12-23 12:12:58 +00:00
|
|
|
import { transformRestAction } from "transformers/RestActionTransformer";
|
2021-01-12 04:17:28 +00:00
|
|
|
import { PluginType, ApiAction } from "entities/Action";
|
2021-10-06 19:20:35 +00:00
|
|
|
import {
|
|
|
|
|
MultiPartOptionTypes,
|
|
|
|
|
POST_BODY_FORMAT_OPTIONS,
|
feat: Support body in GET API requests (#7127)
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* adds apiContentType to actionConfiguration.formData object
* Handling apiContentType property in Rest API formData
* change apiContentType when user types content-type value and switches http method
* makes api editor as similar as possible to postman, project postman.
* Correcting the import in ApiEditorConstants
* Resolved all merge conflicts
* replay DSL functtionality
* removes unneccessary files from worker
* Fixes type declarations, naming e.t.c.
* fix server side merge conflicts
* fix client side merge conflicts
* fix failing cypress tests
Co-authored-by: Irongade <adeoluayangade@yahoo.com>
Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com>
2022-02-15 11:13:48 +00:00
|
|
|
// POST_BODY_FORMAT_OPTIONS_ENUM,
|
2022-09-09 15:59:47 +00:00
|
|
|
} from "constants/ApiEditorConstants/CommonApiConstants";
|
2019-12-23 12:12:58 +00:00
|
|
|
|
2020-05-08 12:54:27 +00:00
|
|
|
// jest.mock("POST_");
|
2019-12-23 12:12:58 +00:00
|
|
|
|
2021-01-12 04:17:28 +00:00
|
|
|
const BASE_ACTION: ApiAction = {
|
2020-06-04 13:49:22 +00:00
|
|
|
dynamicBindingPathList: [],
|
|
|
|
|
cacheResponse: "",
|
|
|
|
|
executeOnLoad: false,
|
|
|
|
|
invalids: [],
|
|
|
|
|
isValid: false,
|
2022-06-15 15:37:41 +00:00
|
|
|
workspaceId: "",
|
2020-04-23 14:57:37 +00:00
|
|
|
pageId: "",
|
|
|
|
|
pluginId: "",
|
2019-12-23 12:12:58 +00:00
|
|
|
id: "testId",
|
|
|
|
|
datasource: {
|
|
|
|
|
id: "testDataSource",
|
|
|
|
|
},
|
|
|
|
|
name: "testName",
|
2020-06-04 13:49:22 +00:00
|
|
|
pluginType: PluginType.API,
|
2019-12-23 12:12:58 +00:00
|
|
|
actionConfiguration: {
|
2020-05-08 12:54:27 +00:00
|
|
|
httpMethod: "GET",
|
2021-02-16 15:01:35 +00:00
|
|
|
encodeParamsToggle: true,
|
2019-12-23 12:12:58 +00:00
|
|
|
path: "users",
|
2021-01-12 04:17:28 +00:00
|
|
|
headers: [],
|
feat: Support body in GET API requests (#7127)
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* adds apiContentType to actionConfiguration.formData object
* Handling apiContentType property in Rest API formData
* change apiContentType when user types content-type value and switches http method
* makes api editor as similar as possible to postman, project postman.
* Correcting the import in ApiEditorConstants
* Resolved all merge conflicts
* replay DSL functtionality
* removes unneccessary files from worker
* Fixes type declarations, naming e.t.c.
* fix server side merge conflicts
* fix client side merge conflicts
* fix failing cypress tests
Co-authored-by: Irongade <adeoluayangade@yahoo.com>
Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com>
2022-02-15 11:13:48 +00:00
|
|
|
formData: {
|
|
|
|
|
apiContentType: "none",
|
|
|
|
|
},
|
2021-01-12 04:17:28 +00:00
|
|
|
timeoutInMillisecond: 5000,
|
2019-12-23 12:12:58 +00:00
|
|
|
},
|
|
|
|
|
jsonPathKeys: [],
|
2022-06-21 13:57:34 +00:00
|
|
|
messages: [],
|
2019-12-23 12:12:58 +00:00
|
|
|
};
|
|
|
|
|
|
2020-05-08 12:54:27 +00:00
|
|
|
describe("Api action transformer", () => {
|
|
|
|
|
it("Removes params from path", () => {
|
2021-01-12 04:17:28 +00:00
|
|
|
const input: ApiAction = {
|
2020-05-08 12:54:27 +00:00
|
|
|
...BASE_ACTION,
|
|
|
|
|
actionConfiguration: {
|
|
|
|
|
...BASE_ACTION.actionConfiguration,
|
|
|
|
|
path: "users?page=1",
|
|
|
|
|
queryParameters: [
|
|
|
|
|
{
|
|
|
|
|
key: "page",
|
|
|
|
|
value: "1",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const output = {
|
|
|
|
|
...BASE_ACTION,
|
|
|
|
|
actionConfiguration: {
|
|
|
|
|
...BASE_ACTION.actionConfiguration,
|
|
|
|
|
path: "users",
|
|
|
|
|
queryParameters: [
|
|
|
|
|
{
|
|
|
|
|
key: "page",
|
|
|
|
|
value: "1",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
const result = transformRestAction(input);
|
|
|
|
|
expect(result).toEqual(output);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("Sets the correct body for JSON display type", () => {
|
|
|
|
|
const input = {
|
|
|
|
|
...BASE_ACTION,
|
|
|
|
|
actionConfiguration: {
|
|
|
|
|
...BASE_ACTION.actionConfiguration,
|
|
|
|
|
httpMethod: "POST",
|
|
|
|
|
headers: [{ key: "content-type", value: "application/json" }],
|
2020-06-09 06:25:11 +00:00
|
|
|
body: "{ name: 'test' }",
|
2020-05-08 12:54:27 +00:00
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
const output = {
|
|
|
|
|
...BASE_ACTION,
|
|
|
|
|
actionConfiguration: {
|
|
|
|
|
...BASE_ACTION.actionConfiguration,
|
|
|
|
|
httpMethod: "POST",
|
|
|
|
|
headers: [{ key: "content-type", value: "application/json" }],
|
|
|
|
|
body: "{ name: 'test' }",
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
const result = transformRestAction(input);
|
|
|
|
|
expect(result).toEqual(output);
|
|
|
|
|
});
|
|
|
|
|
|
2020-11-10 09:41:05 +00:00
|
|
|
it("bodyFormData should not be reset for non xxx-form-encoded-data type", () => {
|
|
|
|
|
const input = {
|
|
|
|
|
...BASE_ACTION,
|
|
|
|
|
actionConfiguration: {
|
|
|
|
|
...BASE_ACTION.actionConfiguration,
|
|
|
|
|
httpMethod: "POST",
|
|
|
|
|
headers: [{ key: "content-type", value: "application/json" }],
|
|
|
|
|
body: "{ name: 'test' }",
|
2021-01-12 04:17:28 +00:00
|
|
|
bodyFormData: [
|
|
|
|
|
{
|
|
|
|
|
key: "hey",
|
|
|
|
|
value: "ho",
|
|
|
|
|
editable: true,
|
|
|
|
|
mandatory: false,
|
|
|
|
|
description: "I been tryin to do it right",
|
|
|
|
|
type: "",
|
|
|
|
|
},
|
|
|
|
|
],
|
2020-11-10 09:41:05 +00:00
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
const output = {
|
|
|
|
|
...BASE_ACTION,
|
|
|
|
|
actionConfiguration: {
|
|
|
|
|
...BASE_ACTION.actionConfiguration,
|
|
|
|
|
httpMethod: "POST",
|
|
|
|
|
headers: [{ key: "content-type", value: "application/json" }],
|
|
|
|
|
body: "{ name: 'test' }",
|
2021-01-12 04:17:28 +00:00
|
|
|
bodyFormData: [
|
|
|
|
|
{
|
|
|
|
|
key: "hey",
|
|
|
|
|
value: "ho",
|
|
|
|
|
editable: true,
|
|
|
|
|
mandatory: false,
|
|
|
|
|
description: "I been tryin to do it right",
|
|
|
|
|
type: "",
|
|
|
|
|
},
|
|
|
|
|
],
|
2020-11-10 09:41:05 +00:00
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
const result = transformRestAction(input);
|
|
|
|
|
expect(result).toEqual(output);
|
|
|
|
|
});
|
|
|
|
|
|
2020-11-10 11:12:31 +00:00
|
|
|
it("body should not be reset for xxx-form-encoded-data type", () => {
|
|
|
|
|
const input = {
|
|
|
|
|
...BASE_ACTION,
|
|
|
|
|
actionConfiguration: {
|
|
|
|
|
...BASE_ACTION.actionConfiguration,
|
|
|
|
|
httpMethod: "POST",
|
|
|
|
|
headers: [
|
feat: Support body in GET API requests (#7127)
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* adds apiContentType to actionConfiguration.formData object
* Handling apiContentType property in Rest API formData
* change apiContentType when user types content-type value and switches http method
* makes api editor as similar as possible to postman, project postman.
* Correcting the import in ApiEditorConstants
* Resolved all merge conflicts
* replay DSL functtionality
* removes unneccessary files from worker
* Fixes type declarations, naming e.t.c.
* fix server side merge conflicts
* fix client side merge conflicts
* fix failing cypress tests
Co-authored-by: Irongade <adeoluayangade@yahoo.com>
Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com>
2022-02-15 11:13:48 +00:00
|
|
|
{
|
|
|
|
|
key: "content-type",
|
|
|
|
|
value: POST_BODY_FORMAT_OPTIONS.FORM_URLENCODED,
|
|
|
|
|
},
|
2020-11-10 11:12:31 +00:00
|
|
|
],
|
2021-01-12 04:17:28 +00:00
|
|
|
bodyFormData: [
|
|
|
|
|
{
|
|
|
|
|
key: "hey",
|
|
|
|
|
value: "ho",
|
|
|
|
|
editable: true,
|
|
|
|
|
mandatory: false,
|
|
|
|
|
description: "I been tryin to do it right",
|
|
|
|
|
type: "",
|
|
|
|
|
},
|
|
|
|
|
],
|
2020-11-10 11:12:31 +00:00
|
|
|
body: "{ name: 'test' }",
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
const output = {
|
|
|
|
|
...BASE_ACTION,
|
|
|
|
|
actionConfiguration: {
|
|
|
|
|
...BASE_ACTION.actionConfiguration,
|
|
|
|
|
httpMethod: "POST",
|
|
|
|
|
headers: [
|
feat: Support body in GET API requests (#7127)
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* adds apiContentType to actionConfiguration.formData object
* Handling apiContentType property in Rest API formData
* change apiContentType when user types content-type value and switches http method
* makes api editor as similar as possible to postman, project postman.
* Correcting the import in ApiEditorConstants
* Resolved all merge conflicts
* replay DSL functtionality
* removes unneccessary files from worker
* Fixes type declarations, naming e.t.c.
* fix server side merge conflicts
* fix client side merge conflicts
* fix failing cypress tests
Co-authored-by: Irongade <adeoluayangade@yahoo.com>
Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com>
2022-02-15 11:13:48 +00:00
|
|
|
{
|
|
|
|
|
key: "content-type",
|
|
|
|
|
value: POST_BODY_FORMAT_OPTIONS.FORM_URLENCODED,
|
|
|
|
|
},
|
2020-11-10 11:12:31 +00:00
|
|
|
],
|
|
|
|
|
body: "{ name: 'test' }",
|
2021-01-12 04:17:28 +00:00
|
|
|
bodyFormData: [
|
|
|
|
|
{
|
|
|
|
|
key: "hey",
|
|
|
|
|
value: "ho",
|
|
|
|
|
editable: true,
|
|
|
|
|
mandatory: false,
|
|
|
|
|
description: "I been tryin to do it right",
|
|
|
|
|
type: "",
|
|
|
|
|
},
|
|
|
|
|
],
|
2020-11-10 11:12:31 +00:00
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
const result = transformRestAction(input);
|
|
|
|
|
expect(result).toEqual(output);
|
|
|
|
|
});
|
|
|
|
|
|
2020-05-08 12:54:27 +00:00
|
|
|
it("Sets the correct body for xxx-form-encoded-data display type", () => {
|
|
|
|
|
const input = {
|
|
|
|
|
...BASE_ACTION,
|
|
|
|
|
actionConfiguration: {
|
|
|
|
|
...BASE_ACTION.actionConfiguration,
|
|
|
|
|
httpMethod: "POST",
|
|
|
|
|
headers: [
|
feat: Support body in GET API requests (#7127)
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* adds apiContentType to actionConfiguration.formData object
* Handling apiContentType property in Rest API formData
* change apiContentType when user types content-type value and switches http method
* makes api editor as similar as possible to postman, project postman.
* Correcting the import in ApiEditorConstants
* Resolved all merge conflicts
* replay DSL functtionality
* removes unneccessary files from worker
* Fixes type declarations, naming e.t.c.
* fix server side merge conflicts
* fix client side merge conflicts
* fix failing cypress tests
Co-authored-by: Irongade <adeoluayangade@yahoo.com>
Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com>
2022-02-15 11:13:48 +00:00
|
|
|
{
|
|
|
|
|
key: "content-type",
|
|
|
|
|
value: POST_BODY_FORMAT_OPTIONS.FORM_URLENCODED,
|
|
|
|
|
},
|
2020-05-08 12:54:27 +00:00
|
|
|
],
|
2021-01-12 04:17:28 +00:00
|
|
|
bodyFormData: [
|
|
|
|
|
{
|
|
|
|
|
key: "hey",
|
|
|
|
|
value: "ho",
|
|
|
|
|
editable: true,
|
|
|
|
|
mandatory: false,
|
|
|
|
|
description: "I been tryin to do it right",
|
|
|
|
|
type: "",
|
|
|
|
|
},
|
|
|
|
|
],
|
2020-05-08 12:54:27 +00:00
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
const output = {
|
|
|
|
|
...BASE_ACTION,
|
|
|
|
|
actionConfiguration: {
|
|
|
|
|
...BASE_ACTION.actionConfiguration,
|
|
|
|
|
httpMethod: "POST",
|
|
|
|
|
headers: [
|
feat: Support body in GET API requests (#7127)
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* adds apiContentType to actionConfiguration.formData object
* Handling apiContentType property in Rest API formData
* change apiContentType when user types content-type value and switches http method
* makes api editor as similar as possible to postman, project postman.
* Correcting the import in ApiEditorConstants
* Resolved all merge conflicts
* replay DSL functtionality
* removes unneccessary files from worker
* Fixes type declarations, naming e.t.c.
* fix server side merge conflicts
* fix client side merge conflicts
* fix failing cypress tests
Co-authored-by: Irongade <adeoluayangade@yahoo.com>
Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com>
2022-02-15 11:13:48 +00:00
|
|
|
{
|
|
|
|
|
key: "content-type",
|
|
|
|
|
value: POST_BODY_FORMAT_OPTIONS.FORM_URLENCODED,
|
|
|
|
|
},
|
2020-05-08 12:54:27 +00:00
|
|
|
],
|
2020-06-09 06:25:11 +00:00
|
|
|
body: "",
|
2021-01-12 04:17:28 +00:00
|
|
|
bodyFormData: [
|
|
|
|
|
{
|
|
|
|
|
key: "hey",
|
|
|
|
|
value: "ho",
|
|
|
|
|
editable: true,
|
|
|
|
|
mandatory: false,
|
|
|
|
|
description: "I been tryin to do it right",
|
|
|
|
|
type: "",
|
|
|
|
|
},
|
|
|
|
|
],
|
2020-05-08 12:54:27 +00:00
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
const result = transformRestAction(input);
|
|
|
|
|
expect(result).toEqual(output);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("Sets the correct body for custom/raw display type", () => {
|
|
|
|
|
const input = {
|
|
|
|
|
...BASE_ACTION,
|
|
|
|
|
actionConfiguration: {
|
|
|
|
|
...BASE_ACTION.actionConfiguration,
|
|
|
|
|
headers: [{ key: "content-type", value: "text/html" }],
|
|
|
|
|
httpMethod: "POST",
|
2020-06-09 06:25:11 +00:00
|
|
|
body: "raw body",
|
2020-05-08 12:54:27 +00:00
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
const output = {
|
|
|
|
|
...BASE_ACTION,
|
|
|
|
|
actionConfiguration: {
|
|
|
|
|
...BASE_ACTION.actionConfiguration,
|
|
|
|
|
headers: [{ key: "content-type", value: "text/html" }],
|
|
|
|
|
httpMethod: "POST",
|
|
|
|
|
body: "raw body",
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
const result = transformRestAction(input);
|
|
|
|
|
expect(result).toEqual(output);
|
|
|
|
|
});
|
2021-10-06 19:20:35 +00:00
|
|
|
|
|
|
|
|
it("filters empty pairs from form data", () => {
|
|
|
|
|
const input: ApiAction = {
|
|
|
|
|
...BASE_ACTION,
|
|
|
|
|
actionConfiguration: {
|
|
|
|
|
...BASE_ACTION.actionConfiguration,
|
|
|
|
|
httpMethod: "POST",
|
|
|
|
|
headers: [
|
feat: Support body in GET API requests (#7127)
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* adds apiContentType to actionConfiguration.formData object
* Handling apiContentType property in Rest API formData
* change apiContentType when user types content-type value and switches http method
* makes api editor as similar as possible to postman, project postman.
* Correcting the import in ApiEditorConstants
* Resolved all merge conflicts
* replay DSL functtionality
* removes unneccessary files from worker
* Fixes type declarations, naming e.t.c.
* fix server side merge conflicts
* fix client side merge conflicts
* fix failing cypress tests
Co-authored-by: Irongade <adeoluayangade@yahoo.com>
Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com>
2022-02-15 11:13:48 +00:00
|
|
|
{
|
|
|
|
|
key: "content-type",
|
|
|
|
|
value: POST_BODY_FORMAT_OPTIONS.MULTIPART_FORM_DATA,
|
|
|
|
|
},
|
2021-10-06 19:20:35 +00:00
|
|
|
],
|
|
|
|
|
body: "",
|
|
|
|
|
bodyFormData: [
|
|
|
|
|
{
|
|
|
|
|
key: "hey",
|
|
|
|
|
value: "ho",
|
|
|
|
|
type: MultiPartOptionTypes.TEXT,
|
|
|
|
|
editable: true,
|
|
|
|
|
mandatory: false,
|
|
|
|
|
description: "I been tryin to do it right",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: "",
|
|
|
|
|
value: "",
|
|
|
|
|
editable: true,
|
|
|
|
|
mandatory: false,
|
|
|
|
|
description: "I been tryin to do it right",
|
|
|
|
|
type: "",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// output object should not include the second bodyFormData object
|
|
|
|
|
// as its key, value and type are empty
|
|
|
|
|
const output: ApiAction = {
|
|
|
|
|
...BASE_ACTION,
|
|
|
|
|
actionConfiguration: {
|
|
|
|
|
...BASE_ACTION.actionConfiguration,
|
|
|
|
|
httpMethod: "POST",
|
|
|
|
|
headers: [
|
feat: Support body in GET API requests (#7127)
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* WIP
* Refactoring HTTP Method & Content Type to be objects instead of arrays
TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request
* Almost working implementation for the None type
Currently, the body still gets sent in non-GET requests even if the None tab is selected.
* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM
* WIP: Using enum & const for ts autocomplete
* working implementation for NONE type, apiContentType prop added to API actions
* adds apiContentType to actionConfiguration.formData object
* Handling apiContentType property in Rest API formData
* change apiContentType when user types content-type value and switches http method
* makes api editor as similar as possible to postman, project postman.
* Correcting the import in ApiEditorConstants
* Resolved all merge conflicts
* replay DSL functtionality
* removes unneccessary files from worker
* Fixes type declarations, naming e.t.c.
* fix server side merge conflicts
* fix client side merge conflicts
* fix failing cypress tests
Co-authored-by: Irongade <adeoluayangade@yahoo.com>
Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com>
2022-02-15 11:13:48 +00:00
|
|
|
{
|
|
|
|
|
key: "content-type",
|
|
|
|
|
value: POST_BODY_FORMAT_OPTIONS.MULTIPART_FORM_DATA,
|
|
|
|
|
},
|
2021-10-06 19:20:35 +00:00
|
|
|
],
|
|
|
|
|
body: "",
|
|
|
|
|
bodyFormData: [
|
|
|
|
|
{
|
|
|
|
|
key: "hey",
|
|
|
|
|
value: "ho",
|
|
|
|
|
type: MultiPartOptionTypes.TEXT,
|
|
|
|
|
editable: true,
|
|
|
|
|
mandatory: false,
|
|
|
|
|
description: "I been tryin to do it right",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
const result = transformRestAction(input);
|
|
|
|
|
expect(result).toEqual(output);
|
|
|
|
|
});
|
2019-12-23 12:12:58 +00:00
|
|
|
});
|