search.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { JSONAPI } from 'vuejs/api/json-axios'
  2. import { MA } from 'vuejs/api/ma-axios'
  3. import qs from 'querystring'
  4. export default {
  5. namespaced: true,
  6. // initial state
  7. state : {
  8. keys: "",
  9. term: "",
  10. items: [],
  11. offset: 0,
  12. limit: 15
  13. },
  14. // getters
  15. getters : {},
  16. // mutations
  17. mutations : {
  18. setItems (state, items) {
  19. state.items = items
  20. },
  21. setKeys (state, keys) {
  22. state.keys = keys
  23. },
  24. setTerm (state, term) {
  25. state.term = term
  26. },
  27. resetOffset(state) {
  28. state.offset = 0
  29. },
  30. incrementOffset(state) {
  31. state.offset += state.limit
  32. }
  33. },
  34. // actions
  35. actions : {
  36. newSearch({ dispatch, commit, state }) {
  37. console.log('Search newSearch');
  38. commit('resetOffset')
  39. dispatch('getResults')
  40. },
  41. getResults ({ dispatch, commit, state }) {
  42. let params = {
  43. keys: state.keys,
  44. term: state.term,
  45. offset:state.offset,
  46. limit: state.limit
  47. }
  48. // console.log('Search getResults params', params);
  49. let q = qs.stringify(params)
  50. return MA.get(`/materio_sapi/getresults?`+q)
  51. .then(({ data }) => {
  52. console.log('search MA getresults data', data)
  53. commit('setItems', data.items)
  54. })
  55. .catch(( error ) => {
  56. console.warn('Issue with getResults', error)
  57. Promise.reject(error)
  58. })
  59. }
  60. }
  61. }