insomnia/app/ui/redux/modules/index.js
Gregory Schier 3f5e7e2e14 First-Party OAuth 2.0 Support (#120)
* Proof of concept authorize call

* Authorize and Refresh endpoints done

* OAuth2 editor started

* Some small fixes

* Set OAuth headers on request

* Started on some OAuth tests

* Updated network logic with new OAuth API

* OAuth forms and refactor flows

* Fix grant type handling

* Moved auth handling out of render pipeline

* Fixed legacy auth header

* Fix vertical center

* Prompt user on auth type change

* Refresh tokens working (I think) and better UI

* Catch same type auth change

* POC refresh token and small refactor

* Better token handling

* LOading state to token refresh

* Show o-auth-2 errors

* Some minor updates
2017-03-23 15:10:42 -07:00

47 lines
1.4 KiB
JavaScript

import {bindActionCreators, combineReducers} from 'redux';
import * as entities from './entities';
import configureStore from '../create';
import * as global from './global';
import * as db from '../../../common/database';
import * as models from '../../../models';
import * as fetch from '../../../common/fetch';
export async function init () {
const store = configureStore();
// Do things that must happen before initial render
const {addChanges, addChangesSync} = bindActionCreators(entities, store.dispatch);
const {newCommand} = bindActionCreators(global, store.dispatch);
// Restore docs in parent->child->grandchild order
const allDocs = [
...(await models.settings.all()),
...(await models.workspace.all()),
...(await models.workspaceMeta.all()),
...(await models.environment.all()),
...(await models.cookieJar.all()),
...(await models.requestGroup.all()),
...(await models.requestGroupMeta.all()),
...(await models.request.all()),
...(await models.requestMeta.all()),
...(await models.oAuth2Token.all())
];
// Link DB changes to entities reducer/actions
const changes = allDocs.map(doc => [db.CHANGE_UPDATE, doc]);
addChangesSync(changes);
db.onChange(addChanges);
// Bind to fetch commands
fetch.onCommand(newCommand);
store.dispatch(global.init());
return store;
}
export const reducer = combineReducers({
entities: entities.reducer,
global: global.reducer
});