Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/sale/checkout/provider/rest/dist/ |
Upload File : |
{"version":3,"file":"rest.bundle.js","sources":["../src/base.js","../src/basket.js"],"sourcesContent":["class BaseRestHandler\r\n{\r\n static create(params = {})\r\n {\r\n return new this(params);\r\n }\r\n\r\n constructor(params = {})\r\n {\r\n if (typeof params.store === 'object' && params.store)\r\n {\r\n this.store = params.store;\r\n }\r\n }\r\n\r\n execute(command, result, extra = {})\r\n {\r\n command = 'handle'+command.split('.').map(element => {\r\n return element.charAt(0).toUpperCase() + element.slice(1);\r\n }).join('');\r\n\r\n if (result.error)\r\n {\r\n if (typeof this[command+'Error'] === 'function')\r\n {\r\n return this[command+'Error'](result.error, extra);\r\n }\r\n }\r\n else\r\n {\r\n if (typeof this[command+'Success'] === 'function')\r\n {\r\n return this[command+'Success'](result.data, extra);\r\n }\r\n }\r\n\r\n return typeof this[command] === 'function'? this[command](result, extra): null;\r\n }\r\n}\r\n\r\nexport {BaseRestHandler};","import { BaseRestHandler } from \"./base\";\nimport { Type } from 'main.core';\nimport { EventEmitter } from 'main.core.events'\nimport { EventType } from 'sale.checkout.const';\nimport {\n Application as ApplicationConst,\n Property as PropertyConst,\n Loader as LoaderConst,\n Pool as PoolConst\n} from 'sale.checkout.const';\n\nexport class BasketRestHandler extends BaseRestHandler\n{\n handleRecalculateBasket(response, pool)\n {\n return new Promise((resolve, reject) =>\n {\n if(response.data.needFullRecalculation === 'Y')\n {\n EventEmitter.emit(EventType.basket.needRefresh, {})\n }\n\n let needRefresh = this.store.getters['basket/getNeedRefresh'];\n\n this.#setModelBasketForAction(response.data, pool)\n .then(() => resolve());\n\n this.#setModelBasketForActionError(response.data)\n .then(() => resolve());\n\n if(needRefresh === 'Y')\n {\n if(pool.isEmpty())\n {\n this.#setModelBasketByItem(response.data, pool)\n EventEmitter.emit(EventType.basket.refreshAfter, {})\n }\n }\n });\n }\n\n #setModelBasketByItem(data, pool)\n {\n return new Promise((resolve, reject) =>{\n if(Type.isObject(data) && Type.isArray(data.basketItems))\n {\n const items = data.basketItems;\n const collection = this.store.getters['basket/getBasket'];\n\n //refresh\n collection.forEach((fields, index) =>\n {\n let item = this.#findItemById(fields.id, items);\n\n if(Type.isObject(item))\n {\n let fields = this.#prepareBasketItemFields(item);\n\n this.#changeBasketItem(fields, index);\n }\n })\n\n if(Type.isObject(data) && Type.isObject(data.orderPriceTotal))\n {\n this.#refreshModelBasketTotal(data);\n this.#refreshModelBasketDiscount(data);\n }\n }\n\n resolve();\n });\n }\n\n #setModelBasketForActionError(data)\n {\n return new Promise((resolve, reject) =>\n {\n if(Type.isObject(data) && Type.isObject(data.actions))\n {\n const actions = data.actions;\n const collection = this.store.getters['basket/getBasket'];\n\n let list = this.#prepareBasketErrors(collection, actions)\n\n if(list.length > 0)\n {\n this.store.commit('basket/setErrors', list);\n }\n else\n {\n this.store.commit('basket/clearErrors');\n }\n }\n resolve();\n });\n }\n\n #setModelBasketForAction(data, pool)\n {\n return new Promise((resolve, reject) =>\n {\n if(Type.isObject(data) && Type.isArray(data.basketItems))\n {\n const items = data.basketItems;\n const actions = data.actions;\n const collection = this.store.getters['basket/getBasket'];\n const poolList = pool.get();\n\n collection.forEach((fields, index) =>\n {\n let item;\n let typeAction = this.#getTypeAction(actions, index);\n\n if(Type.isString(typeAction))\n {\n if(typeAction === PoolConst.action.quantity)\n {\n item = null; //not refresh\n\n let exists = this.#hasActionInPool(index, PoolConst.action.quantity, poolList);\n if(exists === false)\n {\n item = this.#findItemById(fields.id, items)\n }\n }\n else if(typeAction === PoolConst.action.restore)\n {\n item = this.#findItemById(actions[index].fields.id, items)\n }\n else if(typeAction === PoolConst.action.delete)\n {\n fields.status = LoaderConst.status.none;\n this.#changeBasketItem(fields, index)\n .then(()=> EventEmitter.emit(EventType.basket.removeProduct, {index}));\n }\n else if(typeAction === PoolConst.action.offer)\n {\n item = null; //not refresh\n\n let exists = this.#hasActionInPool(index, PoolConst.action.offer, poolList);\n if(exists === false)\n {\n item = this.#findItemById(fields.id, items)\n }\n }\n\n if(Type.isObject(item))\n {\n let fields = this.#prepareBasketItemFields(item);\n\n fields.status = LoaderConst.status.none;\n this.#changeBasketItem(fields, index)\n .then(() =>\n {\n if(typeAction === PoolConst.action.restore)\n {\n EventEmitter.emit(EventType.basket.restoreProduct, {index})\n }\n }\n );\n }\n }\n });\n\n if(Type.isObject(data) && Type.isObject(data.orderPriceTotal))\n {\n this.#refreshModelBasketTotal(data);\n this.#refreshModelBasketDiscount(data);\n }\n }\n\n resolve();\n });\n }\n\n #hasErrorAction(action)\n {\n return action.hasOwnProperty('errors')\n }\n\n #getAction(actions, index)\n {\n return actions.hasOwnProperty(index) ? actions[index] : null\n }\n\n #getErrorsAction(actions, index)\n {\n let action = this.#getAction(actions, index)\n\n if(action !== null)\n {\n return action.hasOwnProperty('errors') ? action.errors : null\n }\n else\n {\n return null\n }\n }\n\n #getTypeAction(actions, index)\n {\n const types = Object.values(PoolConst.action);\n let action = this.#getAction(actions, index)\n\n if(action !== null)\n {\n let type = action.type.toString();\n return types.includes(type) ? type : null;\n }\n return null;\n }\n\n #hasActionInPool(index, type, poolList)\n {\n let item = poolList.hasOwnProperty(index) ? poolList[index]:null;\n if(Type.isArray(item))\n {\n return this.#hasActionInPoolItem(item, type);\n }\n return false;\n }\n\n #hasActionInPoolItem(item, type)\n {\n return item.some((item)=>item.hasOwnProperty(type))\n }\n\n #findItemById(id, items)\n {\n id = parseInt(id);\n\n for (let index in items)\n {\n if (!items.hasOwnProperty(index))\n {\n continue;\n }\n\n items[index].id = parseInt(items[index].id);\n\n if(items[index].id === id)\n {\n return items[index];\n }\n }\n\n return null\n }\n\n #changeBasketItem(fields, index)\n {\n return this.store.dispatch('basket/changeItem', {index, fields});\n }\n\n #prepareBasketItemFields(item)\n {\n return {\n id: item.id,\n name: item.name,\n quantity: item.quantity,\n measureText: item.measureText,\n sum: item.sum,\n price: item.price,\n module: item.module,\n productProviderClass: item.productProviderClass,\n baseSum: item.sumBase,\n basePrice: item.basePrice,\n currency: item.currency,\n discount: {\n sum: item.sumDiscountDiff,\n price: item.discountPrice\n },\n props: item.props,\n sku: item.sku,\n product: {\n id: item.catalogProduct.id,\n detailPageUrl: item.detailPageUrl,\n picture: Type.isObject(item.catalogProduct.frontImage) ? item.catalogProduct.frontImage.src:null,\n ratio: item.catalogProduct.ratio,\n availableQuantity: item.catalogProduct.availableQuantity,\n type: item.catalogProduct.type,\n\t\t\t\tcheckMaxQuantity: item.catalogProduct.checkMaxQuantity,\n }\n };\n }\n\n #refreshModelBasketTotal(data)\n {\n let total = data.orderPriceTotal;\n\n this.store.dispatch('basket/setTotal', {\n price : total.orderPrice,\n basePrice : total.priceWithoutDiscountValue,\n });\n }\n\n #refreshModelBasketDiscount(data)\n {\n let total = data.orderPriceTotal;\n\n this.store.dispatch('basket/setDiscount', {\n sum: total.basketPriceDiscountDiffValue\n });\n }\n\n handleSaveOrderSuccess(data)\n {\n EventEmitter.emit(EventType.order.success);\n\n this.store.dispatch('application/setStage', {stage: ApplicationConst.stage.success});\n this.store.dispatch('order/set', {\n id: data.order.id,\n hash: data.hash,\n accountNumber: data.order.accountNumber\n });\n\n return this.#refreshModelBasket(data)\n .then(()=>this.#refreshModelProperty(data))\n }\n\n #refreshModelProperty(data)\n {\n this.store.commit('property/clearProperty');\n\n if(Type.isObject(data) && Type.isArray(data.properties))\n {\n data.properties.forEach((item, index) => {\n let fields = {\n id : item.id,\n name : item.name,\n type : item.type,\n value : item.value[0],//TODO\n };\n\n this.store.dispatch('property/changeItem', {index, fields});\n });\n }\n }\n\n #refreshModelBasket(data)\n {\n return new Promise((resolve, reject) => {\n\n this.store.commit('basket/clearBasket');\n\n if(Type.isObject(data) && Type.isArray(data.basketItems))\n {\n const items = data.basketItems;\n items.forEach((item, index) => {\n let fields = this.#prepareBasketItemFields(item);\n this.#changeBasketItem(fields, index)});\n }\n\n if(Type.isObject(data) && Type.isObject(data.orderPriceTotal))\n {\n this.#refreshModelBasketTotal(data)\n this.#refreshModelBasketDiscount(data)\n }\n\n resolve();\n });\n }\n\n\tsetModelPropertyError(properties)\n\t{\n\t\tif (Type.isArrayFilled(properties))\n\t\t{\n\t\t\tthis.store.commit('property/setErrors', properties);\n\n\t\t\tthis.store.getters['property/getProperty']\n\t\t\t.forEach((fields, index)=>\n\t\t\t{\n\t\t\t\tif (typeof properties.find(item => item.propertyId === fields.id) !== 'undefined')\n\t\t\t\t{\n\t\t\t\t\tfields.validated = PropertyConst.validate.failure;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tfields.validated = PropertyConst.validate.unvalidated;\n\t\t\t\t}\n\t\t\t\tthis.store.dispatch('property/changeItem', {index, fields});\n\t\t\t})\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.store.commit('property/clearErrors');\n\n\t\t\tthis.store.getters['property/getProperty']\n\t\t\t.forEach((fields, index)=>\n\t\t\t{\n\t\t\t\tfields.validated = PropertyConst.validate.unvalidated;\n\t\t\t\tthis.store.dispatch('property/changeItem', {index, fields});\n\t\t\t})\n\t\t}\n\t}\n\n handleSaveOrderError(errors)\n {\n return new Promise((resolve, reject) => {\n if (Type.isArrayFilled(errors))\n {\n let general = this.#prepareGeneralErrors(errors)\n let properties = this.#preparePropertyErrors(errors);\n\n if(general.length > 0)\n {\n this.store.commit('application/setErrors', general);\n }\n else\n {\n this.store.commit('application/clearErrors');\n }\n\n\t\t\t\tthis.setModelPropertyError(properties);\n }\n });\n }\n\n #prepareBasketErrors(collection, actions)\n {\n const result = [];\n collection.forEach((fields, index) =>\n {\n let list = this.#getErrorsAction(actions, index);\n if(list !== null)\n {\n result.push({list, index});\n }\n })\n\n return result\n }\n\n #preparePropertyErrors(errors)\n {\n const result = [];\n\n errors.forEach((fields)=>{\n if(fields.code === 'PROPERTIES')\n {\n if (fields.hasOwnProperty('customData'))\n {\n let id = parseInt(fields.customData.id)\n result.push({message: fields.message, propertyId: id});\n }\n }\n })\n return result;\n }\n\n #prepareGeneralErrors(errors)\n {\n const result = [];\n\n errors.forEach((fields)=>{\n if(parseInt(fields.code) === 0 || fields.code === 'ORDER')\n {\n result.push({message: fields.message})\n }\n })\n return result;\n }\n}"],"names":["BaseRestHandler","params","store","command","result","extra","split","map","element","charAt","toUpperCase","slice","join","error","data","BasketRestHandler","response","pool","Promise","resolve","reject","needFullRecalculation","EventEmitter","emit","EventType","basket","needRefresh","getters","then","isEmpty","refreshAfter","order","success","dispatch","stage","ApplicationConst","id","hash","accountNumber","properties","Type","isArrayFilled","commit","forEach","fields","index","find","item","propertyId","validated","PropertyConst","validate","failure","unvalidated","errors","general","length","setModelPropertyError","isObject","isArray","basketItems","items","collection","orderPriceTotal","actions","list","poolList","get","typeAction","isString","PoolConst","action","quantity","exists","restore","status","LoaderConst","none","removeProduct","offer","restoreProduct","hasOwnProperty","types","Object","values","type","toString","includes","some","parseInt","name","measureText","sum","price","module","productProviderClass","baseSum","sumBase","basePrice","currency","discount","sumDiscountDiff","discountPrice","props","sku","product","catalogProduct","detailPageUrl","picture","frontImage","src","ratio","availableQuantity","checkMaxQuantity","total","orderPrice","priceWithoutDiscountValue","basketPriceDiscountDiffValue","value","push","code","customData","message"],"mappings":"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"}