PromucFlow_constructor/app/client/cypress/support/Pages
sneha122 5f2a9ef387
fix: REST API multimedia file upload issue fixed (#32921)
## Description
If we use REST API action and file picker widget to upload any
multimedia files (image, audio, video, pdf, xlsx), The file upload would
be successful but file would get corrupted upon uploading. This was
happening because file picker widget encodes this file to base64 format,
and we were uploading this same base64 string using REST API url.
Instead we should have decoded this base64 and then uploaded the file to
retain the original contents of the file.

This PR fixes that issue by adding a new tab in body of the REST API
action called `binary`, once we select this tab, we get autogenerated
header for `Content-Type: application/octet-stream`, in this binary
input field we can then provide base64 encoded file contents, the server
then decodes the contents before triggering the respective REST API and
uploading the file.

### Steps to test the issue
1. Add a file picker widget on canvas
2. Select data format as `Base64`
3. Upload any of pdf, image, audio, video, xlsx in file picker
4. Create a REST API action using [Dropbox upload
API](https://www.dropbox.com/developers/documentation/http/documentation#files-upload)
5. Configure the API headers as mentioned in the documentation, also
configure file name in the header correctly
6. Go to body tab, select binary and file contents in input box using
binding like {{Filepicker1.files[0].data}}
7. Execute this API
8. Now go to your dropbox account and check the uploaded file, you
should be able to successfully preview it


Fixes #32378  
_or_  
Fixes `Issue URL`
> [!WARNING]  
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._

## Automation

/ok-to-test tags="@tag.Datasource"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8844375718>
> Commit: 3316290a4d7d77ae3f9d8969245c5f470ef1ab5c
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8844375718&attempt=1"
target="_blank">Click here!</a>

<!-- end of auto-generated comment: Cypress test results  -->








## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Added support for binary file uploads in API requests, including
handling of base64-encoded files.
- Expanded content type options to include a new "BINARY" type for API
requests.

- **Tests**
- Implemented new tests to verify the functionality of binary file
uploads with dynamic data binding.

- **Bug Fixes**
- Ensured correct handling and auto-generation of headers for binary
file types and form urlencoded data formats.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2024-04-29 17:08:33 +05:30
..
AppSettings test: Cypress | Replace static waits from Helpers + Flaky fixes (#29856) 2024-01-05 11:42:03 +05:30
IDE feat: revamped logic for tabs removal and action/JS deletion (#32690) 2024-04-19 12:19:24 +05:30
AdminSettings.ts chore: Make edit launch buttons as links & add upgrade ramps for session timeout setting (#31862) 2024-03-21 15:37:13 +05:30
AggregateHelper.ts chore: update storybook (#32828) 2024-04-22 12:17:28 +03:00
AnvilLayout.ts feat: Anvil DnD Polish(Refactor) (#32839) 2024-04-29 11:32:08 +05:30
ApiPage.ts fix: REST API multimedia file upload issue fixed (#32921) 2024-04-29 17:08:33 +05:30
AssertHelper.ts test: Cypress | Downgrade Cypress to 13.5.1 (#31011) 2024-02-09 13:33:30 +05:30
AutoLayout.ts fix: missing methods in gitexecutorceimpl (#32614) 2024-04-12 06:21:01 +05:30
Canvas.ts chore: cypress test for canvas view mode (#32354) 2024-04-03 14:52:09 +05:30
CommunityTemplates.ts feat: community templates UI (#27302) 2023-09-25 11:57:23 +05:30
DataSources.ts fix: connection mode hidden from mysql form config (#32487) 2024-04-10 12:34:04 +05:30
DebuggerHelper.ts fix: api error update full error object instead of only defined keys (#27316) 2023-09-20 16:12:43 +05:30
DeployModeHelper.ts test: Cypress | Replacing some external api's with TED + Flaky fix (#31118) 2024-02-23 13:18:01 +05:30
EditorNavigation.ts fix: action selector create flow (#32326) 2024-04-05 11:28:47 +05:30
EntityExplorer.ts chore: update storybook (#32828) 2024-04-22 12:17:28 +03:00
FakerHelper.ts chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> 2023-03-16 17:11:47 +05:30
GitSync.ts test: Some cleanup for Git Cypress tests (#32836) 2024-04-23 10:01:14 +05:30
GSheetHelper.ts test: Gsheet Automation (#25255) 2023-07-26 18:56:24 +05:30
HomePage.ts chore: Change wait for viewPage in EditAppFromSearch to getConsolidatedData (#32856) 2024-04-23 10:35:57 +05:30
InviteModal.ts test: Cypress | SetWidget property validations + CI Stabilize (#28626) 2023-11-06 15:18:00 +05:30
JSEditor.ts fix: deprecate JS object confirm before calling (#32527) 2024-04-12 12:18:14 +05:30
LibraryInstaller.ts chore: App Sidebar testing (#28479) 2023-11-15 08:01:12 +05:30
MultipleEnvironments.ts chore: Multiple Env code split for 1-click (#27275) 2023-09-29 16:16:24 +05:30
Onboarding.ts chore: removed onboarding flags ab_create_new_apps_enabled , ab_start_with_data_default_enabled (#31384) 2024-03-15 11:13:14 +05:30
PageList.ts chore: Make pages section into a dropdown (#32486) 2024-04-18 16:04:38 +05:30
PartialImportExport.ts chore: Add cypress specs for partial import and export functionality (#30166) 2024-01-17 11:20:01 +05:30
PeekOverlay.ts feat: peek overlay nested properties + perf improvements (#23414) 2023-05-26 17:12:10 +05:30
PropertyPane.ts fix: number slider + category slider color spec fails (#32935) 2024-04-29 11:31:46 +05:30
Table.ts feat: Frontend changes for consolidated-api with EE test case support (#30506) 2024-01-24 12:14:16 +05:30
Tabs.ts test: added tests for Tabs (#27765) 2023-10-05 09:34:41 +05:30
Templates.ts chore: Add spec for create new app from template (#31311) 2024-02-28 14:42:35 +05:30
WDSWidgets.ts fix: Anvil toggleable widgets not working when native callbacks are used for AnvilFlexComponent (#31125) 2024-02-15 11:00:57 +05:30