Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 7458 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import axios from "axios";
import { feedActionTypes } from "./feed.types";

export const setTimelineUrl = (url) => {
  return {
    type: feedActionTypes.SET_TIMELINE_URL,
    payload: url,
  };
};

export const loadFeeds = () => {
  return {
    type: feedActionTypes.LOAD_FEEDS,
  };
};

export const loadFeedsSuccess = (feeds, currentPage, pages) => {
  return {
    type: feedActionTypes.LOAD_FEEDS_SUCCESS,
    payload: { feeds: feeds, currentPage: currentPage, pages: pages },
  };
};

export const addFeed = (feed, feedSharedId = '') => ({
  type: feedActionTypes.ADD_FEED,
  payload: { feed: feed, feedSharedId: feedSharedId },
});

export const deleteFeed = (feedId) => ({
  type: feedActionTypes.DELETE_FEED,
  payload: feedId,
});

export const setCurrentPage = (page) => ({
  type: feedActionTypes.SET_CURRENT_PAGE,
  payload: page,
});

export const fetchFeeds = (url, page) => {
  return (dispatch) => {
    dispatch(loadFeeds());
    axios.get(url, {
      params: { page: page }
    })
      .then(({ data }) => {
        if (data.success) {
          const feeds = data.data.current.items;
          const currentPage = data.data.current.page;
          const pages = data.data.total.pages;
          dispatch(loadFeedsSuccess(feeds, currentPage, pages));
        }
      })
      .catch((error) => {
        // dispatch(fetchFeedsFailure());
        throw Error(error.message);
      });
  };
};