Rev 2194 | Rev 3283 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import { axios } from '../../utils'import { feedActionTypes } from './feed.types'export const setTimelineUrl = (url) => ({type: feedActionTypes.SET_TIMELINE_URL,payload: url})export const loadFeeds = () => ({type: feedActionTypes.LOAD_FEEDS})export const loadFeedsSuccess = (feeds, currentPage, pages) => ({type: feedActionTypes.LOAD_FEEDS_SUCCESS,payload: { feeds, currentPage, pages }})export const addFeed = (url, feed, shareId) => {return async (dispatch) => {const form = new FormData()const feedFields = Object.keys(feed)feedFields.forEach((field) => form.append(field, feed[field]))const response = await axios.post(url, form)const { data, success } = response.dataif (!success) {const error = typeof data === 'string' ? data : 'Error al publicar'throw new Error(error)}dispatch(addFeedSuccess(data, shareId))}}export const addFeedSuccess = (feed, feedSharedId = '') => ({type: feedActionTypes.ADD_FEED,payload: { feed, feedSharedId }})export const updateFeed = ({ feed, uuid }) => ({type: feedActionTypes.UPDATE_FEED,payload: { feed, uuid }})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) => {if (!url || url.includes('undefined')) returndispatch(loadFeeds())axios.get(url + '?page=' + page).then(({ data: response }) => {const { data, success } = responseif (!success) {throw new Error('Error al obtener las publicaciones, por favor intente más tarde')}const feeds = data.current.itemsconst currentPage = data.current.pageconst pages = data.total.pagesdispatch(loadFeedsSuccess(feeds, currentPage, pages))})}}export const removeComment = ({ feedId, commentId }) => ({type: feedActionTypes.REMOVE_COMMENT,payload: { feedId, commentId }})export const addComment = ({ feedId, comment }) => ({type: feedActionTypes.ADD_COMMENT,payload: { feedId, comment }})