aboutsummaryrefslogtreecommitdiffstats
path: root/web/src
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2016-06-03 18:53:30 -0700
committerMaximilian Hils <git@maximilianhils.com>2016-06-03 18:53:30 -0700
commit1b1ea98f085dba57d5eefea1a65069510c4c23d0 (patch)
tree0bd0f3a1f6d2e737927a8a0fe7d3ca68b1ac1c2b /web/src
parent1b327f34c30e490e6f26ec1ee4e6cfe7b40a47eb (diff)
downloadmitmproxy-1b1ea98f085dba57d5eefea1a65069510c4c23d0.tar.gz
mitmproxy-1b1ea98f085dba57d5eefea1a65069510c4c23d0.tar.bz2
mitmproxy-1b1ea98f085dba57d5eefea1a65069510c4c23d0.zip
web: add flows to redux state
Diffstat (limited to 'web/src')
-rw-r--r--web/src/js/connection.js5
-rw-r--r--web/src/js/ducks/eventLog.js6
-rw-r--r--web/src/js/ducks/flows.js29
-rw-r--r--web/src/js/ducks/index.js6
4 files changed, 40 insertions, 6 deletions
diff --git a/web/src/js/connection.js b/web/src/js/connection.js
index bf9b16d3..ac39a018 100644
--- a/web/src/js/connection.js
+++ b/web/src/js/connection.js
@@ -2,6 +2,7 @@ import {ConnectionActions} from "./actions.js";
import {AppDispatcher} from "./dispatcher.js";
import * as webSocketActions from "./ducks/websocket"
import * as eventLogActions from "./ducks/eventLog"
+import * as flowActions from "./ducks/flows"
export default function Connection(url, dispatch) {
if (url[0] === "/") {
@@ -11,9 +12,9 @@ export default function Connection(url, dispatch) {
var ws = new WebSocket(url);
ws.onopen = function () {
dispatch(webSocketActions.connected())
+ dispatch(flowActions.fetchFlows())
dispatch(eventLogActions.fetchLogEntries())
ConnectionActions.open()
- //TODO: fetch stuff!
};
ws.onmessage = function (m) {
var message = JSON.parse(m.data);
@@ -21,6 +22,8 @@ export default function Connection(url, dispatch) {
switch (message.type) {
case eventLogActions.UPDATE_LOG:
return dispatch(eventLogActions.updateLogEntries(message))
+ case flowActions.UPDATE_FLOWS:
+ return dispatch(flowActions.updateFlows(message))
default:
console.warn("unknown message", message)
}
diff --git a/web/src/js/ducks/eventLog.js b/web/src/js/ducks/eventLog.js
index 883f537c..00b25bcf 100644
--- a/web/src/js/ducks/eventLog.js
+++ b/web/src/js/ducks/eventLog.js
@@ -1,4 +1,4 @@
-import makeList, {ADD} from "./utils/list"
+import makeList from "./utils/list"
import {updateViewFilter, updateViewList} from "./utils/view"
const TOGGLE_FILTER = 'TOGGLE_EVENTLOG_FILTER'
@@ -10,7 +10,7 @@ const {
addToList,
updateList,
fetchList,
-} = makeList(UPDATE_LOG, "/events");
+} = makeList(UPDATE_LOG, "/events")
const defaultState = {
@@ -67,7 +67,7 @@ export function toggleEventLogFilter(filter) {
export function toggleEventLogVisibility() {
return {type: TOGGLE_VISIBILITY}
}
-let id = 0;
+let id = 0
export function addLogEntry(message, level = "web") {
return addToList({
message,
diff --git a/web/src/js/ducks/flows.js b/web/src/js/ducks/flows.js
new file mode 100644
index 00000000..fb934489
--- /dev/null
+++ b/web/src/js/ducks/flows.js
@@ -0,0 +1,29 @@
+import makeList from "./utils/list"
+
+export const UPDATE_FLOWS = "UPDATE_FLOWS"
+
+const {
+ reduceList,
+ updateList,
+ fetchList,
+} = makeList(UPDATE_FLOWS, "/flows")
+
+
+const defaultState = {
+ all: reduceList(),
+}
+
+export default function reducer(state = defaultState, action) {
+ switch (action.type) {
+ case UPDATE_FLOWS:
+ let all = reduceList(state.all, action)
+ return {
+ ...state,
+ all,
+ }
+ default:
+ return state
+ }
+}
+
+export {updateList as updateFlows, fetchList as fetchFlows} \ No newline at end of file
diff --git a/web/src/js/ducks/index.js b/web/src/js/ducks/index.js
index 3043344c..6c521a70 100644
--- a/web/src/js/ducks/index.js
+++ b/web/src/js/ducks/index.js
@@ -1,10 +1,12 @@
import {combineReducers} from 'redux'
-import eventLog from './eventLog.js'
-import websocket from './websocket.js'
+import eventLog from './eventLog'
+import websocket from './websocket'
+import flows from './flows'
const rootReducer = combineReducers({
eventLog,
websocket,
+ flows,
})
export default rootReducer \ No newline at end of file