course.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. export const state = () => ({
  2. items : [],
  3. item : [],
  4. canUpdateCourse: false
  5. })
  6. export const actions = {
  7. async fetchInstructorCourses({commit}) {
  8. try{
  9. console.log('courses.js actions call fetchInstructorCourses')
  10. const courses = await this.$axios.$get('/api/v1/products/user-products')
  11. console.log('courses.js actions done fetchInstructorCourses')
  12. console.log('courses.js mutations call setCourses')
  13. commit('setCourses', courses)
  14. console.log('courses.js mutations done setCourses')
  15. return courses
  16. }catch(error){
  17. return error
  18. }
  19. },
  20. async createCourse(_, courseData) {
  21. try {
  22. console.log('instructor/course.js actions createCourse call axios.$post->products')
  23. const result = await this.$axios.$post('/api/v1/products', courseData)
  24. console.log('instructor/course.js actions createCourse done axios.$post->products')
  25. } catch (error) {
  26. return error
  27. }
  28. },
  29. async fetchCourseById({commit, state}, courseId){
  30. try {
  31. console.log('instructor/course.js actions fetchCourseById call axios.$get->courseId')
  32. const course = await this.$axios.$get(`/api/v1/products/${courseId}`)
  33. console.log('instructor/course.js actions fetchCourseById done axios.$get->courseId')
  34. console.log('courses.js mutations call setCourse')
  35. commit('setCourse', course)
  36. console.log('courses.js mutations done setCourse')
  37. return state.item
  38. } catch (error) {
  39. return error
  40. }
  41. },
  42. updateLine({commit}, {index, value, field}) {
  43. commit('setLineValue', {index, value, field})
  44. // Surprise commit for next lectures (:
  45. commit('setCanUpdateCourse', true)
  46. },
  47. updateCourseValue({commit}, {value, field}) {
  48. commit('setCourseValue', {value, field})
  49. commit('setCanUpdateCourse', true)
  50. },
  51. async updateCourse({state, commit}) {
  52. try {
  53. console.log('instructor/course.js actions updateCourse call axios.$patch->course')
  54. const course = await this.$axios.$patch(`/api/v1/products/${state.item._id}`, state.item)
  55. console.log('instructor/course.js actions updateCourse done axios.$patch->course')
  56. console.log('courses.js mutations call setCourse')
  57. commit('setCourse', course)
  58. console.log('courses.js mutations done setCourse')
  59. commit('setCanUpdateCourse', false)
  60. return state.item
  61. } catch (error) {
  62. return error
  63. }
  64. },
  65. }
  66. export const mutations = {
  67. setCourses(state, courses) {
  68. state.items = courses
  69. },
  70. setCourse(state, course) {
  71. state.item = course
  72. },
  73. addLine(state, field) {
  74. console.log('course.js mutations call addLine params > ', field)
  75. state.item[field].push({value: ''})
  76. console.log('course.js mutations done addLine params')
  77. },
  78. removeLine(state, {field, index}) {
  79. console.log('course.js mutations call removeLine params > ', field, ':', index)
  80. state.item[field].splice(index, 1)
  81. console.log('course.js mutations done removeLine params')
  82. },
  83. setLineValue(state, {index, value, field}) {
  84. console.log('course.js mutations call setLineValue params > ', {index, value, field})
  85. state.item[field][index].value = value
  86. console.log('course.js mutations done setLineValue params')
  87. },
  88. setCourseValue(state, {value, field}){
  89. state.item[field] = value
  90. },
  91. setCanUpdateCourse(state, canUpdate) {
  92. state.canUpdateCourse = canUpdate
  93. },
  94. }