controltower
Advanced tools
Comparing version 0.8.3 to 0.9.1
{ | ||
"name": "controltower", | ||
"version": "0.8.3", | ||
"version": "0.9.1", | ||
"main": "./src/index.js", | ||
@@ -13,3 +13,4 @@ "license": "AGPL-3.0", | ||
"ppp": "Increases the version patch number, push to github and publish to npm", | ||
"mpp": "Increases the version minor number, push to github and publish to npm" | ||
"mpp": "Increases the version minor number, push to github and publish to npm", | ||
"create:config": "Generates a config.js config file based on your env vars" | ||
}, | ||
@@ -61,10 +62,10 @@ "scripts": { | ||
"bootstrap": "^3.3.7", | ||
"eslint": "^3.4.0", | ||
"eslint": "^3.5.0", | ||
"eslint-config-calamar": "^2.1.1", | ||
"eslint-plugin-babel": "^3.3.0", | ||
"eslint-plugin-import": "^1.14.0", | ||
"eslint-plugin-import": "^1.15.0", | ||
"gentelella": "^1.3.0", | ||
"http-server": "^0.9.0", | ||
"npm-scripts-info": "^0.3.6", | ||
"rollup": "^0.34.13", | ||
"rollup": "^0.35.10", | ||
"rollup-plugin-babel": "^2.6.1", | ||
@@ -71,0 +72,0 @@ "rollup-plugin-browserify-transform": "^0.1.0", |
@@ -21,2 +21,10 @@ 'use strict'; | ||
var _bot = require('./models/bot'); | ||
var _bot2 = _interopRequireDefault(_bot); | ||
var _api = require('./models/api'); | ||
var _api2 = _interopRequireDefault(_api); | ||
var _fbSession = require('./models/fbSession'); | ||
@@ -26,6 +34,2 @@ | ||
var _bots = require('./models/bots'); | ||
var _bots2 = _interopRequireDefault(_bots); | ||
var _fbSDK = require('./views/fbSDK'); | ||
@@ -54,11 +58,12 @@ | ||
// models | ||
// config | ||
const app = (0, _choo2.default)({ href: true, history: true }); | ||
// config | ||
// models | ||
app.model(_app2.default); | ||
app.model(_customer2.default); | ||
app.model((0, _fbSession2.default)(_config2.default)); | ||
app.model(_bots2.default); | ||
app.model(_bot2.default); | ||
app.model((0, _api2.default)(_config2.default.calamar)); | ||
app.model((0, _fbSession2.default)(_config2.default.facebook)); | ||
@@ -65,0 +70,0 @@ const defaultAnonView = _login2.default; |
@@ -9,35 +9,20 @@ 'use strict'; | ||
// default state | ||
const initialState = { | ||
id: null, | ||
isLogged: false, | ||
facebook: { | ||
const customerModel = { | ||
namespace: 'customer', | ||
state: { | ||
id: null, | ||
name: null, | ||
email: null, | ||
accessToken: null | ||
} | ||
}; | ||
// reducers | ||
const signOut = () => initialState; | ||
const signIn = (data, state) => _extends({}, state, { | ||
isLogged: true | ||
}); | ||
const setFbInfo = (data, state) => _extends({}, state, { | ||
facebook: _extends({}, state.facebook, { | ||
id: data.id, | ||
name: data.name, | ||
email: data.email, | ||
accessToken: data.accessToken | ||
}) | ||
}); | ||
const customerModel = { | ||
namespace: 'customer', | ||
state: initialState, | ||
bots: [], | ||
facebookId: null, | ||
isLogged: null | ||
}, | ||
reducers: { | ||
setFbInfo, | ||
signIn, | ||
signOut | ||
signIn: (data, state) => _extends({}, state, { | ||
isLogged: true | ||
}), | ||
signOut: (data, state) => _extends({}, state, { | ||
isLogged: false | ||
}), | ||
set: data => data | ||
} | ||
@@ -44,0 +29,0 @@ }; |
@@ -6,6 +6,2 @@ 'use strict'; | ||
}); | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
// effects | ||
const signInToggle = (isLogged, loginParams) => { | ||
@@ -24,47 +20,35 @@ if (isLogged) { | ||
}; | ||
const getUserInfo = (userFields, send, done) => { | ||
const accessToken = window.FB.getAuthResponse().accessToken; | ||
window.FB.api(`/me?fields=${ userFields }`, response => { | ||
console.table(_extends({}, response, { accessToken })); | ||
send('customer:setFbInfo', _extends({}, response, { accessToken }), done); | ||
}); | ||
}; | ||
// subscriptions | ||
const createInit = config => (send, done) => { | ||
const { appId } = config; | ||
const loginStatusChanged = data => { | ||
// console.log('----fbLoginStatusChange', data); | ||
if (data.status === 'connected') { | ||
send('fbsession:fetchInfo', data, done); | ||
return send('customer:signIn', null, done); | ||
} | ||
return send('customer:signOut', data, done); | ||
}; | ||
window.fbAsyncInit = () => { | ||
// console.log('----fbAsyncInit----'); | ||
window.FB.init({ | ||
appId, | ||
cookie: true, // enable cookies to allow the server to access the session | ||
xfbml: true, // parse social plugins on this page | ||
version: 'v2.7' // use graph api version 2.5 | ||
}); | ||
window.FB.Event.subscribe('auth.statusChange', loginStatusChanged); | ||
window.FB.getLoginStatus(); | ||
}; | ||
}; | ||
const createFbSessionModel = config => ({ | ||
namespace: 'fbsession', | ||
state: {}, | ||
subscriptions: { | ||
init: (send, done) => { | ||
window.fbAsyncInit = () => { | ||
window.FB.init({ | ||
appId: config.appId, | ||
cookie: true, | ||
xfbml: true, | ||
version: 'v2.7' | ||
}); | ||
window.FB.Event.subscribe('auth.statusChange', data => send('fbsession:statusChange', data, done)); | ||
window.FB.getLoginStatus(); | ||
}; | ||
done(); | ||
} | ||
}, | ||
effects: { | ||
signIn: (data, state, send) => signInToggle(false, config.facebook.loginParams, send), | ||
signInToggle: (data, state, send) => signInToggle(data.isLogged, config.facebook.loginParams, send), | ||
fetchInfo: (data, state, send, done) => getUserInfo(config.facebook.userFields, send, done) | ||
}, | ||
subscriptions: { | ||
statusChange: createInit(config.facebook) | ||
statusChange: (data, state, send, done) => { | ||
if (data.status === 'connected') { | ||
send('customer:signIn', data.authResponse, done); | ||
send('api:set', { token: data.authResponse.accessToken }, done); | ||
return send('api:getCustomer', null, done); | ||
} | ||
return send('customer:signOut', data, done); | ||
}, | ||
signIn: (data, state, send) => signInToggle(false, config.loginParams, send), | ||
signInToggle: (data, state, send) => signInToggle(data.isLogged, config.loginParams, send) | ||
} | ||
}); | ||
exports.default = createFbSessionModel; | ||
module.exports = exports['default']; |
@@ -31,2 +31,6 @@ 'use strict'; | ||
<div class="right_col"> | ||
<h1>Customer</h1> | ||
<code><pre>${ JSON.stringify(state.customer, ' ', 2) }</pre></code> | ||
<h1>Bot</h1> | ||
<code><pre>${ JSON.stringify(state.bot, ' ', 2) }</pre></code> | ||
</div> | ||
@@ -33,0 +37,0 @@ <footer> |
54744
22
451