mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-09-23 13:04:53 +08:00
fix(networking): Don't include entire response body in didMakeAPIRequest
Summary: Fixes T3625 Test Plan: Easy to test by opening/closing reply options dropdown as a large image attachment is downloaded Reviewers: evan, dillon Reviewed By: dillon Maniphest Tasks: T3625 Differential Revision: https://phab.nylas.com/D2034
This commit is contained in:
parent
0caf5966ee
commit
c7ba9c32bb
3 changed files with 27 additions and 8 deletions
|
@ -79,12 +79,12 @@ class DeveloperBarStore extends NylasStore
|
||||||
@_curlHistory[requestId] = item
|
@_curlHistory[requestId] = item
|
||||||
@triggerThrottled(@)
|
@triggerThrottled(@)
|
||||||
|
|
||||||
_onDidMakeAPIRequest: ({requestId, request, response, error}) =>
|
_onDidMakeAPIRequest: ({requestId, request, statusCode, error}) =>
|
||||||
item = @_generateCurlItem({requestId, request, response, error})
|
item = @_generateCurlItem({requestId, request, statusCode, error})
|
||||||
@_curlHistory[requestId] = item
|
@_curlHistory[requestId] = item
|
||||||
@triggerThrottled(@)
|
@triggerThrottled(@)
|
||||||
|
|
||||||
_generateCurlItem: ({requestId, request, response, error}) ->
|
_generateCurlItem: ({requestId, request, statusCode, error}) ->
|
||||||
url = request.url
|
url = request.url
|
||||||
if request.auth
|
if request.auth
|
||||||
url = url.replace('://', "://#{request.auth.user}:#{request.auth.pass}@")
|
url = url.replace('://', "://#{request.auth.user}:#{request.auth.pass}@")
|
||||||
|
@ -100,7 +100,7 @@ class DeveloperBarStore extends NylasStore
|
||||||
for k,v of request.headers
|
for k,v of request.headers
|
||||||
headers += "-H \"#{k}: #{v}\" "
|
headers += "-H \"#{k}: #{v}\" "
|
||||||
|
|
||||||
statusCode = response?.statusCode ? error?.code ? "pending"
|
statusCode = statusCode ? error?.code ? "pending"
|
||||||
|
|
||||||
item =
|
item =
|
||||||
id: "curlitemId:#{requestId}"
|
id: "curlitemId:#{requestId}"
|
||||||
|
|
|
@ -7,6 +7,7 @@ DatabaseStore = require './stores/database-store'
|
||||||
PriorityUICoordinator = require '../priority-ui-coordinator'
|
PriorityUICoordinator = require '../priority-ui-coordinator'
|
||||||
async = require 'async'
|
async = require 'async'
|
||||||
|
|
||||||
|
# TODO: Fold this code into NylasAPI or create a base class
|
||||||
class EdgehillAPI
|
class EdgehillAPI
|
||||||
|
|
||||||
constructor: ->
|
constructor: ->
|
||||||
|
@ -54,9 +55,17 @@ class EdgehillAPI
|
||||||
rid = Utils.generateTempId()
|
rid = Utils.generateTempId()
|
||||||
[rid].forEach (requestId) ->
|
[rid].forEach (requestId) ->
|
||||||
options.startTime = Date.now()
|
options.startTime = Date.now()
|
||||||
Actions.willMakeAPIRequest({request: options, requestId: requestId})
|
Actions.willMakeAPIRequest({
|
||||||
|
request: options,
|
||||||
|
requestId: requestId
|
||||||
|
})
|
||||||
nodeRequest options, (error, response, body) ->
|
nodeRequest options, (error, response, body) ->
|
||||||
Actions.didMakeAPIRequest({request: options, response: response, error: error, requestId: requestId})
|
Actions.didMakeAPIRequest({
|
||||||
|
request: options,
|
||||||
|
statusCode: response?.statusCode,
|
||||||
|
error: error,
|
||||||
|
requestId: requestId
|
||||||
|
})
|
||||||
PriorityUICoordinator.settle.then ->
|
PriorityUICoordinator.settle.then ->
|
||||||
if error? or response.statusCode > 299
|
if error? or response.statusCode > 299
|
||||||
options.error(new APIError({error:error, response:response, body:body, requestOptions: options}))
|
options.error(new APIError({error:error, response:response, body:body, requestOptions: options}))
|
||||||
|
|
|
@ -73,9 +73,19 @@ class NylasAPIRequest
|
||||||
requestId = Utils.generateTempId()
|
requestId = Utils.generateTempId()
|
||||||
new Promise (resolve, reject) =>
|
new Promise (resolve, reject) =>
|
||||||
@options.startTime = Date.now()
|
@options.startTime = Date.now()
|
||||||
Actions.willMakeAPIRequest({request: @options, requestId: requestId})
|
Actions.willMakeAPIRequest({
|
||||||
|
request: @options,
|
||||||
|
requestId: requestId
|
||||||
|
})
|
||||||
|
|
||||||
req = request @options, (error, response, body) =>
|
req = request @options, (error, response, body) =>
|
||||||
Actions.didMakeAPIRequest({request: @options, response: response, error: error, requestId: requestId})
|
Actions.didMakeAPIRequest({
|
||||||
|
request: @options,
|
||||||
|
statusCode: response?.statusCode,
|
||||||
|
error: error,
|
||||||
|
requestId: requestId
|
||||||
|
})
|
||||||
|
|
||||||
PriorityUICoordinator.settle.then =>
|
PriorityUICoordinator.settle.then =>
|
||||||
if error or response.statusCode > 299
|
if error or response.statusCode > 299
|
||||||
# Some errors (like socket errors and some types of offline
|
# Some errors (like socket errors and some types of offline
|
||||||
|
|
Loading…
Add table
Reference in a new issue