From 7a6e7d8214674db8e80933dd416e965248b1aa13 Mon Sep 17 00:00:00 2001 From: Leonardo Ferreira Lima <80768424@redecorp.br> Date: Fri, 3 May 2024 10:00:05 -0300 Subject: [PATCH] fix(code-generator): when is a file in a multipart form request when generate to curl map fileName property fixes #2224 --- .../GenerateCodeItem/CodeView/index.js | 5 ++++- .../bruno-app/src/utils/codegenerator/har.js | 20 +++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/GenerateCodeItem/CodeView/index.js b/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/GenerateCodeItem/CodeView/index.js index f0fa506b21..d4c3ada7c6 100644 --- a/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/GenerateCodeItem/CodeView/index.js +++ b/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/GenerateCodeItem/CodeView/index.js @@ -25,7 +25,10 @@ const CodeView = ({ language, item }) => { let snippet = ''; try { - snippet = new HTTPSnippet(buildHarRequest({ request: item.request, headers })).convert(target, client); + snippet = new HTTPSnippet(buildHarRequest({ request: item.request, headers, target, client })).convert( + target, + client + ); } catch (e) { console.error(e); snippet = 'Error generating code snippet'; diff --git a/packages/bruno-app/src/utils/codegenerator/har.js b/packages/bruno-app/src/utils/codegenerator/har.js index 0f2656370a..f1f94ddbb9 100644 --- a/packages/bruno-app/src/utils/codegenerator/har.js +++ b/packages/bruno-app/src/utils/codegenerator/har.js @@ -31,14 +31,26 @@ const createQuery = (queryParams = []) => { })); }; -const createPostData = (body) => { +const createPostData = (body, { target, client }) => { const contentType = createContentType(body.mode); if (body.mode === 'formUrlEncoded' || body.mode === 'multipartForm') { return { mimeType: contentType, params: body[body.mode] .filter((param) => param.enabled) - .map((param) => ({ name: param.name, value: param.value })) + .map(({ name, value, type }) => { + if (body.mode === 'multipartForm' && type === 'file' && target === 'shell' && client === 'curl') { + return { + name, + fileName: value + }; + } + + return { + name, + value + }; + }) }; } else { return { @@ -48,7 +60,7 @@ const createPostData = (body) => { } }; -export const buildHarRequest = ({ request, headers }) => { +export const buildHarRequest = ({ request, headers, target, client }) => { return { method: request.method, url: encodeURI(request.url), @@ -56,7 +68,7 @@ export const buildHarRequest = ({ request, headers }) => { cookies: [], headers: createHeaders(headers), queryString: createQuery(request.params), - postData: createPostData(request.body), + postData: createPostData(request.body, { target, client }), headersSize: 0, bodySize: 0 };