Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
5306 stevensc 1
import { axios } from '../../utils'
5307 stevensc 2
import { addNotification } from '../notification/notification.actions'
3
import { conversationActionTypes } from './conversation.types'
5306 stevensc 4
 
5307 stevensc 5
export const sendMessage = async (url, message) => {
5306 stevensc 6
  return (dispatch) => {
5307 stevensc 7
    dispatch(startLoading())
8
 
5306 stevensc 9
    const formData = new FormData()
10
    formData.append('message', emojione.toShort(message))
11
 
12
    axios.post(url, formData)
13
      .then(({ data: response }) => {
14
        if (!response.success) {
5307 stevensc 15
          dispatch(addNotification({ style: 'danger', message: 'Ha ocurrido un error' }))
5306 stevensc 16
          return
17
        }
18
 
19
        dispatch(setNewMessage(response.data))
20
      })
5307 stevensc 21
      .catch((err) => {
22
        const errorMessage = new Error(err).message
23
        dispatch(addNotification({ style: 'danger', message: errorMessage }))
5306 stevensc 24
      })
5307 stevensc 25
      .finally(() => dispatch(finishLoading()))
5306 stevensc 26
  }
27
}
28
 
5307 stevensc 29
export const getMessages = async (url) => {
30
  return (dispatch) => {
31
    dispatch(startLoading())
32
    axios.get(url)
33
      .then(({ data: response }) => {
34
        if (!response.success) {
35
          dispatch(addNotification({ style: 'danger', message: 'Ha ocurrido un error' }))
36
          return
37
        }
38
        const updatedMessages = [...response.data.items].reverse()
39
 
40
        dispatch(setMessages(updatedMessages))
41
      })
42
      .catch((err) => {
43
        const errorMessage = new Error(err).message
44
        dispatch(addNotification({ style: 'danger', message: errorMessage }))
45
      })
46
      .finally(() => dispatch(finishLoading()))
47
  }
48
}
49
 
5306 stevensc 50
export const setNewMessage = (newMessage) => ({
5307 stevensc 51
  type: conversationActionTypes.SET_NEW_MESSAGE,
5306 stevensc 52
  payload: newMessage
53
})
54
 
5307 stevensc 55
export const setMessages = (unreadMessages) => ({
56
  type: conversationActionTypes.SET_MESSAGES,
5306 stevensc 57
  payload: unreadMessages
58
})
59
 
5307 stevensc 60
export const startLoading = () => ({
61
  type: conversationActionTypes.START_LOADING
5306 stevensc 62
})
5307 stevensc 63
 
64
export const finishLoading = () => ({
65
  type: conversationActionTypes.FINISH_LOADING
66
})