{"version":3,"file":"order_manager-0d8c0c68.js","sources":["../../../../../../app/javascript/entrypoints/header/mixins/order_manager.js"],"sourcesContent":["import axios from 'axios';\r\n\r\nexport default {\r\n data: () => ({\r\n order: null,\r\n products: null\r\n }),\r\n computed: {\r\n storage: function () {\r\n return this.$contact != null ? \"database\" : \"cookie\";\r\n }\r\n },\r\n created() {\r\n this.$eventHub.$on('productAttaced', this.attachProduct);\r\n },\r\n methods: {\r\n attachProduct(product) {\r\n if (this.order && this.products) this.getOrder();\r\n },\r\n addToCart(payload, refresh = true) {\r\n let presentation = payload.product.presentations.find(x => parseInt(x.price) == parseInt(payload.config.price))\r\n payload.config.has_variation = presentation ? {\r\n presentation: presentation.presentation,\r\n price: payload.config.price\r\n } : null;\r\n\r\n if (this.storage == \"database\") {\r\n this.submit(payload, refresh);\r\n } else {\r\n this.updateOrCreateCookie(payload, refresh);\r\n }\r\n },\r\n submit(payload, refresh) {\r\n axios.post('/api/contact/v1/orders/attach-item', {\r\n data: {\r\n product_id: payload.product._id,\r\n config: payload.config\r\n }\r\n }, {\r\n headers: {\r\n \"x-api-key\": \"NPP3dB1ch8CiEmRGprtB2Vpr7xbZdA7iUnw7gX7ORjXdX0vzQ\"\r\n }\r\n }).then(response => {\r\n this.$awn.success('¡Producto agregado!');\r\n if (refresh) {\r\n setTimeout(() => {\r\n window.location.href = \"/productos\"\r\n }, 1000)\r\n } else {\r\n this.$eventHub.$emit('productAttaced');\r\n }\r\n }).catch(error => {\r\n this.$awn.warning('Error del servidor');\r\n });\r\n },\r\n getOrder() {\r\n axios.get(`/api/${this.storage == 'database' ? 'contact' : 'public'}/v1/orders/current-order`, {\r\n headers: {\r\n \"x-api-key\": \"NPP3dB1ch8CiEmRGprtB2Vpr7xbZdA7iUnw7gX7ORjXdX0vzQ\"\r\n }\r\n }).then(response => {\r\n this.order = response.data.data;\r\n this.products = response.data.products;\r\n }).catch(error => {\r\n this.$awn.warning('Error al obtener su orden');\r\n });\r\n },\r\n detachProduct(product) {\r\n axios.put(`/api/${this.storage == 'database' ? 'contact' : 'public'}/v1/orders/dettach-item`, {\r\n data: {\r\n product_id: product._id\r\n }\r\n }, {\r\n headers: {\r\n \"x-api-key\": \"NPP3dB1ch8CiEmRGprtB2Vpr7xbZdA7iUnw7gX7ORjXdX0vzQ\"\r\n }\r\n }).then(response => {\r\n let index = this.products.findIndex(x => x._id == product._id);\r\n if (index != -1) {\r\n this.products.splice(index, 1)\r\n }\r\n this.$awn.success('Producto eliminado');\r\n }).catch(error => {\r\n this.$awn.warning('Error al eliminar el producto');\r\n });\r\n },\r\n confirmOrder() {\r\n axios.put('/api/contact/v1/orders/confirm-order', {}, {\r\n headers: {\r\n \"x-api-key\": \"NPP3dB1ch8CiEmRGprtB2Vpr7xbZdA7iUnw7gX7ORjXdX0vzQ\"\r\n }\r\n }).then(response => {\r\n this.order = null;\r\n this.products = null;\r\n this.$awn.success('Orden confirmada');\r\n }).catch(error => {\r\n this.$awn.warning('Error al eliminar el producto');\r\n });\r\n },\r\n getConfig(id) {\r\n return this.order && this.order.config && this.order.config[id] ? this.order.config[id] : null;\r\n },\r\n getPrice(id) {\r\n let config = this.getConfig(id);\r\n\r\n if (config && config.has_variation) {\r\n return config.has_variation.price;\r\n } else if (config) {\r\n return config.price;\r\n } else {\r\n return 0;\r\n }\r\n },\r\n getQuantity(id) {\r\n let config = this.getConfig(id);\r\n return config ? config.quantity : 0;\r\n },\r\n getTotal(id) {\r\n let config = this.getConfig(id);\r\n return config ? config.total : 0;\r\n },\r\n // When data comes from cookie\r\n updateOrCreateCookie(payload, refresh) {\r\n axios.post('/api/public/v1/orders/attach-item', {\r\n data: {\r\n product: payload['product'],\r\n config: payload['config']\r\n }\r\n }, {\r\n headers: {\r\n \"x-api-key\": \"NPP3dB1ch8CiEmRGprtB2Vpr7xbZdA7iUnw7gX7ORjXdX0vzQ\"\r\n }\r\n }).then(response => {\r\n if (refresh) {\r\n setTimeout(() => {\r\n window.location.href = \"/productos\"\r\n }, 1000)\r\n } else {\r\n this.$eventHub.$emit('productAttaced');\r\n }\r\n this.$awn.success('Producto agregado');\r\n }).catch(error => {\r\n this.$awn.warning('Error al agregar el producto');\r\n });\r\n }\r\n }\r\n}"],"names":["order_manager","product","payload","refresh","presentation","x","axios","response","error","index","id","config"],"mappings":"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"}