var AppDispatcher = require('../dispatchers/AppDispatcher'); var AppConstants = require('../constants/AppConstants'); var merge = require('react/lib/merge'); var EventEmitter = require('events').EventEmitter; var _ = require('underscore'); // var ActionTypes = AppConstants.ActionTypes; var CHANGE_EVENT = 'change'; var ActionTypes = AppConstants.ActionTypes; var _customer = {}; var _error = []; var CustomerStore = merge(EventEmitter.prototype, { init: function(customer){ // Set _customer here. console.log('set customer here'); }, get_errors: function(){ return _error; }, has_errors: function(){ return !_.isEmpty(_error); }, emitChange: function() { this.emit(CHANGE_EVENT); }, /** * @param {function} callback */ addChangeListener: function(callback) { this.on(CHANGE_EVENT, callback); }, /** * @param {function} callback */ removeChangeListener: function(callback) { this.removeListener(CHANGE_EVENT, callback); }, }); CustomerStore.dispatchToken = AppDispatcher.register(function(payload){ var action = payload.action; console.log('CustomerStore: ' + JSON.stringify(action)); switch(action.type){ case ActionTypes.CUSTOMER_SIGNUP: CustomerStore.emitChange(); break; case ActionTypes.ACCOUNT_CONNECT: CustomerStore.emitChange(); break; case ActionTypes.CUSTOMER_UPDATE: CustomerStore.emitChange(); break; case ActionTypes.RECIEVE_CREATED_CUSTOMER: CustomerStore.init(action.data); CustomerStore.emitChange(); break; case ActionTypes.RECIEVE_ERROR: _error = action.data.error; CustomerStore.emitChange(); break; default: // do nothing } }); module.exports = CustomerStore;