Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
5206 stevensc 1
import { axios } from '../utils'
5245 stevensc 2
import { cancelToken } from '../utils/axios'
5206 stevensc 3
 
5239 stevensc 4
export const fetchMessages = async (url, page = 1) => {
5206 stevensc 5
  try {
5244 stevensc 6
    const { data: response } = await axios.get(`${url}?page=${page}`, {
5245 stevensc 7
      cancelToken
5244 stevensc 8
    })
5206 stevensc 9
 
10
    if (!response.success) {
11
      const errorMessage = typeof response.data === 'string'
12
        ? response.data
13
        : Object.entries(response.data)
14
          .map(([key, value]) => `${key}: ${value[0]}`)
15
 
16
      return { success: false, data: errorMessage.message }
17
    }
18
 
5239 stevensc 19
    return {
20
      success: true,
5249 stevensc 21
      data: response.data.items ? response.data.items : response.data,
5239 stevensc 22
      pagination: response.pagination
23
    }
5206 stevensc 24
  } catch (error) {
25
    const errorMessage = new Error(error)
26
    return { success: false, data: errorMessage.message }
27
  }
28
}
29
 
5245 stevensc 30
export const cancelFetch = () => cancelToken.cancel()
5244 stevensc 31
 
5206 stevensc 32
export const getMessagesDifferences = (messages, newMessages) => {
33
  const msgs = newMessages.reduce((acum, updatedMessage) => {
34
    if (messages.findIndex((message) => message.id === updatedMessage.id) === -1) {
35
      acum = [...acum, updatedMessage]
36
    }
37
    return acum
38
  }, [])
39
 
5239 stevensc 40
  return msgs
5206 stevensc 41
}