/* eslint-disable no-restricted-syntax */ /* eslint-disable guard-for-in */ /* eslint-disable */ import axios from "axios"; import { reject } from "core-js/fn/promise"; export default { namespaced: true, state: { resorts: [], resort: {}, images: [], layout: "", description: "", resortMedia: undefined, resortsWithListings: [] }, mutations: { setResort(state, resort) { state.resort = resort; }, setDescription(state, description) { state.description = description; }, addImage(state, image) { state.images.push(`data:image/jpeg;base64,${image}`); }, clear(state) { state.resort = {}; state.images = []; state.layout = ""; }, setLayout(state, image) { state.layout = `data:image/jpeg;base64,${image}`; }, setResorts(state, list) { state.resorts = list; }, setResortMedia(state, media) { state.resortMedia = media; }, setResortsWithListings(state, data){ state.resortsWithListings = data } }, getters: {}, actions: { async initResort({ commit, dispatch }, resortCode) { commit("clear"); await dispatch("getResort", resortCode); dispatch("getDescription", resortCode); dispatch("getImage1", resortCode); dispatch("getImage2", resortCode); dispatch("getImage3", resortCode); dispatch("getImage4", resortCode); dispatch("getImage5", resortCode); dispatch("getLayout", resortCode); }, getDescription({ commit }, resortCode) { axios .get( `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${resortCode}/dsc` ) .then(result => { commit("setDescription", result.data); }) .catch(console.error); }, getResort({ commit }, resortCode) { axios .get( `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/TRESORT/${resortCode}` ) .then(result => { commit("setResort", result.data); console.log(result.data); }) .catch(console.error); }, async getImage1({ commit }, resortCode) { return axios .get( `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${resortCode}/image/1` ) .then(result => { commit("addImage", result.data); return Promise.resolve(result.data); }) .catch(console.error); }, getImage2({ commit }, resortCode) { axios .get( `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${resortCode}/image/2` ) .then(result => commit("addImage", result.data)) .catch(console.error); }, getImage3({ commit }, resortCode) { axios .get( `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${resortCode}/image/3` ) .then(result => commit("addImage", result.data)) .catch(console.error); }, getImage4({ commit }, resortCode) { axios .get( `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${resortCode}/image/4` ) .then(result => { if (result.data && result.data.length > 0) { commit("addImage", result.data); } }) .catch(console.error); }, getImage5({ commit }, resortCode) { axios .get( `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${resortCode}/image/5` ) .then(result => { if (result.data && result.data.length > 0) { commit("addImage", result.data); } }) .catch(console.error); }, getLayout({ commit }, resortCode) { axios .get( `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${resortCode}/layout` ) .then(result => commit("setLayout", result.data)) .catch(console.error); }, getResorts({ commit }, regionCode) { return new Promise((resolve, reject) => { axios .get(`/api/resort/${regionCode}`) .then(result => { commit("setResorts", result.data); resolve(); }) .catch(error => reject(new Error(error.message))); }); }, getResortMedia({ commit }, resortCode) { axios .get( `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/social/${resortCode}` ) .then(result => commit("setResortMedia", result.data)); }, async getResortData({ commit }, resortCode) { await axios .get(`/api/resort/GetResortData/${resortCode}`) .then(result => { commit("setResort", result.data); }) .catch(error => console.log(new Error(error.message))); }, async getResortWithListings({commit}, resortCode){ await axios.get("/api/resort/GetPublishedResortsWithListings").then(result => { commit("setResortsWithListings", result.data) }) } } };