mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-09-18 10:34:50 +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
|
||||
@triggerThrottled(@)
|
||||
|
||||
_onDidMakeAPIRequest: ({requestId, request, response, error}) =>
|
||||
item = @_generateCurlItem({requestId, request, response, error})
|
||||
_onDidMakeAPIRequest: ({requestId, request, statusCode, error}) =>
|
||||
item = @_generateCurlItem({requestId, request, statusCode, error})
|
||||
@_curlHistory[requestId] = item
|
||||
@triggerThrottled(@)
|
||||
|
||||
_generateCurlItem: ({requestId, request, response, error}) ->
|
||||
_generateCurlItem: ({requestId, request, statusCode, error}) ->
|
||||
url = request.url
|
||||
if request.auth
|
||||
url = url.replace('://', "://#{request.auth.user}:#{request.auth.pass}@")
|
||||
|
@ -100,7 +100,7 @@ class DeveloperBarStore extends NylasStore
|
|||
for k,v of request.headers
|
||||
headers += "-H \"#{k}: #{v}\" "
|
||||
|
||||
statusCode = response?.statusCode ? error?.code ? "pending"
|
||||
statusCode = statusCode ? error?.code ? "pending"
|
||||
|
||||
item =
|
||||
id: "curlitemId:#{requestId}"
|
||||
|
|
|
@ -7,6 +7,7 @@ DatabaseStore = require './stores/database-store'
|
|||
PriorityUICoordinator = require '../priority-ui-coordinator'
|
||||
async = require 'async'
|
||||
|
||||
# TODO: Fold this code into NylasAPI or create a base class
|
||||
class EdgehillAPI
|
||||
|
||||
constructor: ->
|
||||
|
@ -54,9 +55,17 @@ class EdgehillAPI
|
|||
rid = Utils.generateTempId()
|
||||
[rid].forEach (requestId) ->
|
||||
options.startTime = Date.now()
|
||||
Actions.willMakeAPIRequest({request: options, requestId: requestId})
|
||||
Actions.willMakeAPIRequest({
|
||||
request: options,
|
||||
requestId: requestId
|
||||
})
|
||||
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 ->
|
||||
if error? or response.statusCode > 299
|
||||
options.error(new APIError({error:error, response:response, body:body, requestOptions: options}))
|
||||
|
|
|
@ -73,9 +73,19 @@ class NylasAPIRequest
|
|||
requestId = Utils.generateTempId()
|
||||
new Promise (resolve, reject) =>
|
||||
@options.startTime = Date.now()
|
||||
Actions.willMakeAPIRequest({request: @options, requestId: requestId})
|
||||
Actions.willMakeAPIRequest({
|
||||
request: @options,
|
||||
requestId: requestId
|
||||
})
|
||||
|
||||
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 =>
|
||||
if error or response.statusCode > 299
|
||||
# Some errors (like socket errors and some types of offline
|
||||
|
|
Loading…
Add table
Reference in a new issue