From 48b690169e18d2deae7e9995cf212d2ab4f5c843 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20B=C3=BCchele?= Date: Wed, 19 Jun 2019 08:57:40 -0700 Subject: [PATCH] Copy request details Summary: Copying/Creating a Paste from a network request only copied the domain. Now we are including all request/response data. Reviewed By: jknoxville Differential Revision: D15898038 fbshipit-source-id: 570ca5bb76e65b90b2b467856e6d3747682cc20d --- src/plugins/network/index.js | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/plugins/network/index.js b/src/plugins/network/index.js index dfe0462a9..0f3c6e721 100644 --- a/src/plugins/network/index.js +++ b/src/plugins/network/index.js @@ -27,7 +27,11 @@ import { FlipperPlugin, } from 'flipper'; import type {Request, RequestId, Response} from './types.js'; -import {convertRequestToCurlCommand, getHeaderValue} from './utils.js'; +import { + convertRequestToCurlCommand, + getHeaderValue, + decodeBody, +} from './utils.js'; import RequestDetails from './RequestDetails.js'; import {clipboard} from 'electron'; import {URL} from 'url'; @@ -266,6 +270,31 @@ function buildRow(request: Request, response: ?Response): ?TableBodyRow { const domain = url.host + url.pathname; const friendlyName = getHeaderValue(request.headers, 'X-FB-Friendly-Name'); + let copyText = `# HTTP request for ${domain} (ID: ${request.id}) +## Request +HTTP ${request.method} ${request.url} +${request.headers + .map(({key, value}) => `${key}: ${String(value)}`) + .join('\n')}`; + + if (request.data) { + copyText += `\n\n${decodeBody(request)}`; + } + + if (response) { + copyText += ` + +## Response +HTTP ${response.status} ${response.reason} +${response.headers + .map(({key, value}) => `${key}: ${String(value)}`) + .join('\n')}`; + } + + if (response) { + copyText += `\n\n${decodeBody(response)}`; + } + return { columns: { requestTimestamp: { @@ -306,7 +335,7 @@ function buildRow(request: Request, response: ?Response): ?TableBodyRow { key: request.id, filterValue: `${request.method} ${request.url}`, sortKey: request.timestamp, - copyText: request.url, + copyText, highlightOnHover: true, }; }