Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. /* eslint-disable no-restricted-syntax */
  2. /* eslint-disable guard-for-in */
  3. /* eslint-disable */
  4. import axios from 'axios'
  5. import { reject } from 'core-js/fn/promise'
  6. export default {
  7. namespaced: true,
  8. state: {
  9. resorts: [],
  10. resort: {},
  11. images: [],
  12. layout: '',
  13. description: '',
  14. resortMedia: undefined,
  15. resortsWithListings: [],
  16. },
  17. mutations: {
  18. setResort(state, resort) {
  19. state.resort = resort
  20. },
  21. setDescription(state, description) {
  22. state.description = description
  23. },
  24. addImage(state, image) {
  25. state.images.push(`data:image/jpeg;base64,${image}`)
  26. },
  27. clear(state) {
  28. state.resort = {}
  29. state.images = []
  30. state.layout = ''
  31. },
  32. setLayout(state, image) {
  33. state.layout = `data:image/jpeg;base64,${image}`
  34. },
  35. setResorts(state, list) {
  36. state.resorts = list
  37. },
  38. setResortMedia(state, media) {
  39. state.resortMedia = media
  40. },
  41. setResortsWithListings(state, data) {
  42. state.resortsWithListings = data
  43. },
  44. },
  45. getters: {},
  46. actions: {
  47. async initResort({ commit, dispatch }, id) {
  48. commit('clear')
  49. await dispatch('getResort', id)
  50. dispatch('getDescription', id)
  51. dispatch('getImage1', id)
  52. dispatch('getImage2', id)
  53. dispatch('getImage3', id)
  54. dispatch('getImage4', id)
  55. dispatch('getImage5', id)
  56. dispatch('getLayout', id)
  57. },
  58. getDescription({ commit }, id) {
  59. axios
  60. .get(
  61. `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${id}/dsc`,
  62. )
  63. .then((result) => {
  64. commit('setDescription', result.data)
  65. })
  66. .catch(console.error)
  67. },
  68. getResort({ commit }, id) {
  69. axios
  70. .get(
  71. `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/TRESORT/${id}`,
  72. )
  73. .then((result) => {
  74. commit('setResort', result.data)
  75. console.log(result.data)
  76. })
  77. .catch(console.error)
  78. },
  79. async getImage1({ commit }, id) {
  80. return axios
  81. .get(
  82. `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${id}/image/0`,
  83. )
  84. .then((result) => {
  85. commit('addImage', result.data)
  86. return Promise.resolve(result.data)
  87. })
  88. .catch(console.error)
  89. },
  90. getImage2({ commit }, id) {
  91. axios
  92. .get(
  93. `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${id}/image/1`,
  94. )
  95. .then((result) => commit('addImage', result.data))
  96. .catch(console.error)
  97. },
  98. getImage3({ commit }, id) {
  99. axios
  100. .get(
  101. `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${id}/image/2`,
  102. )
  103. .then((result) => commit('addImage', result.data))
  104. .catch(console.error)
  105. },
  106. getImage4({ commit }, id) {
  107. axios
  108. .get(
  109. `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${id}/image/3`,
  110. )
  111. .then((result) => {
  112. if (result.data && result.data.length > 0) {
  113. commit('addImage', result.data)
  114. }
  115. })
  116. .catch(console.error)
  117. },
  118. getImage5({ commit }, id) {
  119. axios
  120. .get(
  121. `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${id}/image/4`,
  122. )
  123. .then((result) => {
  124. if (result.data && result.data.length > 0) {
  125. commit('addImage', result.data)
  126. }
  127. })
  128. .catch(console.error)
  129. },
  130. getLayout({ commit }, id) {
  131. axios
  132. .get(
  133. `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${id}/layout`,
  134. )
  135. .then((result) => commit('setLayout', result.data))
  136. .catch(console.error)
  137. },
  138. getResorts({ commit }, regionCode) {
  139. return new Promise((resolve, reject) => {
  140. axios
  141. .get(`/api/resort/${regionCode}`)
  142. .then((result) => {
  143. commit('setResorts', result.data)
  144. resolve()
  145. })
  146. .catch((error) => reject(new Error(error.message)))
  147. })
  148. },
  149. getResortMedia({ commit }, id) {
  150. axios
  151. .get(
  152. `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/social/${id}`,
  153. )
  154. .then((result) => commit('setResortMedia', result.data))
  155. },
  156. async getResortData({ commit }, id) {
  157. await axios
  158. .get(`/api/resort/GetResortData/${id}`)
  159. .then((result) => {
  160. commit('setResort', result.data)
  161. })
  162. .catch((error) => console.log(new Error(error.message)))
  163. },
  164. async getResortWithListings({ commit }, id) {
  165. await axios
  166. .get('/api/resort/GetPublishedResortsWithListings')
  167. .then((result) => {
  168. commit('setResortsWithListings', result.data)
  169. })
  170. },
  171. },
  172. }