@infrab4a/connect-angular 4.1.0-beta.1 → 4.1.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/angular-connect.module.d.ts +22 -22
- package/angular-elastic-search.module.d.ts +9 -9
- package/angular-firebase-auth.module.d.ts +12 -12
- package/angular-firestore.module.d.ts +18 -18
- package/angular-hasura-graphql.module.d.ts +16 -16
- package/consts/backend-url.const.d.ts +1 -1
- package/consts/category-structure.d.ts +1 -1
- package/consts/default-shop.const.d.ts +1 -1
- package/consts/es-config.const.d.ts +1 -1
- package/consts/firebase-const.d.ts +3 -3
- package/consts/hasura-options.const.d.ts +1 -1
- package/consts/index.d.ts +6 -6
- package/{esm2020 → esm2022}/angular-connect.module.mjs +66 -66
- package/esm2022/angular-elastic-search.module.mjs +34 -0
- package/esm2022/angular-firebase-auth.module.mjs +130 -0
- package/esm2022/angular-firestore.module.mjs +459 -0
- package/esm2022/angular-hasura-graphql.module.mjs +243 -0
- package/{esm2020 → esm2022}/consts/backend-url.const.mjs +1 -1
- package/{esm2020 → esm2022}/consts/category-structure.mjs +2 -2
- package/{esm2020 → esm2022}/consts/default-shop.const.mjs +2 -2
- package/{esm2020 → esm2022}/consts/es-config.const.mjs +2 -2
- package/{esm2020 → esm2022}/consts/firebase-const.mjs +4 -4
- package/{esm2020 → esm2022}/consts/hasura-options.const.mjs +2 -2
- package/{esm2020 → esm2022}/consts/index.mjs +7 -7
- package/{esm2020 → esm2022}/helpers/index.mjs +2 -2
- package/{esm2020 → esm2022}/helpers/mobile-operation-system-checker.helper.mjs +7 -7
- package/{esm2020 → esm2022}/index.mjs +6 -6
- package/{esm2020 → esm2022}/infrab4a-connect-angular.mjs +4 -4
- package/{esm2020 → esm2022}/services/auth.service.mjs +37 -37
- package/{esm2020 → esm2022}/services/cart.service.mjs +281 -281
- package/{esm2020 → esm2022}/services/catalog/adapters/category-structure.adapter.mjs +2 -2
- package/{esm2020 → esm2022}/services/catalog/adapters/index.mjs +4 -4
- package/{esm2020 → esm2022}/services/catalog/adapters/new-category-structure.adapter.mjs +41 -41
- package/{esm2020 → esm2022}/services/catalog/adapters/old-category-structure.adapter.mjs +23 -23
- package/esm2022/services/catalog/catalog.service.mjs +122 -0
- package/esm2022/services/catalog/category.service.mjs +51 -0
- package/{esm2020 → esm2022}/services/catalog/enums/index.mjs +2 -2
- package/{esm2020 → esm2022}/services/catalog/enums/product-sorts.enum.mjs +11 -11
- package/{esm2020 → esm2022}/services/catalog/index.mjs +7 -7
- package/{esm2020 → esm2022}/services/catalog/models/category-with-tree.model.mjs +10 -10
- package/{esm2020 → esm2022}/services/catalog/models/index.mjs +2 -2
- package/{esm2020 → esm2022}/services/catalog/types/index.mjs +2 -2
- package/{esm2020 → esm2022}/services/catalog/types/product-sort.type.mjs +2 -2
- package/{esm2020 → esm2022}/services/catalog/wishlist.service.mjs +106 -106
- package/{esm2020 → esm2022}/services/checkout-subscription.service.mjs +53 -53
- package/{esm2020 → esm2022}/services/checkout.service.mjs +71 -71
- package/{esm2020 → esm2022}/services/coupon.service.mjs +218 -218
- package/{esm2020 → esm2022}/services/helpers/index.mjs +2 -2
- package/{esm2020 → esm2022}/services/helpers/util.helper.mjs +18 -18
- package/{esm2020 → esm2022}/services/home-shop.service.mjs +114 -114
- package/{esm2020 → esm2022}/services/index.mjs +11 -11
- package/{esm2020 → esm2022}/services/order.service.mjs +30 -30
- package/{esm2020 → esm2022}/services/shipping.service.mjs +96 -96
- package/{esm2020 → esm2022}/services/types/index.mjs +3 -3
- package/{esm2020 → esm2022}/services/types/required-checkout-data.type.mjs +2 -2
- package/{esm2020 → esm2022}/services/types/required-checkout-subscription-data.type.mjs +2 -2
- package/esm2022/services/types/shipping-methods.type.mjs +2 -0
- package/{esm2020 → esm2022}/types/firebase-app-config.type.mjs +2 -2
- package/{esm2020 → esm2022}/types/index.mjs +2 -2
- package/{fesm2020 → fesm2022}/infrab4a-connect-angular.mjs +2047 -2063
- package/fesm2022/infrab4a-connect-angular.mjs.map +1 -0
- package/helpers/index.d.ts +1 -1
- package/helpers/mobile-operation-system-checker.helper.d.ts +3 -3
- package/index.d.ts +5 -5
- package/package.json +10 -17
- package/services/auth.service.d.ts +18 -18
- package/services/cart.service.d.ts +42 -42
- package/services/catalog/adapters/category-structure.adapter.d.ts +4 -4
- package/services/catalog/adapters/index.d.ts +3 -3
- package/services/catalog/adapters/new-category-structure.adapter.d.ts +12 -12
- package/services/catalog/adapters/old-category-structure.adapter.d.ts +10 -10
- package/services/catalog/catalog.service.d.ts +80 -80
- package/services/catalog/category.service.d.ts +15 -15
- package/services/catalog/enums/index.d.ts +1 -1
- package/services/catalog/enums/product-sorts.enum.d.ts +9 -9
- package/services/catalog/index.d.ts +6 -6
- package/services/catalog/models/category-with-tree.model.d.ts +4 -4
- package/services/catalog/models/index.d.ts +1 -1
- package/services/catalog/types/index.d.ts +1 -1
- package/services/catalog/types/product-sort.type.d.ts +2 -2
- package/services/catalog/wishlist.service.d.ts +22 -22
- package/services/checkout-subscription.service.d.ts +18 -18
- package/services/checkout.service.d.ts +23 -23
- package/services/coupon.service.d.ts +28 -28
- package/services/helpers/index.d.ts +1 -1
- package/services/helpers/util.helper.d.ts +3 -3
- package/services/home-shop.service.d.ts +25 -25
- package/services/index.d.ts +10 -10
- package/services/order.service.d.ts +13 -13
- package/services/shipping.service.d.ts +19 -19
- package/services/types/index.d.ts +2 -2
- package/services/types/required-checkout-data.type.d.ts +2 -2
- package/services/types/required-checkout-subscription-data.type.d.ts +2 -2
- package/services/types/shipping-methods.type.d.ts +12 -12
- package/types/firebase-app-config.type.d.ts +1 -1
- package/types/index.d.ts +1 -1
- package/esm2020/angular-elastic-search.module.mjs +0 -34
- package/esm2020/angular-firebase-auth.module.mjs +0 -130
- package/esm2020/angular-firestore.module.mjs +0 -473
- package/esm2020/angular-hasura-graphql.module.mjs +0 -243
- package/esm2020/services/catalog/catalog.service.mjs +0 -124
- package/esm2020/services/catalog/category.service.mjs +0 -51
- package/esm2020/services/types/shipping-methods.type.mjs +0 -2
- package/fesm2015/infrab4a-connect-angular.mjs +0 -2208
- package/fesm2015/infrab4a-connect-angular.mjs.map +0 -1
- package/fesm2020/infrab4a-connect-angular.mjs.map +0 -1
|
@@ -1,106 +1,106 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { ProductsIndex, Shops, } from '@infrab4a/connect';
|
|
3
|
-
import { DEFAULT_SHOP } from '../../consts';
|
|
4
|
-
import { UtilHelper } from '../helpers';
|
|
5
|
-
import { NewCategoryStructureAdapter } from './adapters';
|
|
6
|
-
import { CatalogService } from './catalog.service';
|
|
7
|
-
import { CategoryService } from './category.service';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@infrab4a/connect";
|
|
10
|
-
export class WishlistService {
|
|
11
|
-
constructor(wishlistRepository, shop, productRepository, categoryFilterRepository, productIndex) {
|
|
12
|
-
this.wishlistRepository = wishlistRepository;
|
|
13
|
-
this.shop = shop;
|
|
14
|
-
const categoryStructureAdapter = new NewCategoryStructureAdapter(wishlistRepository);
|
|
15
|
-
this.catalogService = new CatalogService(productRepository, categoryStructureAdapter, shop, productIndex);
|
|
16
|
-
this.categoryService = new CategoryService(productRepository, wishlistRepository, categoryFilterRepository, categoryStructureAdapter, shop);
|
|
17
|
-
}
|
|
18
|
-
getCatalogService() {
|
|
19
|
-
return this.catalogService;
|
|
20
|
-
}
|
|
21
|
-
getCategoryService() {
|
|
22
|
-
return this.categoryService;
|
|
23
|
-
}
|
|
24
|
-
async create(personId, title, description, userFullName, userPhoto) {
|
|
25
|
-
const data = {
|
|
26
|
-
slug: UtilHelper.createSlug(`favoritos ${title}`),
|
|
27
|
-
name: title,
|
|
28
|
-
description,
|
|
29
|
-
metadata: {
|
|
30
|
-
title: `${userFullName} - ${title}`,
|
|
31
|
-
description: `${userFullName} - ${description}`,
|
|
32
|
-
},
|
|
33
|
-
shop: this.shop,
|
|
34
|
-
shops: [this.shop],
|
|
35
|
-
personId,
|
|
36
|
-
personName: userFullName,
|
|
37
|
-
personPhoto: userPhoto,
|
|
38
|
-
brandCategory: false,
|
|
39
|
-
published: true,
|
|
40
|
-
};
|
|
41
|
-
const newWishlist = await this.wishlistRepository.create(data);
|
|
42
|
-
return this.wishlistRepository.update({ id: newWishlist.id, slug: `${newWishlist.id}-${newWishlist.slug}` });
|
|
43
|
-
}
|
|
44
|
-
update(id, title, description, userFullName, userPhoto) {
|
|
45
|
-
const data = {
|
|
46
|
-
id,
|
|
47
|
-
slug: UtilHelper.createSlug(`${id}-favoritos ${title}`),
|
|
48
|
-
name: title,
|
|
49
|
-
description,
|
|
50
|
-
metadata: {
|
|
51
|
-
title: `${userFullName} - ${title}`,
|
|
52
|
-
description: `${userFullName} - ${description}`,
|
|
53
|
-
},
|
|
54
|
-
personName: userFullName,
|
|
55
|
-
personPhoto: userPhoto,
|
|
56
|
-
};
|
|
57
|
-
return this.wishlistRepository.update(data);
|
|
58
|
-
}
|
|
59
|
-
delete(wishlistId) {
|
|
60
|
-
return this.wishlistRepository.delete({ id: wishlistId });
|
|
61
|
-
}
|
|
62
|
-
getWishlistBySlug(slug) {
|
|
63
|
-
return this.wishlistRepository.getWishlistBySlug(slug);
|
|
64
|
-
}
|
|
65
|
-
getWishlistsByPerson(personId) {
|
|
66
|
-
return this.wishlistRepository.getWishlistByPerson(personId);
|
|
67
|
-
}
|
|
68
|
-
async addProduct(wishlistId, productId) {
|
|
69
|
-
const wishlist = await this.wishlistRepository.get({ id: wishlistId });
|
|
70
|
-
const hasProduct = wishlist.products.some((p) => p == productId);
|
|
71
|
-
if (!hasProduct) {
|
|
72
|
-
wishlist.products = [...wishlist.products, productId];
|
|
73
|
-
return this.wishlistRepository.update({ id: wishlistId, products: wishlist.products });
|
|
74
|
-
}
|
|
75
|
-
return wishlist;
|
|
76
|
-
}
|
|
77
|
-
async removeProduct(wishlistId, productId) {
|
|
78
|
-
const wishlist = await this.wishlistRepository.get({ id: wishlistId });
|
|
79
|
-
const productIndex = wishlist.products.findIndex((p) => p == productId);
|
|
80
|
-
if (productIndex != -1) {
|
|
81
|
-
wishlist.products.splice(productIndex, 1);
|
|
82
|
-
if (!wishlist.products.length)
|
|
83
|
-
return this.wishlistRepository.update({ id: wishlistId, products: { action: 'remove' } });
|
|
84
|
-
return this.wishlistRepository.update({ id: wishlistId, products: wishlist.products });
|
|
85
|
-
}
|
|
86
|
-
return wishlist;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
92
|
-
type: Injectable
|
|
93
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
94
|
-
type: Inject,
|
|
95
|
-
args: ['WishlistRepository']
|
|
96
|
-
}] }, { type: i1.Shops, decorators: [{
|
|
97
|
-
type: Inject,
|
|
98
|
-
args: [DEFAULT_SHOP]
|
|
99
|
-
}] }, { type: undefined, decorators: [{
|
|
100
|
-
type: Inject,
|
|
101
|
-
args: ['ProductRepository']
|
|
102
|
-
}] }, { type: undefined, decorators: [{
|
|
103
|
-
type: Inject,
|
|
104
|
-
args: ['CategoryFilterRepository']
|
|
105
|
-
}] }, { type: i1.ProductsIndex }]; } });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy93aXNobGlzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFHTCxhQUFhLEVBQ2IsS0FBSyxHQUdOLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7QUFHcEQsTUFBTSxPQUFPLGVBQWU7SUFJMUIsWUFDaUQsa0JBQXNDLEVBQzlDLElBQVcsRUFDckIsaUJBQW9DLEVBQzdCLHdCQUFrRCxFQUN0RixZQUEyQjtRQUpvQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQzlDLFNBQUksR0FBSixJQUFJLENBQU87UUFLbEQsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLDJCQUEyQixDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFFcEYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBVyxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUE7UUFDbkgsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FDeEMsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3hCLElBQUksQ0FDTCxDQUFBO0lBQ0gs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QixlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQU1OLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyxZQUFZOzswQkFDbkIsTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUMxQixNQUFNOzJCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxuICBQcm9kdWN0c0luZGV4LFxuICBTaG9wcyxcbiAgV2lzaGxpc3QsXG4gIFdpc2hsaXN0UmVwb3NpdG9yeSxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi8uLi9jb25zdHMnXG5pbXBvcnQgeyBVdGlsSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycydcbmltcG9ydCB7IE5ld0NhdGVnb3J5U3RydWN0dXJlQWRhcHRlciB9IGZyb20gJy4vYWRhcHRlcnMnXG5pbXBvcnQgeyBDYXRhbG9nU2VydmljZSB9IGZyb20gJy4vY2F0YWxvZy5zZXJ2aWNlJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi9jYXRlZ29yeS5zZXJ2aWNlJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgV2lzaGxpc3RTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjYXRhbG9nU2VydmljZTogQ2F0YWxvZ1NlcnZpY2VcbiAgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ1dpc2hsaXN0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgd2lzaGxpc3RSZXBvc2l0b3J5OiBXaXNobGlzdFJlcG9zaXRvcnksXG4gICAgQEluamVjdChERUZBVUxUX1NIT1ApIHByaXZhdGUgcmVhZG9ubHkgc2hvcDogU2hvcHMsXG4gICAgQEluamVjdCgnUHJvZHVjdFJlcG9zaXRvcnknKSBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdFJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5JykgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5OiBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXG4gICAgcHJvZHVjdEluZGV4OiBQcm9kdWN0c0luZGV4LFxuICApIHtcbiAgICBjb25zdCBjYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIgPSBuZXcgTmV3Q2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyKHdpc2hsaXN0UmVwb3NpdG9yeSlcblxuICAgIHRoaXMuY2F0YWxvZ1NlcnZpY2UgPSBuZXcgQ2F0YWxvZ1NlcnZpY2U8V2lzaGxpc3Q+KHByb2R1Y3RSZXBvc2l0b3J5LCBjYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIsIHNob3AsIHByb2R1Y3RJbmRleClcbiAgICB0aGlzLmNhdGVnb3J5U2VydmljZSA9IG5ldyBDYXRlZ29yeVNlcnZpY2UoXG4gICAgICBwcm9kdWN0UmVwb3NpdG9yeSxcbiAgICAgIHdpc2hsaXN0UmVwb3NpdG9yeSxcbiAgICAgIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSxcbiAgICAgIGNhdGVnb3J5U3RydWN0dXJlQWRhcHRlcixcbiAgICAgIHNob3AsXG4gICAgKVxuICB9XG5cbiAgZ2V0Q2F0YWxvZ1NlcnZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2F0YWxvZ1NlcnZpY2VcbiAgfVxuXG4gIGdldENhdGVnb3J5U2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeVNlcnZpY2VcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZShcbiAgICBwZXJzb25JZDogc3RyaW5nLFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgICB1c2VyRnVsbE5hbWU6IHN0cmluZyxcbiAgICB1c2VyUGhvdG8/OiBzdHJpbmcsXG4gICk6IFByb21pc2U8V2lzaGxpc3Q+IHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgc2x1ZzogVXRpbEhlbHBlci5jcmVhdGVTbHVnKGBmYXZvcml0b3MgJHt0aXRsZX1gKSxcbiAgICAgIG5hbWU6IHRpdGxlLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICB0aXRsZTogYCR7dXNlckZ1bGxOYW1lfSAtICR7dGl0bGV9YCxcbiAgICAgICAgZGVzY3JpcHRpb246IGAke3VzZXJGdWxsTmFtZX0gLSAke2Rlc2NyaXB0aW9ufWAsXG4gICAgICB9LFxuICAgICAgc2hvcDogdGhpcy5zaG9wLFxuICAgICAgc2hvcHM6IFt0aGlzLnNob3BdLFxuICAgICAgcGVyc29uSWQsXG4gICAgICBwZXJzb25OYW1lOiB1c2VyRnVsbE5hbWUsXG4gICAgICBwZXJzb25QaG90bzogdXNlclBob3RvLFxuICAgICAgYnJhbmRDYXRlZ29yeTogZmFsc2UsXG4gICAgICBwdWJsaXNoZWQ6IHRydWUsXG4gICAgfVxuXG4gICAgY29uc3QgbmV3V2lzaGxpc3QgPSBhd2FpdCB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeS5jcmVhdGUoZGF0YSlcblxuICAgIHJldHVybiB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeS51cGRhdGUoeyBpZDogbmV3V2lzaGxpc3QuaWQsIHNsdWc6IGAke25ld1dpc2hsaXN0LmlkfS0ke25ld1dpc2hsaXN0LnNsdWd9YCB9KVxuICB9XG5cbiAgdXBkYXRlKGlkOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcsIHVzZXJGdWxsTmFtZTogc3RyaW5nLCB1c2VyUGhvdG8/OiBzdHJpbmcpOiBQcm9taXNlPFdpc2hsaXN0PiB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGlkLFxuICAgICAgc2x1ZzogVXRpbEhlbHBlci5jcmVhdGVTbHVnKGAke2lkfS1mYXZvcml0b3MgJHt0aXRsZX1gKSxcbiAgICAgIG5hbWU6IHRpdGxlLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICB0aXRsZTogYCR7dXNlckZ1bGxOYW1lfSAtICR7dGl0bGV9YCxcbiAgICAgICAgZGVzY3JpcHRpb246IGAke3VzZXJGdWxsTmFtZX0gLSAke2Rlc2NyaXB0aW9ufWAsXG4gICAgICB9LFxuICAgICAgcGVyc29uTmFtZTogdXNlckZ1bGxOYW1lLFxuICAgICAgcGVyc29uUGhvdG86IHVzZXJQaG90byxcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy53aXNobGlzdFJlcG9zaXRvcnkudXBkYXRlKGRhdGEpXG4gIH1cblxuICBkZWxldGUod2lzaGxpc3RJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmRlbGV0ZSh7IGlkOiB3aXNobGlzdElkIH0pXG4gIH1cblxuICBnZXRXaXNobGlzdEJ5U2x1ZyhzbHVnOiBzdHJpbmcpOiBQcm9taXNlPFdpc2hsaXN0PiB7XG4gICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmdldFdpc2hsaXN0QnlTbHVnKHNsdWcpXG4gIH1cblxuICBnZXRXaXNobGlzdHNCeVBlcnNvbihwZXJzb25JZDogc3RyaW5nKTogUHJvbWlzZTxXaXNobGlzdFtdPiB7XG4gICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmdldFdpc2hsaXN0QnlQZXJzb24ocGVyc29uSWQpXG4gIH1cblxuICBhc3luYyBhZGRQcm9kdWN0KHdpc2hsaXN0SWQ6IHN0cmluZywgcHJvZHVjdElkOiBzdHJpbmcpOiBQcm9taXNlPFdpc2hsaXN0PiB7XG4gICAgY29uc3Qgd2lzaGxpc3QgPSBhd2FpdCB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeS5nZXQoeyBpZDogd2lzaGxpc3RJZCB9KVxuICAgIGNvbnN0IGhhc1Byb2R1Y3QgPSB3aXNobGlzdC5wcm9kdWN0cy5zb21lKChwKSA9PiBwID09IHByb2R1Y3RJZClcblxuICAgIGlmICghaGFzUHJvZHVjdCkge1xuICAgICAgd2lzaGxpc3QucHJvZHVjdHMgPSBbLi4ud2lzaGxpc3QucHJvZHVjdHMsIHByb2R1Y3RJZF1cbiAgICAgIHJldHVybiB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeS51cGRhdGUoeyBpZDogd2lzaGxpc3RJZCwgcHJvZHVjdHM6IHdpc2hsaXN0LnByb2R1Y3RzIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHdpc2hsaXN0XG4gIH1cblxuICBhc3luYyByZW1vdmVQcm9kdWN0KHdpc2hsaXN0SWQ6IHN0cmluZywgcHJvZHVjdElkOiBzdHJpbmcpOiBQcm9taXNlPFdpc2hsaXN0PiB7XG4gICAgY29uc3Qgd2lzaGxpc3QgPSBhd2FpdCB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeS5nZXQoeyBpZDogd2lzaGxpc3RJZCB9KVxuICAgIGNvbnN0IHByb2R1Y3RJbmRleCA9IHdpc2hsaXN0LnByb2R1Y3RzLmZpbmRJbmRleCgocCkgPT4gcCA9PSBwcm9kdWN0SWQpXG5cbiAgICBpZiAocHJvZHVjdEluZGV4ICE9IC0xKSB7XG4gICAgICB3aXNobGlzdC5wcm9kdWN0cy5zcGxpY2UocHJvZHVjdEluZGV4LCAxKVxuXG4gICAgICBpZiAoIXdpc2hsaXN0LnByb2R1Y3RzLmxlbmd0aClcbiAgICAgICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LnVwZGF0ZSh7IGlkOiB3aXNobGlzdElkLCBwcm9kdWN0czogeyBhY3Rpb246ICdyZW1vdmUnIH0gfSlcblxuICAgICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LnVwZGF0ZSh7IGlkOiB3aXNobGlzdElkLCBwcm9kdWN0czogd2lzaGxpc3QucHJvZHVjdHMgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gd2lzaGxpc3RcbiAgfVxufVxuIl19
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { ProductsIndex, Shops, } from '@infrab4a/connect';
|
|
3
|
+
import { DEFAULT_SHOP } from '../../consts';
|
|
4
|
+
import { UtilHelper } from '../helpers';
|
|
5
|
+
import { NewCategoryStructureAdapter } from './adapters';
|
|
6
|
+
import { CatalogService } from './catalog.service';
|
|
7
|
+
import { CategoryService } from './category.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@infrab4a/connect";
|
|
10
|
+
export class WishlistService {
|
|
11
|
+
constructor(wishlistRepository, shop, productRepository, categoryFilterRepository, productIndex) {
|
|
12
|
+
this.wishlistRepository = wishlistRepository;
|
|
13
|
+
this.shop = shop;
|
|
14
|
+
const categoryStructureAdapter = new NewCategoryStructureAdapter(wishlistRepository);
|
|
15
|
+
this.catalogService = new CatalogService(productRepository, categoryStructureAdapter, shop, productIndex);
|
|
16
|
+
this.categoryService = new CategoryService(productRepository, wishlistRepository, categoryFilterRepository, categoryStructureAdapter, shop);
|
|
17
|
+
}
|
|
18
|
+
getCatalogService() {
|
|
19
|
+
return this.catalogService;
|
|
20
|
+
}
|
|
21
|
+
getCategoryService() {
|
|
22
|
+
return this.categoryService;
|
|
23
|
+
}
|
|
24
|
+
async create(personId, title, description, userFullName, userPhoto) {
|
|
25
|
+
const data = {
|
|
26
|
+
slug: UtilHelper.createSlug(`favoritos ${title}`),
|
|
27
|
+
name: title,
|
|
28
|
+
description,
|
|
29
|
+
metadata: {
|
|
30
|
+
title: `${userFullName} - ${title}`,
|
|
31
|
+
description: `${userFullName} - ${description}`,
|
|
32
|
+
},
|
|
33
|
+
shop: this.shop,
|
|
34
|
+
shops: [this.shop],
|
|
35
|
+
personId,
|
|
36
|
+
personName: userFullName,
|
|
37
|
+
personPhoto: userPhoto,
|
|
38
|
+
brandCategory: false,
|
|
39
|
+
published: true,
|
|
40
|
+
};
|
|
41
|
+
const newWishlist = await this.wishlistRepository.create(data);
|
|
42
|
+
return this.wishlistRepository.update({ id: newWishlist.id, slug: `${newWishlist.id}-${newWishlist.slug}` });
|
|
43
|
+
}
|
|
44
|
+
update(id, title, description, userFullName, userPhoto) {
|
|
45
|
+
const data = {
|
|
46
|
+
id,
|
|
47
|
+
slug: UtilHelper.createSlug(`${id}-favoritos ${title}`),
|
|
48
|
+
name: title,
|
|
49
|
+
description,
|
|
50
|
+
metadata: {
|
|
51
|
+
title: `${userFullName} - ${title}`,
|
|
52
|
+
description: `${userFullName} - ${description}`,
|
|
53
|
+
},
|
|
54
|
+
personName: userFullName,
|
|
55
|
+
personPhoto: userPhoto,
|
|
56
|
+
};
|
|
57
|
+
return this.wishlistRepository.update(data);
|
|
58
|
+
}
|
|
59
|
+
delete(wishlistId) {
|
|
60
|
+
return this.wishlistRepository.delete({ id: wishlistId });
|
|
61
|
+
}
|
|
62
|
+
getWishlistBySlug(slug) {
|
|
63
|
+
return this.wishlistRepository.getWishlistBySlug(slug);
|
|
64
|
+
}
|
|
65
|
+
getWishlistsByPerson(personId) {
|
|
66
|
+
return this.wishlistRepository.getWishlistByPerson(personId);
|
|
67
|
+
}
|
|
68
|
+
async addProduct(wishlistId, productId) {
|
|
69
|
+
const wishlist = await this.wishlistRepository.get({ id: wishlistId });
|
|
70
|
+
const hasProduct = wishlist.products.some((p) => p == productId);
|
|
71
|
+
if (!hasProduct) {
|
|
72
|
+
wishlist.products = [...wishlist.products, productId];
|
|
73
|
+
return this.wishlistRepository.update({ id: wishlistId, products: wishlist.products });
|
|
74
|
+
}
|
|
75
|
+
return wishlist;
|
|
76
|
+
}
|
|
77
|
+
async removeProduct(wishlistId, productId) {
|
|
78
|
+
const wishlist = await this.wishlistRepository.get({ id: wishlistId });
|
|
79
|
+
const productIndex = wishlist.products.findIndex((p) => p == productId);
|
|
80
|
+
if (productIndex != -1) {
|
|
81
|
+
wishlist.products.splice(productIndex, 1);
|
|
82
|
+
if (!wishlist.products.length)
|
|
83
|
+
return this.wishlistRepository.update({ id: wishlistId, products: { action: 'remove' } });
|
|
84
|
+
return this.wishlistRepository.update({ id: wishlistId, products: wishlist.products });
|
|
85
|
+
}
|
|
86
|
+
return wishlist;
|
|
87
|
+
}
|
|
88
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: WishlistService, deps: [{ token: 'WishlistRepository' }, { token: DEFAULT_SHOP }, { token: 'ProductRepository' }, { token: 'CategoryFilterRepository' }, { token: i1.ProductsIndex }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
89
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: WishlistService }); }
|
|
90
|
+
}
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: WishlistService, decorators: [{
|
|
92
|
+
type: Injectable
|
|
93
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
94
|
+
type: Inject,
|
|
95
|
+
args: ['WishlistRepository']
|
|
96
|
+
}] }, { type: i1.Shops, decorators: [{
|
|
97
|
+
type: Inject,
|
|
98
|
+
args: [DEFAULT_SHOP]
|
|
99
|
+
}] }, { type: undefined, decorators: [{
|
|
100
|
+
type: Inject,
|
|
101
|
+
args: ['ProductRepository']
|
|
102
|
+
}] }, { type: undefined, decorators: [{
|
|
103
|
+
type: Inject,
|
|
104
|
+
args: ['CategoryFilterRepository']
|
|
105
|
+
}] }, { type: i1.ProductsIndex }]; } });
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy93aXNobGlzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFHTCxhQUFhLEVBQ2IsS0FBSyxHQUdOLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7QUFHcEQsTUFBTSxPQUFPLGVBQWU7SUFJMUIsWUFDaUQsa0JBQXNDLEVBQzlDLElBQVcsRUFDckIsaUJBQW9DLEVBQzdCLHdCQUFrRCxFQUN0RixZQUEyQjtRQUpvQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQzlDLFNBQUksR0FBSixJQUFJLENBQU87UUFLbEQsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLDJCQUEyQixDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFFcEYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBVyxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUE7UUFDbkgsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FDeEMsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3hCLElBQUksQ0FDTCxDQUFBO0lBQ0gs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LGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQU1OLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyxZQUFZOzswQkFDbkIsTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUMxQixNQUFNOzJCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RzSW5kZXgsXHJcbiAgU2hvcHMsXHJcbiAgV2lzaGxpc3QsXHJcbiAgV2lzaGxpc3RSZXBvc2l0b3J5LFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi8uLi9jb25zdHMnXHJcbmltcG9ydCB7IFV0aWxIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzJ1xyXG5pbXBvcnQgeyBOZXdDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIgfSBmcm9tICcuL2FkYXB0ZXJzJ1xyXG5pbXBvcnQgeyBDYXRhbG9nU2VydmljZSB9IGZyb20gJy4vY2F0YWxvZy5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICcuL2NhdGVnb3J5LnNlcnZpY2UnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBXaXNobGlzdFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgY2F0YWxvZ1NlcnZpY2U6IENhdGFsb2dTZXJ2aWNlXHJcbiAgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoJ1dpc2hsaXN0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgd2lzaGxpc3RSZXBvc2l0b3J5OiBXaXNobGlzdFJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KERFRkFVTFRfU0hPUCkgcHJpdmF0ZSByZWFkb25seSBzaG9wOiBTaG9wcyxcclxuICAgIEBJbmplY3QoJ1Byb2R1Y3RSZXBvc2l0b3J5JykgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5JykgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5OiBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXHJcbiAgICBwcm9kdWN0SW5kZXg6IFByb2R1Y3RzSW5kZXgsXHJcbiAgKSB7XHJcbiAgICBjb25zdCBjYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIgPSBuZXcgTmV3Q2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyKHdpc2hsaXN0UmVwb3NpdG9yeSlcclxuXHJcbiAgICB0aGlzLmNhdGFsb2dTZXJ2aWNlID0gbmV3IENhdGFsb2dTZXJ2aWNlPFdpc2hsaXN0Pihwcm9kdWN0UmVwb3NpdG9yeSwgY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLCBzaG9wLCBwcm9kdWN0SW5kZXgpXHJcbiAgICB0aGlzLmNhdGVnb3J5U2VydmljZSA9IG5ldyBDYXRlZ29yeVNlcnZpY2UoXHJcbiAgICAgIHByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gICAgICB3aXNobGlzdFJlcG9zaXRvcnksXHJcbiAgICAgIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSxcclxuICAgICAgY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLFxyXG4gICAgICBzaG9wLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2F0YWxvZ1NlcnZpY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXRhbG9nU2VydmljZVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2F0ZWdvcnlTZXJ2aWNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnlTZXJ2aWNlXHJcbiAgfVxyXG5cclxuICBhc3luYyBjcmVhdGUoXHJcbiAgICBwZXJzb25JZDogc3RyaW5nLFxyXG4gICAgdGl0bGU6IHN0cmluZyxcclxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcsXHJcbiAgICB1c2VyRnVsbE5hbWU6IHN0cmluZyxcclxuICAgIHVzZXJQaG90bz86IHN0cmluZyxcclxuICApOiBQcm9taXNlPFdpc2hsaXN0PiB7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBzbHVnOiBVdGlsSGVscGVyLmNyZWF0ZVNsdWcoYGZhdm9yaXRvcyAke3RpdGxlfWApLFxyXG4gICAgICBuYW1lOiB0aXRsZSxcclxuICAgICAgZGVzY3JpcHRpb24sXHJcbiAgICAgIG1ldGFkYXRhOiB7XHJcbiAgICAgICAgdGl0bGU6IGAke3VzZXJGdWxsTmFtZX0gLSAke3RpdGxlfWAsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IGAke3VzZXJGdWxsTmFtZX0gLSAke2Rlc2NyaXB0aW9ufWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHNob3A6IHRoaXMuc2hvcCxcclxuICAgICAgc2hvcHM6IFt0aGlzLnNob3BdLFxyXG4gICAgICBwZXJzb25JZCxcclxuICAgICAgcGVyc29uTmFtZTogdXNlckZ1bGxOYW1lLFxyXG4gICAgICBwZXJzb25QaG90bzogdXNlclBob3RvLFxyXG4gICAgICBicmFuZENhdGVnb3J5OiBmYWxzZSxcclxuICAgICAgcHVibGlzaGVkOiB0cnVlLFxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5ld1dpc2hsaXN0ID0gYXdhaXQgdGhpcy53aXNobGlzdFJlcG9zaXRvcnkuY3JlYXRlKGRhdGEpXHJcblxyXG4gICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LnVwZGF0ZSh7IGlkOiBuZXdXaXNobGlzdC5pZCwgc2x1ZzogYCR7bmV3V2lzaGxpc3QuaWR9LSR7bmV3V2lzaGxpc3Quc2x1Z31gIH0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGUoaWQ6IHN0cmluZywgdGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdXNlckZ1bGxOYW1lOiBzdHJpbmcsIHVzZXJQaG90bz86IHN0cmluZyk6IFByb21pc2U8V2lzaGxpc3Q+IHtcclxuICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgIGlkLFxyXG4gICAgICBzbHVnOiBVdGlsSGVscGVyLmNyZWF0ZVNsdWcoYCR7aWR9LWZhdm9yaXRvcyAke3RpdGxlfWApLFxyXG4gICAgICBuYW1lOiB0aXRsZSxcclxuICAgICAgZGVzY3JpcHRpb24sXHJcbiAgICAgIG1ldGFkYXRhOiB7XHJcbiAgICAgICAgdGl0bGU6IGAke3VzZXJGdWxsTmFtZX0gLSAke3RpdGxlfWAsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IGAke3VzZXJGdWxsTmFtZX0gLSAke2Rlc2NyaXB0aW9ufWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBlcnNvbk5hbWU6IHVzZXJGdWxsTmFtZSxcclxuICAgICAgcGVyc29uUGhvdG86IHVzZXJQaG90byxcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy53aXNobGlzdFJlcG9zaXRvcnkudXBkYXRlKGRhdGEpXHJcbiAgfVxyXG5cclxuICBkZWxldGUod2lzaGxpc3RJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy53aXNobGlzdFJlcG9zaXRvcnkuZGVsZXRlKHsgaWQ6IHdpc2hsaXN0SWQgfSlcclxuICB9XHJcblxyXG4gIGdldFdpc2hsaXN0QnlTbHVnKHNsdWc6IHN0cmluZyk6IFByb21pc2U8V2lzaGxpc3Q+IHtcclxuICAgIHJldHVybiB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeS5nZXRXaXNobGlzdEJ5U2x1ZyhzbHVnKVxyXG4gIH1cclxuXHJcbiAgZ2V0V2lzaGxpc3RzQnlQZXJzb24ocGVyc29uSWQ6IHN0cmluZyk6IFByb21pc2U8V2lzaGxpc3RbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmdldFdpc2hsaXN0QnlQZXJzb24ocGVyc29uSWQpXHJcbiAgfVxyXG5cclxuICBhc3luYyBhZGRQcm9kdWN0KHdpc2hsaXN0SWQ6IHN0cmluZywgcHJvZHVjdElkOiBzdHJpbmcpOiBQcm9taXNlPFdpc2hsaXN0PiB7XHJcbiAgICBjb25zdCB3aXNobGlzdCA9IGF3YWl0IHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmdldCh7IGlkOiB3aXNobGlzdElkIH0pXHJcbiAgICBjb25zdCBoYXNQcm9kdWN0ID0gd2lzaGxpc3QucHJvZHVjdHMuc29tZSgocCkgPT4gcCA9PSBwcm9kdWN0SWQpXHJcblxyXG4gICAgaWYgKCFoYXNQcm9kdWN0KSB7XHJcbiAgICAgIHdpc2hsaXN0LnByb2R1Y3RzID0gWy4uLndpc2hsaXN0LnByb2R1Y3RzLCBwcm9kdWN0SWRdXHJcbiAgICAgIHJldHVybiB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeS51cGRhdGUoeyBpZDogd2lzaGxpc3RJZCwgcHJvZHVjdHM6IHdpc2hsaXN0LnByb2R1Y3RzIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHdpc2hsaXN0XHJcbiAgfVxyXG5cclxuICBhc3luYyByZW1vdmVQcm9kdWN0KHdpc2hsaXN0SWQ6IHN0cmluZywgcHJvZHVjdElkOiBzdHJpbmcpOiBQcm9taXNlPFdpc2hsaXN0PiB7XHJcbiAgICBjb25zdCB3aXNobGlzdCA9IGF3YWl0IHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmdldCh7IGlkOiB3aXNobGlzdElkIH0pXHJcbiAgICBjb25zdCBwcm9kdWN0SW5kZXggPSB3aXNobGlzdC5wcm9kdWN0cy5maW5kSW5kZXgoKHApID0+IHAgPT0gcHJvZHVjdElkKVxyXG5cclxuICAgIGlmIChwcm9kdWN0SW5kZXggIT0gLTEpIHtcclxuICAgICAgd2lzaGxpc3QucHJvZHVjdHMuc3BsaWNlKHByb2R1Y3RJbmRleCwgMSlcclxuXHJcbiAgICAgIGlmICghd2lzaGxpc3QucHJvZHVjdHMubGVuZ3RoKVxyXG4gICAgICAgIHJldHVybiB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeS51cGRhdGUoeyBpZDogd2lzaGxpc3RJZCwgcHJvZHVjdHM6IHsgYWN0aW9uOiAncmVtb3ZlJyB9IH0pXHJcblxyXG4gICAgICByZXR1cm4gdGhpcy53aXNobGlzdFJlcG9zaXRvcnkudXBkYXRlKHsgaWQ6IHdpc2hsaXN0SWQsIHByb2R1Y3RzOiB3aXNobGlzdC5wcm9kdWN0cyB9KVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB3aXNobGlzdFxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { CheckoutSubscription, CheckoutTypes, isNil, pick, } from '@infrab4a/connect';
|
|
3
|
-
import cookie from 'js-cookie';
|
|
4
|
-
import { from, of } from 'rxjs';
|
|
5
|
-
import { concatMap } from 'rxjs/operators';
|
|
6
|
-
import { CouponService } from './coupon.service';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "./coupon.service";
|
|
9
|
-
export class CheckoutSubscriptionService {
|
|
10
|
-
constructor(checkoutSubscriptionRepository, subscriptionRepository, couponService) {
|
|
11
|
-
this.checkoutSubscriptionRepository = checkoutSubscriptionRepository;
|
|
12
|
-
this.subscriptionRepository = subscriptionRepository;
|
|
13
|
-
this.couponService = couponService;
|
|
14
|
-
}
|
|
15
|
-
getCheckoutSubscription(checkoutData) {
|
|
16
|
-
const checkoutId = cookie.get('checkoutSubscriptionId');
|
|
17
|
-
if (!isNil(checkoutId))
|
|
18
|
-
return from(this.checkoutSubscriptionRepository.get({ id: checkoutId }));
|
|
19
|
-
return from(this.createCheckoutSubscription(checkoutData));
|
|
20
|
-
}
|
|
21
|
-
async createCheckoutSubscription(checkoutData) {
|
|
22
|
-
const checkout = await this.checkoutSubscriptionRepository.create({
|
|
23
|
-
createdAt: new Date(),
|
|
24
|
-
...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
|
|
25
|
-
});
|
|
26
|
-
cookie.set('checkoutSubscriptionId', checkout.id);
|
|
27
|
-
return checkout;
|
|
28
|
-
}
|
|
29
|
-
clearCheckoutSubscriptionFromSession() {
|
|
30
|
-
cookie.remove('checkoutSubscriptionId');
|
|
31
|
-
return of();
|
|
32
|
-
}
|
|
33
|
-
checkCoupon(nickname, userEmail) {
|
|
34
|
-
return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService
|
|
35
|
-
.checkCoupon(nickname, CheckoutTypes.SUBSCRIPTION, checkout, checkout.subscriptionPlan.name)
|
|
36
|
-
.pipe()));
|
|
37
|
-
}
|
|
38
|
-
calcDiscountSubscription(coupon) {
|
|
39
|
-
return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()));
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
45
|
-
type: Injectable
|
|
46
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
47
|
-
type: Inject,
|
|
48
|
-
args: ['CheckoutSubscriptionRepository']
|
|
49
|
-
}] }, { type: undefined, decorators: [{
|
|
50
|
-
type: Inject,
|
|
51
|
-
args: ['SubscriptionRepository']
|
|
52
|
-
}] }, { type: i1.CouponService }]; } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { CheckoutSubscription, CheckoutTypes, isNil, pick, } from '@infrab4a/connect';
|
|
3
|
+
import cookie from 'js-cookie';
|
|
4
|
+
import { from, of } from 'rxjs';
|
|
5
|
+
import { concatMap } from 'rxjs/operators';
|
|
6
|
+
import { CouponService } from './coupon.service';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "./coupon.service";
|
|
9
|
+
export class CheckoutSubscriptionService {
|
|
10
|
+
constructor(checkoutSubscriptionRepository, subscriptionRepository, couponService) {
|
|
11
|
+
this.checkoutSubscriptionRepository = checkoutSubscriptionRepository;
|
|
12
|
+
this.subscriptionRepository = subscriptionRepository;
|
|
13
|
+
this.couponService = couponService;
|
|
14
|
+
}
|
|
15
|
+
getCheckoutSubscription(checkoutData) {
|
|
16
|
+
const checkoutId = cookie.get('checkoutSubscriptionId');
|
|
17
|
+
if (!isNil(checkoutId))
|
|
18
|
+
return from(this.checkoutSubscriptionRepository.get({ id: checkoutId }));
|
|
19
|
+
return from(this.createCheckoutSubscription(checkoutData));
|
|
20
|
+
}
|
|
21
|
+
async createCheckoutSubscription(checkoutData) {
|
|
22
|
+
const checkout = await this.checkoutSubscriptionRepository.create({
|
|
23
|
+
createdAt: new Date(),
|
|
24
|
+
...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
|
|
25
|
+
});
|
|
26
|
+
cookie.set('checkoutSubscriptionId', checkout.id);
|
|
27
|
+
return checkout;
|
|
28
|
+
}
|
|
29
|
+
clearCheckoutSubscriptionFromSession() {
|
|
30
|
+
cookie.remove('checkoutSubscriptionId');
|
|
31
|
+
return of();
|
|
32
|
+
}
|
|
33
|
+
checkCoupon(nickname, userEmail) {
|
|
34
|
+
return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService
|
|
35
|
+
.checkCoupon(nickname, CheckoutTypes.SUBSCRIPTION, checkout, checkout.subscriptionPlan.name)
|
|
36
|
+
.pipe()));
|
|
37
|
+
}
|
|
38
|
+
calcDiscountSubscription(coupon) {
|
|
39
|
+
return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()));
|
|
40
|
+
}
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: CheckoutSubscriptionService, deps: [{ token: 'CheckoutSubscriptionRepository' }, { token: 'SubscriptionRepository' }, { token: i1.CouponService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
42
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: CheckoutSubscriptionService }); }
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: CheckoutSubscriptionService, decorators: [{
|
|
45
|
+
type: Injectable
|
|
46
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
47
|
+
type: Inject,
|
|
48
|
+
args: ['CheckoutSubscriptionRepository']
|
|
49
|
+
}] }, { type: undefined, decorators: [{
|
|
50
|
+
type: Inject,
|
|
51
|
+
args: ['SubscriptionRepository']
|
|
52
|
+
}] }, { type: i1.CouponService }]; } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtc3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NoZWNrb3V0LXN1YnNjcmlwdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFDTCxvQkFBb0IsRUFFcEIsYUFBYSxFQUdiLEtBQUssRUFDTCxJQUFJLEdBQ0wsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLE1BQU0sTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxFQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTs7O0FBR2hELE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFFbUIsOEJBQThELEVBQzVCLHNCQUE4QyxFQUNoRixhQUE0QjtRQUY1QixtQ0FBOEIsR0FBOUIsOEJBQThCLENBQWdDO1FBQzVCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDaEYsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFDNUMsQ0FBQztJQUVKLHVCQUF1QixDQUFDLFlBQStDO1FBQ3JFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtRQUV2RCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBRWhHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO0lBQzVELENBQUM7SUFFTyxLQUFLLENBQUMsMEJBQTBCLENBQ3RDLFlBQStDO1FBRS9DLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLDhCQUE4QixDQUFDLE1BQU0sQ0FBQztZQUNoRSxTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDckIsR0FBRyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO1NBQ25GLENBQUMsQ0FBQTtRQUVGLE1BQU0sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRWpELE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7SUFFRCxvQ0FBb0M7UUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1FBRXZDLE9BQU8sRUFBRSxFQUFFLENBQUE7SUFDYixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDN0MsT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxJQUFJLENBQ3hDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3JCLElBQUksQ0FBQyxhQUFhO2FBQ2YsV0FBVyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2FBQzNGLElBQUksRUFBRSxDQUNWLENBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxNQUFjO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsSUFBSSxDQUN4QyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQzlGLENBQUE7SUFDSCxDQUFDOzhHQWpEVSwyQkFBMkIsa0JBRTVCLGdDQUFnQyxhQUVoQyx3QkFBd0I7a0hBSnZCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVTs7MEJBR04sTUFBTTsyQkFBQyxnQ0FBZ0M7OzBCQUV2QyxNQUFNOzJCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgQ2hlY2tvdXRTdWJzY3JpcHRpb24sXHJcbiAgQ2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5LFxyXG4gIENoZWNrb3V0VHlwZXMsXHJcbiAgQ291cG9uLFxyXG4gIFN1YnNjcmlwdGlvblJlcG9zaXRvcnksXHJcbiAgaXNOaWwsXHJcbiAgcGljayxcclxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuaW1wb3J0IGNvb2tpZSBmcm9tICdqcy1jb29raWUnXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIG9mIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgY29uY2F0TWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IFJlcXVpcmVkQ2hlY2tvdXRTdWJzY3JpcHRpb25EYXRhIH0gZnJvbSAnLi90eXBlcydcclxuXHJcbmltcG9ydCB7IENvdXBvblNlcnZpY2UgfSBmcm9tICcuL2NvdXBvbi5zZXJ2aWNlJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRTdWJzY3JpcHRpb25TZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoJ0NoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeScpXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeTogQ2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdCgnU3Vic2NyaXB0aW9uUmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9uUmVwb3NpdG9yeTogU3Vic2NyaXB0aW9uUmVwb3NpdG9yeSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY291cG9uU2VydmljZTogQ291cG9uU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIGdldENoZWNrb3V0U3Vic2NyaXB0aW9uKGNoZWNrb3V0RGF0YT86IFJlcXVpcmVkQ2hlY2tvdXRTdWJzY3JpcHRpb25EYXRhKTogT2JzZXJ2YWJsZTxDaGVja291dFN1YnNjcmlwdGlvbj4ge1xyXG4gICAgY29uc3QgY2hlY2tvdXRJZCA9IGNvb2tpZS5nZXQoJ2NoZWNrb3V0U3Vic2NyaXB0aW9uSWQnKVxyXG5cclxuICAgIGlmICghaXNOaWwoY2hlY2tvdXRJZCkpIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5LmdldCh7IGlkOiBjaGVja291dElkIH0pKVxyXG5cclxuICAgIHJldHVybiBmcm9tKHRoaXMuY3JlYXRlQ2hlY2tvdXRTdWJzY3JpcHRpb24oY2hlY2tvdXREYXRhKSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlQ2hlY2tvdXRTdWJzY3JpcHRpb24oXHJcbiAgICBjaGVja291dERhdGE/OiBSZXF1aXJlZENoZWNrb3V0U3Vic2NyaXB0aW9uRGF0YSxcclxuICApOiBQcm9taXNlPENoZWNrb3V0U3Vic2NyaXB0aW9uPiB7XHJcbiAgICBjb25zdCBjaGVja291dCA9IGF3YWl0IHRoaXMuY2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5LmNyZWF0ZSh7XHJcbiAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKSxcclxuICAgICAgLi4uQ2hlY2tvdXRTdWJzY3JpcHRpb24udG9JbnN0YW5jZShwaWNrKGNoZWNrb3V0RGF0YSwgWyd1c2VyJywgJ3Nob3AnXSkpLnRvUGxhaW4oKSxcclxuICAgIH0pXHJcblxyXG4gICAgY29va2llLnNldCgnY2hlY2tvdXRTdWJzY3JpcHRpb25JZCcsIGNoZWNrb3V0LmlkKVxyXG5cclxuICAgIHJldHVybiBjaGVja291dFxyXG4gIH1cclxuXHJcbiAgY2xlYXJDaGVja291dFN1YnNjcmlwdGlvbkZyb21TZXNzaW9uKCk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgY29va2llLnJlbW92ZSgnY2hlY2tvdXRTdWJzY3JpcHRpb25JZCcpXHJcblxyXG4gICAgcmV0dXJuIG9mKClcclxuICB9XHJcblxyXG4gIGNoZWNrQ291cG9uKG5pY2tuYW1lOiBzdHJpbmcsIHVzZXJFbWFpbDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb3Vwb24+IHtcclxuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0U3Vic2NyaXB0aW9uKCkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cclxuICAgICAgICB0aGlzLmNvdXBvblNlcnZpY2VcclxuICAgICAgICAgIC5jaGVja0NvdXBvbihuaWNrbmFtZSwgQ2hlY2tvdXRUeXBlcy5TVUJTQ1JJUFRJT04sIGNoZWNrb3V0LCBjaGVja291dC5zdWJzY3JpcHRpb25QbGFuLm5hbWUpXHJcbiAgICAgICAgICAucGlwZSgpLFxyXG4gICAgICApLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY2FsY0Rpc2NvdW50U3Vic2NyaXB0aW9uKGNvdXBvbjogQ291cG9uKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja291dFN1YnNjcmlwdGlvbigpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+IHRoaXMuY291cG9uU2VydmljZS5jYWxjRGlzY291bnRTdWJzY3JpcHRpb24oY291cG9uLCBjaGVja291dCkucGlwZSgpKSxcclxuICAgIClcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { Checkout, CheckoutTypes, NotFoundError, Shops, isNil, pick, } from '@infrab4a/connect';
|
|
3
|
-
import cookie from 'js-cookie';
|
|
4
|
-
import { from, of, throwError } from 'rxjs';
|
|
5
|
-
import { concatMap } from 'rxjs/operators';
|
|
6
|
-
import { DEFAULT_SHOP } from '../consts';
|
|
7
|
-
import { CouponService } from './coupon.service';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "./coupon.service";
|
|
10
|
-
import * as i2 from "@infrab4a/connect";
|
|
11
|
-
export class CheckoutService {
|
|
12
|
-
constructor(couponService, checkoutRepository, orderRepository, userRepository, defaultShop) {
|
|
13
|
-
this.couponService = couponService;
|
|
14
|
-
this.checkoutRepository = checkoutRepository;
|
|
15
|
-
this.orderRepository = orderRepository;
|
|
16
|
-
this.userRepository = userRepository;
|
|
17
|
-
this.defaultShop = defaultShop;
|
|
18
|
-
}
|
|
19
|
-
getCheckout(checkoutData) {
|
|
20
|
-
const checkoutId = cookie.get('checkoutId');
|
|
21
|
-
if (!isNil(checkoutId))
|
|
22
|
-
return from(this.checkoutRepository.get({ id: checkoutId }));
|
|
23
|
-
return from(this.createCheckout(checkoutData));
|
|
24
|
-
}
|
|
25
|
-
getUserByCheckout(checkoutId) {
|
|
26
|
-
return from(this.checkoutRepository.get({ id: checkoutId })).pipe(concatMap((checkout) => checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id }))), concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))));
|
|
27
|
-
}
|
|
28
|
-
updateCheckoutLineItems(checkout) {
|
|
29
|
-
return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })));
|
|
30
|
-
}
|
|
31
|
-
updateCheckoutUser(checkout) {
|
|
32
|
-
return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })));
|
|
33
|
-
}
|
|
34
|
-
clearCheckoutFromSession() {
|
|
35
|
-
cookie.remove('checkoutId');
|
|
36
|
-
return of();
|
|
37
|
-
}
|
|
38
|
-
calcDiscount(coupon) {
|
|
39
|
-
return this.getCheckout().pipe(concatMap(async (checkout) => await this.couponService.calcDiscountShopping(coupon, checkout)));
|
|
40
|
-
}
|
|
41
|
-
checkCoupon(nickname, checkoutType) {
|
|
42
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.couponService.checkCoupon(nickname, CheckoutTypes.ECOMMERCE, checkout, null).pipe()));
|
|
43
|
-
}
|
|
44
|
-
async createCheckout(checkoutData) {
|
|
45
|
-
const checkout = await this.checkoutRepository.create({
|
|
46
|
-
createdAt: new Date(),
|
|
47
|
-
...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
|
|
48
|
-
shop: checkoutData?.shop || this.defaultShop,
|
|
49
|
-
});
|
|
50
|
-
cookie.set('checkoutId', checkout.id);
|
|
51
|
-
return checkout;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
57
|
-
type: Injectable
|
|
58
|
-
}], ctorParameters: function () { return [{ type: i1.CouponService }, { type: undefined, decorators: [{
|
|
59
|
-
type: Inject,
|
|
60
|
-
args: ['CheckoutRepository']
|
|
61
|
-
}] }, { type: undefined, decorators: [{
|
|
62
|
-
type: Inject,
|
|
63
|
-
args: ['OrderRepository']
|
|
64
|
-
}] }, { type: undefined, decorators: [{
|
|
65
|
-
type: Inject,
|
|
66
|
-
args: ['UserRepository']
|
|
67
|
-
}] }, { type: i2.Shops, decorators: [{
|
|
68
|
-
type: Inject,
|
|
69
|
-
args: [DEFAULT_SHOP]
|
|
70
|
-
}] }]; } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Checkout, CheckoutTypes, NotFoundError, Shops, isNil, pick, } from '@infrab4a/connect';
|
|
3
|
+
import cookie from 'js-cookie';
|
|
4
|
+
import { from, of, throwError } from 'rxjs';
|
|
5
|
+
import { concatMap } from 'rxjs/operators';
|
|
6
|
+
import { DEFAULT_SHOP } from '../consts';
|
|
7
|
+
import { CouponService } from './coupon.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "./coupon.service";
|
|
10
|
+
import * as i2 from "@infrab4a/connect";
|
|
11
|
+
export class CheckoutService {
|
|
12
|
+
constructor(couponService, checkoutRepository, orderRepository, userRepository, defaultShop) {
|
|
13
|
+
this.couponService = couponService;
|
|
14
|
+
this.checkoutRepository = checkoutRepository;
|
|
15
|
+
this.orderRepository = orderRepository;
|
|
16
|
+
this.userRepository = userRepository;
|
|
17
|
+
this.defaultShop = defaultShop;
|
|
18
|
+
}
|
|
19
|
+
getCheckout(checkoutData) {
|
|
20
|
+
const checkoutId = cookie.get('checkoutId');
|
|
21
|
+
if (!isNil(checkoutId))
|
|
22
|
+
return from(this.checkoutRepository.get({ id: checkoutId }));
|
|
23
|
+
return from(this.createCheckout(checkoutData));
|
|
24
|
+
}
|
|
25
|
+
getUserByCheckout(checkoutId) {
|
|
26
|
+
return from(this.checkoutRepository.get({ id: checkoutId })).pipe(concatMap((checkout) => checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id }))), concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))));
|
|
27
|
+
}
|
|
28
|
+
updateCheckoutLineItems(checkout) {
|
|
29
|
+
return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })));
|
|
30
|
+
}
|
|
31
|
+
updateCheckoutUser(checkout) {
|
|
32
|
+
return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })));
|
|
33
|
+
}
|
|
34
|
+
clearCheckoutFromSession() {
|
|
35
|
+
cookie.remove('checkoutId');
|
|
36
|
+
return of();
|
|
37
|
+
}
|
|
38
|
+
calcDiscount(coupon) {
|
|
39
|
+
return this.getCheckout().pipe(concatMap(async (checkout) => await this.couponService.calcDiscountShopping(coupon, checkout)));
|
|
40
|
+
}
|
|
41
|
+
checkCoupon(nickname, checkoutType) {
|
|
42
|
+
return this.getCheckout().pipe(concatMap((checkout) => this.couponService.checkCoupon(nickname, CheckoutTypes.ECOMMERCE, checkout, null).pipe()));
|
|
43
|
+
}
|
|
44
|
+
async createCheckout(checkoutData) {
|
|
45
|
+
const checkout = await this.checkoutRepository.create({
|
|
46
|
+
createdAt: new Date(),
|
|
47
|
+
...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
|
|
48
|
+
shop: checkoutData?.shop || this.defaultShop,
|
|
49
|
+
});
|
|
50
|
+
cookie.set('checkoutId', checkout.id);
|
|
51
|
+
return checkout;
|
|
52
|
+
}
|
|
53
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: CheckoutService, deps: [{ token: i1.CouponService }, { token: 'CheckoutRepository' }, { token: 'OrderRepository' }, { token: 'UserRepository' }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
54
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: CheckoutService }); }
|
|
55
|
+
}
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: CheckoutService, decorators: [{
|
|
57
|
+
type: Injectable
|
|
58
|
+
}], ctorParameters: function () { return [{ type: i1.CouponService }, { type: undefined, decorators: [{
|
|
59
|
+
type: Inject,
|
|
60
|
+
args: ['CheckoutRepository']
|
|
61
|
+
}] }, { type: undefined, decorators: [{
|
|
62
|
+
type: Inject,
|
|
63
|
+
args: ['OrderRepository']
|
|
64
|
+
}] }, { type: undefined, decorators: [{
|
|
65
|
+
type: Inject,
|
|
66
|
+
args: ['UserRepository']
|
|
67
|
+
}] }, { type: i2.Shops, decorators: [{
|
|
68
|
+
type: Inject,
|
|
69
|
+
args: [DEFAULT_SHOP]
|
|
70
|
+
}] }]; } });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2hlY2tvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQ0wsUUFBUSxFQUVSLGFBQWEsRUFFYixhQUFhLEVBRWIsS0FBSyxFQUdMLEtBQUssRUFDTCxJQUFJLEdBQ0wsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLE1BQU0sTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxFQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRXhDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTs7OztBQUloRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNtQixhQUE0QixFQUNFLGtCQUFzQyxFQUN6QyxlQUFnQyxFQUNqQyxjQUE4QixFQUNsQyxXQUFrQjtRQUp4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNFLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDekMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBTztJQUN4RCxDQUFDO0lBRUosV0FBVyxDQUFDLFlBQW1DO1FBQzdDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7UUFFM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPLElBQUksQ0FB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QUksQ0FBQyxXQUFXO1NBQzdDLENBQUMsQ0FBQTtRQUVGLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUVyQyxPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDOzhHQTlEVSxlQUFlLCtDQUdoQixvQkFBb0IsYUFDcEIsaUJBQWlCLGFBQ2pCLGdCQUFnQixhQUNoQixZQUFZO2tIQU5YLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQUlOLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ3ZCLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgQ2hlY2tvdXQsXHJcbiAgQ2hlY2tvdXRSZXBvc2l0b3J5LFxyXG4gIENoZWNrb3V0VHlwZXMsXHJcbiAgQ291cG9uLFxyXG4gIE5vdEZvdW5kRXJyb3IsXHJcbiAgT3JkZXJSZXBvc2l0b3J5LFxyXG4gIFNob3BzLFxyXG4gIFVzZXIsXHJcbiAgVXNlclJlcG9zaXRvcnksXHJcbiAgaXNOaWwsXHJcbiAgcGljayxcclxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuaW1wb3J0IGNvb2tpZSBmcm9tICdqcy1jb29raWUnXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgY29uY2F0TWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcblxyXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi9jb25zdHMnXHJcblxyXG5pbXBvcnQgeyBDb3Vwb25TZXJ2aWNlIH0gZnJvbSAnLi9jb3Vwb24uc2VydmljZSdcclxuaW1wb3J0IHsgUmVxdWlyZWRDaGVja291dERhdGEgfSBmcm9tICcuL3R5cGVzJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY291cG9uU2VydmljZTogQ291cG9uU2VydmljZSxcclxuICAgIEBJbmplY3QoJ0NoZWNrb3V0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRSZXBvc2l0b3J5OiBDaGVja291dFJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KCdPcmRlclJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IG9yZGVyUmVwb3NpdG9yeTogT3JkZXJSZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdCgnVXNlclJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IHVzZXJSZXBvc2l0b3J5OiBVc2VyUmVwb3NpdG9yeSxcclxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTaG9wOiBTaG9wcyxcclxuICApIHt9XHJcblxyXG4gIGdldENoZWNrb3V0KGNoZWNrb3V0RGF0YT86IFJlcXVpcmVkQ2hlY2tvdXREYXRhKTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xyXG4gICAgY29uc3QgY2hlY2tvdXRJZCA9IGNvb2tpZS5nZXQoJ2NoZWNrb3V0SWQnKVxyXG5cclxuICAgIGlmICghaXNOaWwoY2hlY2tvdXRJZCkpIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LmdldCh7IGlkOiBjaGVja291dElkIH0pKVxyXG5cclxuICAgIHJldHVybiBmcm9tKHRoaXMuY3JlYXRlQ2hlY2tvdXQoY2hlY2tvdXREYXRhKSlcclxuICB9XHJcblxyXG4gIGdldFVzZXJCeUNoZWNrb3V0KGNoZWNrb3V0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlcj4ge1xyXG4gICAgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFJlcG9zaXRvcnkuZ2V0KHsgaWQ6IGNoZWNrb3V0SWQgfSkpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XHJcbiAgICAgICAgY2hlY2tvdXQ/LnVzZXI/LmlkID8gb2YoY2hlY2tvdXQudXNlcikgOiBmcm9tKHRoaXMudXNlclJlcG9zaXRvcnkuZ2V0KHsgaWQ6IGNoZWNrb3V0LnVzZXIuaWQgfSkpLFxyXG4gICAgICApLFxyXG4gICAgICBjb25jYXRNYXAoKHVzZXIpID0+IG9mKHVzZXIpIHx8IHRocm93RXJyb3IoKCkgPT4gbmV3IE5vdEZvdW5kRXJyb3IoJ1VzZXIgaXMgbm90IGZvdW5kJykpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKGNoZWNrb3V0OiBQYXJ0aWFsPENoZWNrb3V0Pik6IE9ic2VydmFibGU8Q2hlY2tvdXQ+IHtcclxuICAgIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LnVwZGF0ZShDaGVja291dC50b0luc3RhbmNlKHsgaWQ6IGNoZWNrb3V0LmlkLCBsaW5lSXRlbXM6IGNoZWNrb3V0LmxpbmVJdGVtcyB9KSkpXHJcbiAgfVxyXG5cclxuICB1cGRhdGVDaGVja291dFVzZXIoY2hlY2tvdXQ6IFBhcnRpYWw8Q2hlY2tvdXQ+KTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xyXG4gICAgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFJlcG9zaXRvcnkudXBkYXRlKENoZWNrb3V0LnRvSW5zdGFuY2UoeyBpZDogY2hlY2tvdXQuaWQsIHVzZXI6IGNoZWNrb3V0LnVzZXIgfSkpKVxyXG4gIH1cclxuXHJcbiAgY2xlYXJDaGVja291dEZyb21TZXNzaW9uKCk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgY29va2llLnJlbW92ZSgnY2hlY2tvdXRJZCcpXHJcblxyXG4gICAgcmV0dXJuIG9mKClcclxuICB9XHJcblxyXG4gIGNhbGNEaXNjb3VudChjb3Vwb246IENvdXBvbikge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoYXN5bmMgKGNoZWNrb3V0KSA9PiBhd2FpdCB0aGlzLmNvdXBvblNlcnZpY2UuY2FsY0Rpc2NvdW50U2hvcHBpbmcoY291cG9uLCBjaGVja291dCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY2hlY2tDb3Vwb24obmlja25hbWU6IHN0cmluZywgY2hlY2tvdXRUeXBlOiBDaGVja291dFR5cGVzKTogT2JzZXJ2YWJsZTxDb3Vwb24+IHtcclxuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jb3Vwb25TZXJ2aWNlLmNoZWNrQ291cG9uKG5pY2tuYW1lLCBDaGVja291dFR5cGVzLkVDT01NRVJDRSwgY2hlY2tvdXQsIG51bGwpLnBpcGUoKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZUNoZWNrb3V0KGNoZWNrb3V0RGF0YT86IFJlcXVpcmVkQ2hlY2tvdXREYXRhKTogUHJvbWlzZTxDaGVja291dD4ge1xyXG4gICAgY29uc3QgY2hlY2tvdXQgPSBhd2FpdCB0aGlzLmNoZWNrb3V0UmVwb3NpdG9yeS5jcmVhdGUoe1xyXG4gICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCksXHJcbiAgICAgIC4uLkNoZWNrb3V0LnRvSW5zdGFuY2UocGljayhjaGVja291dERhdGEsIFsndXNlcicsICdzaG9wJ10pKS50b1BsYWluKCksXHJcbiAgICAgIHNob3A6IGNoZWNrb3V0RGF0YT8uc2hvcCB8fCB0aGlzLmRlZmF1bHRTaG9wLFxyXG4gICAgfSlcclxuXHJcbiAgICBjb29raWUuc2V0KCdjaGVja291dElkJywgY2hlY2tvdXQuaWQpXHJcblxyXG4gICAgcmV0dXJuIGNoZWNrb3V0XHJcbiAgfVxyXG59XHJcbiJdfQ==
|