Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

import { axios } from '../utils'

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

    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) {
    if (axios.isCancel(error)) {
      console.log('Petición cancelada:', error.message)
    } else {
      console.log('Error:', error.message)
    }
  }
}

export const getMessagesDifferences = (messages = [], newMessages = []) => {
  const msgs = newMessages.reduce((acum, updatedMessage) => {
    const messageIndex = messages.findIndex(
      (message) => message.uuid === updatedMessage.uuid
    )

    if (messageIndex === -1) {
      acum = [...acum, updatedMessage]
    }

    return acum
  }, [])

  return msgs
}