Mailspring/internal_packages/inbox-activity-bar/lib/activity-bar-store.coffee
Evan Morikawa 132263c38c refactor(tasks): refactor task store
Summary:
task store fixes

more task store fixes

check for blocked tasks

retry tasks

add spec descriptions

more test stubs

Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://review.inboxapp.com/D1209
2015-02-20 12:24:15 -08:00

62 lines
1.6 KiB
CoffeeScript

Reflux = require 'reflux'
{Actions} = require 'inbox-exports'
qs = require 'querystring'
ActivityBarStore = Reflux.createStore
init: ->
@_setStoreDefaults()
@_registerListeners()
@_section = "curl"
########### PUBLIC #####################################################
curlHistory: -> @_curlHistory
expandedSection: -> @_section
longPollState: -> @_longPollState
########### PRIVATE ####################################################
_setStoreDefaults: ->
@_curlHistory = []
@_longPollState = 'Unknown'
_registerListeners: ->
@listenTo Actions.didMakeAPIRequest, @_onAPIRequest
@listenTo Actions.developerPanelSelectSection, @_onSelectSection
@listenTo Actions.longPollStateChanged, @_onLongPollStateChange
@listenTo Actions.logout, @_onLogout
_onLogout: ->
@_setStoreDefaults()
@trigger(@)
_onSelectSection: (section) ->
@_section = section
@trigger(@)
_onLongPollStateChange: (state) ->
@_longPollState = state
@trigger(@)
_onAPIRequest: ({request, response}) ->
url = request.url
if request.auth
url = url.replace('://', "://#{request.auth.user}:#{request.auth.pass}@")
if request.qs
url += "?#{qs.stringify(request.qs)}"
postBody = ""
postBody = JSON.stringify(request.body).replace(/'/g, '\\u0027') if request.body
data = ""
data = "-d '#{postBody}'" unless request.method == 'GET'
item =
command: "curl -X #{request.method} #{data} #{url}"
statusCode: response?.statusCode || 0
@_curlHistory.unshift(item)
@trigger(@)
module.exports = ActivityBarStore