chat.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { defineStore } from 'pinia'
  2. import { AxiosWrapper } from '@/utils/axios-wrapper'
  3. import { get } from 'lodash-es'
  4. const url = '/chat'
  5. const axios = new AxiosWrapper()
  6. export const ChatStore = defineStore('chat', () => {
  7. const query = async ({ skip = 0, limit = undefined, ...info } = {}) => {
  8. let cond = {}
  9. if (skip) cond.skip = skip
  10. if (limit) cond.limit = limit
  11. cond = { ...cond, ...info }
  12. const res = await axios.$get(`${url}`, cond)
  13. return res
  14. }
  15. const chat = async (cond) => {
  16. const res = await axios.$get(`${url}/chat`, cond)
  17. return res
  18. }
  19. const read = async (cond) => {
  20. const res = await axios.$get(`${url}/read`, cond)
  21. return res
  22. }
  23. const fetch = async (payload) => {
  24. const res = await axios.$get(`${url}/${payload}`)
  25. return res
  26. }
  27. const create = async (payload) => {
  28. const res = await axios.$post(`${url}`, payload)
  29. return res
  30. }
  31. const cancel = async (payload) => {
  32. const res = await axios.$post(`${url}/cancel`, payload)
  33. return res
  34. }
  35. const update = async (payload) => {
  36. const id = get(payload, 'id', get(payload, '_id'))
  37. const res = await axios.$post(`${url}/${id}`, payload)
  38. return res
  39. }
  40. const del = async (payload) => {
  41. const res = await axios.$delete(`${url}/${payload}`)
  42. return res
  43. }
  44. return {
  45. query,
  46. chat,
  47. read,
  48. fetch,
  49. create,
  50. update,
  51. cancel,
  52. del
  53. }
  54. })