blog.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. export const state = () => ({
  2. item: {},
  3. items: {
  4. all: [],
  5. featured: []
  6. }
  7. })
  8. export const actions = {
  9. async fetchBlogs({commit, state}) {
  10. const data = await this.$axios.$get('/api/v1/blogs')
  11. if(data.isAxiosError === true){
  12. console.log(data.data)
  13. return Error('')
  14. }
  15. const { blogs } = data
  16. commit('setBlogs', {resource: 'all', blogs})
  17. return state.items.all
  18. },
  19. // /api/v1/blogs?filter[featured]=true
  20. async fetchFeaturedBlogs({commit, state}, filter) {
  21. const url = this.$applyParamsToUrl('/api/v1/blogs', filter)
  22. const data = await this.$axios.$get(url)
  23. if(data.isAxiosError === true){
  24. console.log(data.data)
  25. return Error('')
  26. }
  27. const { blogs } = data
  28. commit('setBlogs', {resource: 'featured', blogs})
  29. return state.items.featured
  30. },
  31. async fetchBlogBySlug({commit, state}, slug) {
  32. const blog = await this.$axios.$get(`/api/v1/blogs/s/${slug}`)
  33. if(blog.isAxiosError === true){
  34. console.log(blog.data)
  35. return Error('')
  36. }
  37. debugger;
  38. commit('setBlog', blog)
  39. return state.item
  40. }
  41. }
  42. export const mutations = {
  43. setBlogs(state, {resource, blogs}) {
  44. state.items[resource] = blogs
  45. },
  46. setBlog(state, blog) {
  47. state.item = blog
  48. }
  49. }