2016-02-13 17:28:47 +02:00
|
|
|
import { combineReducers } from 'redux';
|
|
|
|
|
2016-04-02 13:58:54 +03:00
|
|
|
import { ERROR, SET_CLIENT, SET_OAUTH, SET_OAUTH_RESULT, SET_SCOPES, SET_LOADING_STATE } from './actions';
|
2016-02-13 17:28:47 +02:00
|
|
|
|
|
|
|
export default combineReducers({
|
2016-02-23 07:57:16 +02:00
|
|
|
error,
|
2016-04-02 13:58:54 +03:00
|
|
|
isLoading,
|
2016-02-27 12:53:58 +02:00
|
|
|
client,
|
2016-02-29 20:16:33 +02:00
|
|
|
oauth,
|
|
|
|
scopes
|
2016-02-13 17:28:47 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
function error(
|
|
|
|
state = null,
|
|
|
|
{type, payload = null, error = false}
|
|
|
|
) {
|
|
|
|
switch (type) {
|
|
|
|
case ERROR:
|
|
|
|
if (!error) {
|
|
|
|
throw new Error('Expected payload with error');
|
|
|
|
}
|
|
|
|
return payload;
|
|
|
|
|
|
|
|
default:
|
|
|
|
return state;
|
|
|
|
}
|
|
|
|
}
|
2016-02-23 07:57:16 +02:00
|
|
|
|
2016-04-02 13:58:54 +03:00
|
|
|
|
|
|
|
function isLoading(
|
|
|
|
state = false,
|
|
|
|
{type, payload = null}
|
|
|
|
) {
|
|
|
|
switch (type) {
|
|
|
|
case SET_LOADING_STATE:
|
|
|
|
return !!payload;
|
|
|
|
|
|
|
|
default:
|
|
|
|
return state;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-02-23 07:57:16 +02:00
|
|
|
function client(
|
|
|
|
state = null,
|
|
|
|
{type, payload = {}}
|
|
|
|
) {
|
|
|
|
switch (type) {
|
|
|
|
case SET_CLIENT:
|
|
|
|
return {
|
|
|
|
id: payload.id,
|
|
|
|
name: payload.name,
|
|
|
|
description: payload.description
|
|
|
|
};
|
|
|
|
|
|
|
|
default:
|
|
|
|
return state;
|
|
|
|
}
|
|
|
|
}
|
2016-02-27 12:53:58 +02:00
|
|
|
|
|
|
|
function oauth(
|
|
|
|
state = null,
|
|
|
|
{type, payload = {}}
|
|
|
|
) {
|
|
|
|
switch (type) {
|
|
|
|
case SET_OAUTH:
|
|
|
|
return {
|
|
|
|
clientId: payload.clientId,
|
|
|
|
redirectUrl: payload.redirectUrl,
|
|
|
|
responseType: payload.responseType,
|
|
|
|
scope: payload.scope,
|
|
|
|
state: payload.state
|
|
|
|
};
|
|
|
|
|
2016-03-15 08:36:13 +02:00
|
|
|
case SET_OAUTH_RESULT:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
success: payload.success,
|
|
|
|
code: payload.code,
|
|
|
|
displayCode: payload.displayCode
|
|
|
|
};
|
|
|
|
|
2016-02-27 12:53:58 +02:00
|
|
|
default:
|
|
|
|
return state;
|
|
|
|
}
|
|
|
|
}
|
2016-02-29 20:16:33 +02:00
|
|
|
|
|
|
|
function scopes(
|
|
|
|
state = [],
|
|
|
|
{type, payload = []}
|
|
|
|
) {
|
|
|
|
switch (type) {
|
|
|
|
case SET_SCOPES:
|
|
|
|
return payload;
|
|
|
|
|
|
|
|
default:
|
|
|
|
return state;
|
|
|
|
}
|
|
|
|
}
|