(
request: CurrentRestRequest,
target: Target,
client?: string,
selectedEnvData: Record<string, any> = {},
)
| 24 | | 'swift'; |
| 25 | |
| 26 | function generateHTTPSnippet( |
| 27 | request: CurrentRestRequest, |
| 28 | target: Target, |
| 29 | client?: string, |
| 30 | selectedEnvData: Record<string, any> = {}, |
| 31 | ): string { |
| 32 | const interpolatedResult = interpolate(request, selectedEnvData); |
| 33 | const interpolated = (interpolatedResult.result as CurrentRestRequest) ?? request; |
| 34 | const postData: any = {}; |
| 35 | if (interpolated.data.contentType === 'application/x-www-form-urlencoded') { |
| 36 | const params = interpolated.data.formDataBody |
| 37 | ?.filter((el: any) => el.isEnabled !== false) |
| 38 | .map((kv: any) => { |
| 39 | return { |
| 40 | name: kv.key, |
| 41 | value: kv.value, |
| 42 | }; |
| 43 | }); |
| 44 | postData.params = params; |
| 45 | postData.mimeType = 'application/x-www-form-urlencoded'; |
| 46 | } else if (interpolated.data.contentType) { |
| 47 | postData.mimeType = interpolated.data.contentType; |
| 48 | postData.text = interpolated.data.body; |
| 49 | } else { |
| 50 | postData.mimeType = 'text/plain'; |
| 51 | postData.text = interpolated.data.body; |
| 52 | } |
| 53 | const headers = interpolated.data.headers |
| 54 | ?.filter((el: any) => el.isEnabled !== false) |
| 55 | .map((header: any) => { |
| 56 | return { |
| 57 | name: header.key, |
| 58 | value: header.value, |
| 59 | }; |
| 60 | }); |
| 61 | const uri = interpolated.data.uri ?? 'https://example.com'; |
| 62 | const url = uri.startsWith('http') ? uri : `http://${uri}`; |
| 63 | const opts: any = { |
| 64 | method: interpolated.data.method ?? 'GET', |
| 65 | url, |
| 66 | headers: headers ?? [], |
| 67 | }; |
| 68 | if (opts.method !== 'GET') { |
| 69 | opts.postData = postData; |
| 70 | } |
| 71 | const snippet = new HTTPSnippet(opts); |
| 72 | const res = snippet.convert(target, client); |
| 73 | if (typeof res !== 'string') { |
| 74 | throw new Error('Failed to generate snippet'); |
| 75 | } |
| 76 | return res; |
| 77 | } |
| 78 | |
| 79 | export { generateHTTPSnippet }; |
no test coverage detected