application/redux/actions/site-actions.js
- import BaseService from './../../services/base-service';
-
- class SiteService extends BaseService {
-
- fetch(opts = {}) {
- return this.get('/v3/site', opts);
- }
-
- fetchRoutes(opts = {}) {
- return this.get('/v3/site/route', opts);
- }
-
- putRoute(uuid, data = {}) {
- let postData = data;
- postData['uuid'] = uuid;
- return this.put('/v3/site/route', postData);
- }
-
- postRoute(data = {}) {
- return this.post('/v3/site/route', data);
- }
-
- deleteRoute(uuid) {
- let postData = {
- uuid: uuid
- };
- return this.delete('/v3/site/route', postData);
- }
- }
-
- const service = new SiteService;
-
- /**
- * Action types
- */
- export const SITE_REQUEST = 'SITE_REQUEST';
- export const SITE_RECEIVE = 'SITE_RECEIVE';
- export const SITE_RECEIVE_ROUTES = 'SITE_RECEIVE_ROUTES';
- export const SITE_RECEIVE_SSL = 'SITE_RECEIVE_SSL';
- export const SITE_INVALIDATE = 'SITE_INVALIDATE';
-
- /**
- * Action creators
- */
- export function siteRequest(params = {}) {
- return {
- type: SITE_REQUEST,
- payload: {
- params: params
- }
- };
- }
-
- export function siteReceive(items) {
-
- return {
- type: SITE_RECEIVE,
- payload: {
- information: items ? items : []
- }
- };
- }
-
- export function siteReceiveRoutes(items) {
-
- return {
- type: SITE_RECEIVE_ROUTES,
- payload: {
- routes: items ? items : []
- }
- };
- }
-
- export function siteReceiveSsl(items) {
-
- return {
- type: SITE_RECEIVE_SSL,
- payload: {
- ssl: items ? items : []
- }
- };
- }
-
- export function siteInvalidate() {
- return {
- type: SITE_INVALIDATE,
- payload: {
- }
- };
- }
-
- export function siteShouldFetch(state) {
- const site = state.site;
- if (!site.information.length) {
- return true;
- } else if (site.isFetching) {
- return false;
- }
-
- return site.didInvalidate;
- }
-
- export function siteMaybeFetch(params = {}) {
- return function(dispatch, getState) {
- const site = getState().site;
-
- if (!site.information || !site.information.size) {
- return dispatch(siteFetch(params));
- }
-
- return Promise.resolve();
- }
- };
-
- export function siteFetch(params = {}) {
- return function(dispatch, getState) {
- dispatch(siteRequest(params));
-
- return service.fetch(params)
- .then(response => {
- return dispatch(siteReceive(response.get('site')));
- });
- };
- };
-
- export function siteFetchRoutes(params = {}) {
- return function(dispatch, getState) {
- dispatch(siteRequest(params));
-
- return service.fetchRoutes(params)
- .then(response => {
- return dispatch(siteReceiveRoutes(response.first()));
- });
- };
- };
-
- export function siteFetchSsl(params = {}) {
- return function(dispatch, getState) {
- dispatch(siteRequest(params));
-
- return service.get('/v3/site/ssl', params)
- .then(response => {
- return dispatch(siteReceiveSsl(response.first()));
- });
- };
- };
-
- export function siteCreateRoute(data = {}) {
- return function(dispatch, getState) {
- dispatch(siteRequest({}));
-
- return service.postRoute(data)
- .then(response => {
- return dispatch(siteReceiveRoutes(response.first()));
- });
- };
- };
-
- export function siteUpdateRoute(uuid, data = {}) {
- return function(dispatch, getState) {
- dispatch(siteRequest({}));
-
- return service.putRoute(uuid, data)
- .then(response => {
- return dispatch(siteReceiveRoutes(response.first()));
- });
- };
- };
-
- export function siteRemoveRoute(uuid) {
- return function(dispatch, getState) {
- dispatch(siteRequest({}));
-
- return service.deleteRoute(uuid);
- };
- };