Home Reference Source

application/services/error-service.js

  1. import Immutable from 'immutable';
  2.  
  3. import alt from './../alt';
  4. import BaseService from './base-service';
  5.  
  6. /**
  7. * Errors live in internal stack. Simply call the add() method to display a new error:
  8. * <code>
  9. * ErrorService.add('warning', 'Foo bar!');
  10. * </code>
  11. */
  12. class ErrorService extends BaseService {
  13.  
  14. updateError(error) {
  15. return error;
  16. }
  17.  
  18. add(type, message) {
  19. const err = {type: type, message: message};
  20.  
  21. return (dispatch) => {
  22. setTimeout(() => {
  23. this.updateError(err);
  24. }, 1);
  25. };
  26. }
  27. }
  28.  
  29. const service = alt.createActions(ErrorService);
  30.  
  31. class ErrorsStore {
  32. constructor() {
  33. this.state = {
  34. 'error': {},
  35. };
  36.  
  37. this.bindListeners({
  38. 'handleUpdateError': service.UPDATE_ERROR
  39. });
  40. }
  41.  
  42. handleUpdateError(error) {
  43. this.setState({'error': error});
  44. }
  45. }
  46.  
  47. const store = alt.createStore(ErrorsStore, 'ErrorsStore');
  48.  
  49. export {service as ErrorService, store as ErrorsStore};