Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5248 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import { axios } from '../utils'
import { cancelToken } from '../utils/axios'

export const fetchMessages = async (url, page = 1) => {
  try {
    const { data: response } = await axios.get(`${url}?page=${page}`, {
      cancelToken
    })

    if (!response.success) {
      const errorMessage = typeof response.data === 'string'
        ? response.data
        : Object.entries(response.data)
          .map(([key, value]) => `${key}: ${value[0]}`)

      return { success: false, data: errorMessage.message }
    }

    return {
      success: true,
      data: response.data.items ? response.data.items : response.data,
      pagination: response.pagination
    }
  } catch (error) {
    const errorMessage = new Error(error)
    return { success: false, data: errorMessage.message }
  }
}

export const cancelFetch = () => cancelToken.cancel()

export const getMessagesDifferences = (messages, newMessages) => {
  const msgs = newMessages.reduce((acum, updatedMessage) => {
    if (messages.findIndex((message) => message.id === updatedMessage.id) === -1) {
      acum = [...acum, updatedMessage]
    }
    return acum
  }, [])

  return msgs
}