@infrab4a/connect-angular 4.18.1 → 4.18.3-beta.0
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 +32 -32
- package/angular-elastic-search.module.d.ts +9 -9
- package/angular-firebase-auth.module.d.ts +11 -11
- package/angular-firestore.module.d.ts +17 -17
- package/angular-hasura-graphql.module.d.ts +16 -16
- package/angular-vertex-search.module.d.ts +9 -9
- 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 +4 -4
- package/consts/hasura-options.const.d.ts +1 -1
- package/consts/index.d.ts +8 -8
- package/consts/persistence.const.d.ts +1 -1
- package/consts/storage-base-url.const.d.ts +1 -1
- package/consts/vertex-config.const.d.ts +1 -1
- package/esm2020/angular-connect.module.mjs +187 -187
- package/esm2020/angular-elastic-search.module.mjs +34 -34
- package/esm2020/angular-firebase-auth.module.mjs +141 -141
- package/esm2020/angular-firestore.module.mjs +527 -527
- package/esm2020/angular-hasura-graphql.module.mjs +331 -331
- package/esm2020/angular-vertex-search.module.mjs +34 -34
- package/esm2020/consts/backend-url.const.mjs +1 -1
- package/esm2020/consts/category-structure.mjs +2 -2
- package/esm2020/consts/default-shop.const.mjs +2 -2
- package/esm2020/consts/es-config.const.mjs +2 -2
- package/esm2020/consts/firebase-const.mjs +5 -5
- package/esm2020/consts/hasura-options.const.mjs +2 -2
- package/esm2020/consts/index.mjs +9 -9
- package/esm2020/consts/persistence.const.mjs +2 -2
- package/esm2020/consts/storage-base-url.const.mjs +2 -2
- package/esm2020/consts/vertex-config.const.mjs +2 -2
- package/esm2020/helpers/index.mjs +2 -2
- package/esm2020/helpers/mobile-operation-system-checker.helper.mjs +7 -7
- package/esm2020/index.mjs +7 -7
- package/esm2020/infrab4a-connect-angular.mjs +4 -4
- package/esm2020/persistence/cookie-data-persistence.mjs +22 -22
- package/esm2020/persistence/data-persistence.mjs +2 -2
- package/esm2020/persistence/index.mjs +3 -3
- package/esm2020/services/auth.service.mjs +37 -37
- package/esm2020/services/cart.service.mjs +86 -86
- package/esm2020/services/catalog/adapters/category-structure.adapter.mjs +2 -2
- package/esm2020/services/catalog/adapters/index.mjs +4 -4
- package/esm2020/services/catalog/adapters/new-category-structure.adapter.mjs +43 -43
- package/esm2020/services/catalog/adapters/old-category-structure.adapter.mjs +23 -23
- package/esm2020/services/catalog/catalog.service.mjs +295 -295
- package/esm2020/services/catalog/category.service.mjs +51 -51
- package/esm2020/services/catalog/enums/index.mjs +2 -2
- package/esm2020/services/catalog/enums/product-sorts.enum.mjs +11 -11
- package/esm2020/services/catalog/index.mjs +8 -8
- package/esm2020/services/catalog/models/category-with-tree.model.mjs +10 -10
- package/esm2020/services/catalog/models/index.mjs +2 -2
- package/esm2020/services/catalog/types/index.mjs +2 -2
- package/esm2020/services/catalog/types/product-sort.type.mjs +2 -2
- package/esm2020/services/catalog/wishlist.service.mjs +235 -235
- package/esm2020/services/checkout-subscription.service.mjs +50 -50
- package/esm2020/services/checkout.service.mjs +122 -122
- package/esm2020/services/coupon.service.mjs +228 -228
- package/esm2020/services/helpers/index.mjs +2 -2
- package/esm2020/services/helpers/util.helper.mjs +18 -18
- package/esm2020/services/home-shop.service.mjs +125 -125
- package/esm2020/services/index.mjs +10 -10
- package/esm2020/services/order.service.mjs +30 -30
- package/esm2020/services/types/index.mjs +3 -3
- package/esm2020/services/types/required-checkout-data.type.mjs +2 -2
- package/esm2020/services/types/required-checkout-subscription-data.type.mjs +2 -2
- package/esm2020/types/firebase-app-config.type.mjs +2 -2
- package/esm2020/types/index.mjs +2 -2
- package/fesm2015/infrab4a-connect-angular.mjs +2516 -2516
- package/fesm2015/infrab4a-connect-angular.mjs.map +1 -1
- package/fesm2020/infrab4a-connect-angular.mjs +2467 -2467
- package/fesm2020/infrab4a-connect-angular.mjs.map +1 -1
- package/helpers/index.d.ts +1 -1
- package/helpers/mobile-operation-system-checker.helper.d.ts +3 -3
- package/index.d.ts +6 -6
- package/package.json +2 -2
- package/persistence/cookie-data-persistence.d.ts +10 -10
- package/persistence/data-persistence.d.ts +6 -6
- package/persistence/index.d.ts +2 -2
- package/services/auth.service.d.ts +18 -18
- package/services/cart.service.d.ts +31 -31
- 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 +93 -93
- package/services/catalog/category.service.d.ts +20 -20
- 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 +7 -7
- 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 +50 -50
- package/services/checkout-subscription.service.d.ts +19 -19
- package/services/checkout.service.d.ts +34 -34
- package/services/coupon.service.d.ts +27 -27
- package/services/helpers/index.d.ts +1 -1
- package/services/helpers/util.helper.d.ts +3 -3
- package/services/home-shop.service.d.ts +26 -26
- package/services/index.d.ts +9 -9
- package/services/order.service.d.ts +13 -13
- 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/types/firebase-app-config.type.d.ts +1 -1
- package/types/index.d.ts +1 -1
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { CheckoutSubscription, CheckoutTypes, isNil, pick, } from '@infrab4a/connect';
|
|
3
|
-
import { concatMap } from 'rxjs/operators';
|
|
4
|
-
import { PERSISTENCE_PROVIDER } from '../consts';
|
|
5
|
-
import { CouponService } from './coupon.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./coupon.service";
|
|
8
|
-
export class CheckoutSubscriptionService {
|
|
9
|
-
constructor(checkoutSubscriptionRepository, dataPersistence, couponService) {
|
|
10
|
-
this.checkoutSubscriptionRepository = checkoutSubscriptionRepository;
|
|
11
|
-
this.dataPersistence = dataPersistence;
|
|
12
|
-
this.couponService = couponService;
|
|
13
|
-
}
|
|
14
|
-
getCheckoutSubscription(checkoutData) {
|
|
15
|
-
return this.dataPersistence
|
|
16
|
-
.get('checkoutSubscriptionId')
|
|
17
|
-
.pipe(concatMap((id) => !isNil(id) ? this.checkoutSubscriptionRepository.get({ id }) : this.createCheckoutSubscription(checkoutData)));
|
|
18
|
-
}
|
|
19
|
-
clearCheckoutSubscriptionFromSession() {
|
|
20
|
-
return this.dataPersistence.remove('checkoutSubscriptionId');
|
|
21
|
-
}
|
|
22
|
-
checkCoupon(nickname, userEmail) {
|
|
23
|
-
return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService
|
|
24
|
-
.checkCoupon(nickname, CheckoutTypes.SUBSCRIPTION, checkout, checkout.subscriptionPlan.name)
|
|
25
|
-
.pipe()));
|
|
26
|
-
}
|
|
27
|
-
calcDiscountSubscription(coupon) {
|
|
28
|
-
return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()));
|
|
29
|
-
}
|
|
30
|
-
async createCheckoutSubscription(checkoutData) {
|
|
31
|
-
const checkout = await this.checkoutSubscriptionRepository.create({
|
|
32
|
-
createdAt: new Date(),
|
|
33
|
-
...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
|
|
34
|
-
});
|
|
35
|
-
await this.dataPersistence.set('checkoutSubscriptionId', checkout.id).toPromise();
|
|
36
|
-
return checkout;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
CheckoutSubscriptionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService, deps: [{ token: 'CheckoutSubscriptionRepository' }, { token: PERSISTENCE_PROVIDER }, { token: i1.CouponService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
-
CheckoutSubscriptionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService });
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService, decorators: [{
|
|
42
|
-
type: Injectable
|
|
43
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
44
|
-
type: Inject,
|
|
45
|
-
args: ['CheckoutSubscriptionRepository']
|
|
46
|
-
}] }, { type: undefined, decorators: [{
|
|
47
|
-
type: Inject,
|
|
48
|
-
args: [PERSISTENCE_PROVIDER]
|
|
49
|
-
}] }, { type: i1.CouponService }]; } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { CheckoutSubscription, CheckoutTypes, isNil, pick, } from '@infrab4a/connect';
|
|
3
|
+
import { concatMap } from 'rxjs/operators';
|
|
4
|
+
import { PERSISTENCE_PROVIDER } from '../consts';
|
|
5
|
+
import { CouponService } from './coupon.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "./coupon.service";
|
|
8
|
+
export class CheckoutSubscriptionService {
|
|
9
|
+
constructor(checkoutSubscriptionRepository, dataPersistence, couponService) {
|
|
10
|
+
this.checkoutSubscriptionRepository = checkoutSubscriptionRepository;
|
|
11
|
+
this.dataPersistence = dataPersistence;
|
|
12
|
+
this.couponService = couponService;
|
|
13
|
+
}
|
|
14
|
+
getCheckoutSubscription(checkoutData) {
|
|
15
|
+
return this.dataPersistence
|
|
16
|
+
.get('checkoutSubscriptionId')
|
|
17
|
+
.pipe(concatMap((id) => !isNil(id) ? this.checkoutSubscriptionRepository.get({ id }) : this.createCheckoutSubscription(checkoutData)));
|
|
18
|
+
}
|
|
19
|
+
clearCheckoutSubscriptionFromSession() {
|
|
20
|
+
return this.dataPersistence.remove('checkoutSubscriptionId');
|
|
21
|
+
}
|
|
22
|
+
checkCoupon(nickname, userEmail) {
|
|
23
|
+
return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService
|
|
24
|
+
.checkCoupon(nickname, CheckoutTypes.SUBSCRIPTION, checkout, checkout.subscriptionPlan.name)
|
|
25
|
+
.pipe()));
|
|
26
|
+
}
|
|
27
|
+
calcDiscountSubscription(coupon) {
|
|
28
|
+
return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()));
|
|
29
|
+
}
|
|
30
|
+
async createCheckoutSubscription(checkoutData) {
|
|
31
|
+
const checkout = await this.checkoutSubscriptionRepository.create({
|
|
32
|
+
createdAt: new Date(),
|
|
33
|
+
...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
|
|
34
|
+
});
|
|
35
|
+
await this.dataPersistence.set('checkoutSubscriptionId', checkout.id).toPromise();
|
|
36
|
+
return checkout;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
CheckoutSubscriptionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService, deps: [{ token: 'CheckoutSubscriptionRepository' }, { token: PERSISTENCE_PROVIDER }, { token: i1.CouponService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
+
CheckoutSubscriptionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService, decorators: [{
|
|
42
|
+
type: Injectable
|
|
43
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
44
|
+
type: Inject,
|
|
45
|
+
args: ['CheckoutSubscriptionRepository']
|
|
46
|
+
}] }, { type: undefined, decorators: [{
|
|
47
|
+
type: Inject,
|
|
48
|
+
args: [PERSISTENCE_PROVIDER]
|
|
49
|
+
}] }, { type: i1.CouponService }]; } });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtc3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NoZWNrb3V0LXN1YnNjcmlwdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFDTCxvQkFBb0IsRUFFcEIsYUFBYSxFQUViLEtBQUssRUFDTCxJQUFJLEdBQ0wsTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRWhELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTs7O0FBR2hELE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFFbUIsOEJBQThELEVBQ2hDLGVBQWdDLEVBQzlELGFBQTRCO1FBRjVCLG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFDaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQzlELGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQzVDLENBQUM7SUFFSix1QkFBdUIsQ0FBQyxZQUErQztRQUNyRSxPQUFPLElBQUksQ0FBQyxlQUFlO2FBQ3hCLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQzthQUM3QixJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDZixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLENBQUMsQ0FDN0csQ0FDRixDQUFBO0lBQ0wsQ0FBQztJQUVELG9DQUFvQztRQUNsQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQixFQUFFLFNBQWlCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsSUFBSSxDQUN4QyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUNyQixJQUFJLENBQUMsYUFBYTthQUNmLFdBQVcsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUMzRixJQUFJLEVBQUUsQ0FDVixDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsTUFBYztRQUNyQyxPQUFPLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLElBQUksQ0FDeEMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUM5RixDQUFBO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQywwQkFBMEIsQ0FDdEMsWUFBK0M7UUFFL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFDO1lBQ2hFLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtZQUNyQixHQUFHLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7U0FDbkYsQ0FBQyxDQUFBO1FBRUYsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFakYsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQzs7d0hBakRVLDJCQUEyQixrQkFFNUIsZ0NBQWdDLGFBRWhDLG9CQUFvQjs0SEFKbkIsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsZ0NBQWdDOzswQkFFdkMsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge1xyXG4gIENoZWNrb3V0U3Vic2NyaXB0aW9uLFxyXG4gIENoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeSxcclxuICBDaGVja291dFR5cGVzLFxyXG4gIENvdXBvbixcclxuICBpc05pbCxcclxuICBwaWNrLFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgY29uY2F0TWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IFJlcXVpcmVkQ2hlY2tvdXRTdWJzY3JpcHRpb25EYXRhIH0gZnJvbSAnLi90eXBlcydcclxuXHJcbmltcG9ydCB7IFBFUlNJU1RFTkNFX1BST1ZJREVSIH0gZnJvbSAnLi4vY29uc3RzJ1xyXG5pbXBvcnQgeyBEYXRhUGVyc2lzdGVuY2UgfSBmcm9tICcuLi9wZXJzaXN0ZW5jZSdcclxuaW1wb3J0IHsgQ291cG9uU2VydmljZSB9IGZyb20gJy4vY291cG9uLnNlcnZpY2UnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDaGVja291dFN1YnNjcmlwdGlvblNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdCgnQ2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5JylcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5OiBDaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KFBFUlNJU1RFTkNFX1BST1ZJREVSKSBwcml2YXRlIHJlYWRvbmx5IGRhdGFQZXJzaXN0ZW5jZTogRGF0YVBlcnNpc3RlbmNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3Vwb25TZXJ2aWNlOiBDb3Vwb25TZXJ2aWNlLFxyXG4gICkge31cclxuXHJcbiAgZ2V0Q2hlY2tvdXRTdWJzY3JpcHRpb24oY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dFN1YnNjcmlwdGlvbkRhdGEpOiBPYnNlcnZhYmxlPENoZWNrb3V0U3Vic2NyaXB0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhUGVyc2lzdGVuY2VcclxuICAgICAgLmdldCgnY2hlY2tvdXRTdWJzY3JpcHRpb25JZCcpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGNvbmNhdE1hcCgoaWQpID0+XHJcbiAgICAgICAgICAhaXNOaWwoaWQpID8gdGhpcy5jaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnkuZ2V0KHsgaWQgfSkgOiB0aGlzLmNyZWF0ZUNoZWNrb3V0U3Vic2NyaXB0aW9uKGNoZWNrb3V0RGF0YSksXHJcbiAgICAgICAgKSxcclxuICAgICAgKVxyXG4gIH1cclxuXHJcbiAgY2xlYXJDaGVja291dFN1YnNjcmlwdGlvbkZyb21TZXNzaW9uKCk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVBlcnNpc3RlbmNlLnJlbW92ZSgnY2hlY2tvdXRTdWJzY3JpcHRpb25JZCcpXHJcbiAgfVxyXG5cclxuICBjaGVja0NvdXBvbihuaWNrbmFtZTogc3RyaW5nLCB1c2VyRW1haWw6IHN0cmluZyk6IE9ic2VydmFibGU8Q291cG9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja291dFN1YnNjcmlwdGlvbigpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XHJcbiAgICAgICAgdGhpcy5jb3Vwb25TZXJ2aWNlXHJcbiAgICAgICAgICAuY2hlY2tDb3Vwb24obmlja25hbWUsIENoZWNrb3V0VHlwZXMuU1VCU0NSSVBUSU9OLCBjaGVja291dCwgY2hlY2tvdXQuc3Vic2NyaXB0aW9uUGxhbi5uYW1lKVxyXG4gICAgICAgICAgLnBpcGUoKSxcclxuICAgICAgKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGNhbGNEaXNjb3VudFN1YnNjcmlwdGlvbihjb3Vwb246IENvdXBvbikge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXRTdWJzY3JpcHRpb24oKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmNvdXBvblNlcnZpY2UuY2FsY0Rpc2NvdW50U3Vic2NyaXB0aW9uKGNvdXBvbiwgY2hlY2tvdXQpLnBpcGUoKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZUNoZWNrb3V0U3Vic2NyaXB0aW9uKFxyXG4gICAgY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dFN1YnNjcmlwdGlvbkRhdGEsXHJcbiAgKTogUHJvbWlzZTxDaGVja291dFN1YnNjcmlwdGlvbj4ge1xyXG4gICAgY29uc3QgY2hlY2tvdXQgPSBhd2FpdCB0aGlzLmNoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeS5jcmVhdGUoe1xyXG4gICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCksXHJcbiAgICAgIC4uLkNoZWNrb3V0U3Vic2NyaXB0aW9uLnRvSW5zdGFuY2UocGljayhjaGVja291dERhdGEsIFsndXNlcicsICdzaG9wJ10pKS50b1BsYWluKCksXHJcbiAgICB9KVxyXG5cclxuICAgIGF3YWl0IHRoaXMuZGF0YVBlcnNpc3RlbmNlLnNldCgnY2hlY2tvdXRTdWJzY3JpcHRpb25JZCcsIGNoZWNrb3V0LmlkKS50b1Byb21pc2UoKVxyXG5cclxuICAgIHJldHVybiBjaGVja291dFxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
|
2
|
-
import { Inject, Injectable } from '@angular/core';
|
|
3
|
-
import { Checkout, isNil, NotFoundError, pick, Shops, } from '@infrab4a/connect';
|
|
4
|
-
import { from, of, throwError } from 'rxjs';
|
|
5
|
-
import { concatMap, map } from 'rxjs/operators';
|
|
6
|
-
import { DEFAULT_SHOP, FIREBASE_OPTIONS, PERSISTENCE_PROVIDER } from '../consts';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common/http";
|
|
9
|
-
import * as i2 from "@infrab4a/connect";
|
|
10
|
-
export class CheckoutService {
|
|
11
|
-
constructor(checkoutRepository, userRepository, defaultShop, dataPersistence, firebaseOptions, http) {
|
|
12
|
-
this.checkoutRepository = checkoutRepository;
|
|
13
|
-
this.userRepository = userRepository;
|
|
14
|
-
this.defaultShop = defaultShop;
|
|
15
|
-
this.dataPersistence = dataPersistence;
|
|
16
|
-
this.firebaseOptions = firebaseOptions;
|
|
17
|
-
this.http = http;
|
|
18
|
-
this.checkoutUrl = null;
|
|
19
|
-
this.checkoutUrl = `https://southamerica-east1-${this.firebaseOptions.projectId}.cloudfunctions.net`;
|
|
20
|
-
}
|
|
21
|
-
getCheckout(checkoutData) {
|
|
22
|
-
return this.dataPersistence
|
|
23
|
-
.get('checkoutId')
|
|
24
|
-
.pipe(concatMap((id) => (!isNil(id) ? this.checkoutRepository.get({ id }) : this.createCheckout(checkoutData))));
|
|
25
|
-
}
|
|
26
|
-
getUserByCheckout(checkoutId) {
|
|
27
|
-
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'))));
|
|
28
|
-
}
|
|
29
|
-
updateCheckoutLineItems(checkout) {
|
|
30
|
-
return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })));
|
|
31
|
-
}
|
|
32
|
-
updateCheckoutUser(checkout) {
|
|
33
|
-
return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })));
|
|
34
|
-
}
|
|
35
|
-
clearCheckoutFromSession() {
|
|
36
|
-
return this.dataPersistence.remove('checkoutId');
|
|
37
|
-
}
|
|
38
|
-
resetCheckoutValues() {
|
|
39
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutResetValues`, {
|
|
40
|
-
checkoutId: checkout.id,
|
|
41
|
-
})), concatMap(() => this.getCheckout()));
|
|
42
|
-
}
|
|
43
|
-
applyCouponDiscount(nickname, checkoutType) {
|
|
44
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutApplyDiscount`, {
|
|
45
|
-
checkoutId: checkout.id,
|
|
46
|
-
coupon: nickname,
|
|
47
|
-
checkoutType,
|
|
48
|
-
})), concatMap(() => this.getCheckout()), map((checkout) => checkout.coupon));
|
|
49
|
-
}
|
|
50
|
-
removeCouponDiscount() {
|
|
51
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutRemoveDiscount`, {
|
|
52
|
-
checkoutId: checkout.id,
|
|
53
|
-
})), concatMap(() => this.getCheckout()));
|
|
54
|
-
}
|
|
55
|
-
validateStockProducts() {
|
|
56
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutValidateProductStock`, {
|
|
57
|
-
checkoutId: checkout.id,
|
|
58
|
-
})));
|
|
59
|
-
}
|
|
60
|
-
selectShippingAddress(address) {
|
|
61
|
-
return this.getCheckout().pipe(concatMap((checkout) => {
|
|
62
|
-
return this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, shippingAddress: address, billingAddress: address }));
|
|
63
|
-
}));
|
|
64
|
-
}
|
|
65
|
-
getAvailableShippingForProduct(productShipping) {
|
|
66
|
-
return this.http.post(`${this.checkoutUrl}/checkoutGetAvailableShipping`, {
|
|
67
|
-
checkoutId: null,
|
|
68
|
-
productShipping,
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
getAvailableShippingForCheckout() {
|
|
72
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutGetAvailableShipping`, {
|
|
73
|
-
checkoutId: checkout.id,
|
|
74
|
-
productShipping: null,
|
|
75
|
-
})));
|
|
76
|
-
}
|
|
77
|
-
selectShipping(option) {
|
|
78
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutSelectShipping`, {
|
|
79
|
-
checkoutId: checkout.id,
|
|
80
|
-
shippingOption: option,
|
|
81
|
-
})), concatMap(() => this.getCheckout()));
|
|
82
|
-
}
|
|
83
|
-
createOrder(checkoutPayload, paymentProvider, applicationVersion) {
|
|
84
|
-
return this.http.post(`${this.checkoutUrl}/checkout`, {
|
|
85
|
-
data: {
|
|
86
|
-
...checkoutPayload,
|
|
87
|
-
applicationVersion,
|
|
88
|
-
paymentProvider,
|
|
89
|
-
},
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
async createCheckout(checkoutData) {
|
|
93
|
-
const checkout = await this.checkoutRepository.create({
|
|
94
|
-
createdAt: new Date(),
|
|
95
|
-
...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
|
|
96
|
-
shop: checkoutData?.shop || this.defaultShop,
|
|
97
|
-
});
|
|
98
|
-
await this.dataPersistence.set('checkoutId', checkout.id).toPromise();
|
|
99
|
-
return checkout;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
CheckoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService, deps: [{ token: 'CheckoutRepository' }, { token: 'UserRepository' }, { token: DEFAULT_SHOP }, { token: PERSISTENCE_PROVIDER }, { token: FIREBASE_OPTIONS }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
103
|
-
CheckoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService });
|
|
104
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService, decorators: [{
|
|
105
|
-
type: Injectable
|
|
106
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
107
|
-
type: Inject,
|
|
108
|
-
args: ['CheckoutRepository']
|
|
109
|
-
}] }, { type: undefined, decorators: [{
|
|
110
|
-
type: Inject,
|
|
111
|
-
args: ['UserRepository']
|
|
112
|
-
}] }, { type: i2.Shops, decorators: [{
|
|
113
|
-
type: Inject,
|
|
114
|
-
args: [DEFAULT_SHOP]
|
|
115
|
-
}] }, { type: undefined, decorators: [{
|
|
116
|
-
type: Inject,
|
|
117
|
-
args: [PERSISTENCE_PROVIDER]
|
|
118
|
-
}] }, { type: undefined, decorators: [{
|
|
119
|
-
type: Inject,
|
|
120
|
-
args: [FIREBASE_OPTIONS]
|
|
121
|
-
}] }, { type: i1.HttpClient }]; } });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2hlY2tvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFbEQsT0FBTyxFQUNMLFFBQVEsRUFPUixLQUFLLEVBQ0wsYUFBYSxFQUNiLElBQUksRUFHSixLQUFLLEdBSU4sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFBOzs7O0FBTWhGLE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQ2lELGtCQUFzQyxFQUMxQyxjQUE4QixFQUNsQyxXQUFrQixFQUNWLGVBQWdDLEVBQ3BDLGVBQWdDLEVBQ25FLElBQWdCO1FBTHVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDMUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUFPO1FBQ1Ysb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ3BDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNuRSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBUmxCLGdCQUFXLEdBQVcsSUFBSSxDQUFBO1FBVWhDLElBQUksQ0FBQyxXQUFXLEdBQUcsOEJBQThCLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxxQkFBcUIsQ0FBQTtJQUN0RyxDQUFDO0lB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Q2xCLGVBQWU7YUFDaEI7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRU8sS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFtQztRQUM5RCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7WUFDcEQsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ3JCLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7WUFDdEUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVc7U0FDN0MsQ0FBQyxDQUFBO1FBRUYsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBRXJFLE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7OzRHQTNKVSxlQUFlLGtCQUloQixvQkFBb0IsYUFDcEIsZ0JBQWdCLGFBQ2hCLFlBQVksYUFDWixvQkFBb0IsYUFDcEIsZ0JBQWdCO2dIQVJmLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBS04sTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ3ZCLE1BQU07MkJBQUMsWUFBWTs7MEJBQ25CLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRmlyZWJhc2VPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hcHAnXG5pbXBvcnQge1xuICBDaGVja291dCxcbiAgQ2hlY2tvdXRQYXlsb2FkUmVxdWVzdCxcbiAgQ2hlY2tvdXRSZXBvc2l0b3J5LFxuICBDaGVja291dFJlc3BvbnNlLFxuICBDaGVja291dFN0b2NrVmFsaWRhdGlvbixcbiAgQ2hlY2tvdXRUeXBlcyxcbiAgQ291cG9uLFxuICBpc05pbCxcbiAgTm90Rm91bmRFcnJvcixcbiAgcGljayxcbiAgU2hpcHBpbmdNZXRob2RSZXNwb25zZSxcbiAgU2hpcHBpbmdQcm9kdWN0UmVxdWVzdCxcbiAgU2hvcHMsXG4gIFVzZXIsXG4gIFVzZXJBZGRyZXNzLFxuICBVc2VyUmVwb3NpdG9yeSxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBjb25jYXRNYXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AsIEZJUkVCQVNFX09QVElPTlMsIFBFUlNJU1RFTkNFX1BST1ZJREVSIH0gZnJvbSAnLi4vY29uc3RzJ1xuXG5pbXBvcnQgeyBEYXRhUGVyc2lzdGVuY2UgfSBmcm9tICcuLi9wZXJzaXN0ZW5jZSdcbmltcG9ydCB7IFJlcXVpcmVkQ2hlY2tvdXREYXRhIH0gZnJvbSAnLi90eXBlcydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENoZWNrb3V0U2VydmljZSB7XG4gIHByaXZhdGUgY2hlY2tvdXRVcmw6IHN0cmluZyA9IG51bGxcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdDaGVja291dFJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IGNoZWNrb3V0UmVwb3NpdG9yeTogQ2hlY2tvdXRSZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoJ1VzZXJSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSB1c2VyUmVwb3NpdG9yeTogVXNlclJlcG9zaXRvcnksXG4gICAgQEluamVjdChERUZBVUxUX1NIT1ApIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFNob3A6IFNob3BzLFxuICAgIEBJbmplY3QoUEVSU0lTVEVOQ0VfUFJPVklERVIpIHByaXZhdGUgcmVhZG9ubHkgZGF0YVBlcnNpc3RlbmNlOiBEYXRhUGVyc2lzdGVuY2UsXG4gICAgQEluamVjdChGSVJFQkFTRV9PUFRJT05TKSBwcml2YXRlIHJlYWRvbmx5IGZpcmViYXNlT3B0aW9uczogRmlyZWJhc2VPcHRpb25zLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgKSB7XG4gICAgdGhpcy5jaGVja291dFVybCA9IGBodHRwczovL3NvdXRoYW1lcmljYS1lYXN0MS0ke3RoaXMuZmlyZWJhc2VPcHRpb25zLnByb2plY3RJZH0uY2xvdWRmdW5jdGlvbnMubmV0YFxuICB9XG5cbiAgZ2V0Q2hlY2tvdXQoY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dERhdGEpOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVBlcnNpc3RlbmNlXG4gICAgICAuZ2V0KCdjaGVja291dElkJylcbiAgICAgIC5waXBlKGNvbmNhdE1hcCgoaWQpID0+ICghaXNOaWwoaWQpID8gdGhpcy5jaGVja291dFJlcG9zaXRvcnkuZ2V0KHsgaWQgfSkgOiB0aGlzLmNyZWF0ZUNoZWNrb3V0KGNoZWNrb3V0RGF0YSkpKSlcbiAgfVxuXG4gIGdldFVzZXJCeUNoZWNrb3V0KGNoZWNrb3V0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LmdldCh7IGlkOiBjaGVja291dElkIH0pKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cbiAgICAgICAgY2hlY2tvdXQ/LnVzZXI/LmlkID8gb2YoY2hlY2tvdXQudXNlcikgOiBmcm9tKHRoaXMudXNlclJlcG9zaXRvcnkuZ2V0KHsgaWQ6IGNoZWNrb3V0LnVzZXIuaWQgfSkpLFxuICAgICAgKSxcbiAgICAgIGNvbmNhdE1hcCgodXNlcikgPT4gb2YodXNlcikgfHwgdGhyb3dFcnJvcigoKSA9PiBuZXcgTm90Rm91bmRFcnJvcignVXNlciBpcyBub3QgZm91bmQnKSkpLFxuICAgIClcbiAgfVxuXG4gIHVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKGNoZWNrb3V0OiBQYXJ0aWFsPENoZWNrb3V0Pik6IE9ic2VydmFibGU8Q2hlY2tvdXQ+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmNoZWNrb3V0UmVwb3NpdG9yeS51cGRhdGUoQ2hlY2tvdXQudG9JbnN0YW5jZSh7IGlkOiBjaGVja291dC5pZCwgbGluZUl0ZW1zOiBjaGVja291dC5saW5lSXRlbXMgfSkpKVxuICB9XG5cbiAgdXBkYXRlQ2hlY2tvdXRVc2VyKGNoZWNrb3V0OiBQYXJ0aWFsPENoZWNrb3V0Pik6IE9ic2VydmFibGU8Q2hlY2tvdXQ+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmNoZWNrb3V0UmVwb3NpdG9yeS51cGRhdGUoQ2hlY2tvdXQudG9JbnN0YW5jZSh7IGlkOiBjaGVja291dC5pZCwgdXNlcjogY2hlY2tvdXQudXNlciB9KSkpXG4gIH1cblxuICBjbGVhckNoZWNrb3V0RnJvbVNlc3Npb24oKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVBlcnNpc3RlbmNlLnJlbW92ZSgnY2hlY2tvdXRJZCcpXG4gIH1cblxuICByZXNldENoZWNrb3V0VmFsdWVzKCk6IE9ic2VydmFibGU8Q2hlY2tvdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja291dCgpLnBpcGUoXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PlxuICAgICAgICB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmNoZWNrb3V0VXJsfS9jaGVja291dFJlc2V0VmFsdWVzYCwge1xuICAgICAgICAgIGNoZWNrb3V0SWQ6IGNoZWNrb3V0LmlkLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBjb25jYXRNYXAoKCkgPT4gdGhpcy5nZXRDaGVja291dCgpKSxcbiAgICApXG4gIH1cblxuICBhcHBseUNvdXBvbkRpc2NvdW50KG5pY2tuYW1lOiBzdHJpbmcsIGNoZWNrb3V0VHlwZTogQ2hlY2tvdXRUeXBlcyk6IE9ic2VydmFibGU8Q291cG9uPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cbiAgICAgICAgdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5jaGVja291dFVybH0vY2hlY2tvdXRBcHBseURpc2NvdW50YCwge1xuICAgICAgICAgIGNoZWNrb3V0SWQ6IGNoZWNrb3V0LmlkLFxuICAgICAgICAgIGNvdXBvbjogbmlja25hbWUsXG4gICAgICAgICAgY2hlY2tvdXRUeXBlLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBjb25jYXRNYXAoKCkgPT4gdGhpcy5nZXRDaGVja291dCgpKSxcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IGNoZWNrb3V0LmNvdXBvbiksXG4gICAgKVxuICB9XG5cbiAgcmVtb3ZlQ291cG9uRGlzY291bnQoKTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0KCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XG4gICAgICAgIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0UmVtb3ZlRGlzY291bnRgLCB7XG4gICAgICAgICAgY2hlY2tvdXRJZDogY2hlY2tvdXQuaWQsXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICAgIGNvbmNhdE1hcCgoKSA9PiB0aGlzLmdldENoZWNrb3V0KCkpLFxuICAgIClcbiAgfVxuXG4gIHZhbGlkYXRlU3RvY2tQcm9kdWN0cygpOiBPYnNlcnZhYmxlPENoZWNrb3V0U3RvY2tWYWxpZGF0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8e1xuICAgICAgICAgIHZhbGlkOiBib29sZWFuXG4gICAgICAgICAgb3V0T2ZTdG9jazogc3RyaW5nW11cbiAgICAgICAgICBsaW1pdGVkU3RvY2s6IHN0cmluZ1tdXG4gICAgICAgIH0+KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0VmFsaWRhdGVQcm9kdWN0U3RvY2tgLCB7XG4gICAgICAgICAgY2hlY2tvdXRJZDogY2hlY2tvdXQuaWQsXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICApXG4gIH1cblxuICBzZWxlY3RTaGlwcGluZ0FkZHJlc3MoYWRkcmVzczogVXNlckFkZHJlc3MpOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja291dFJlcG9zaXRvcnkudXBkYXRlKFxuICAgICAgICAgIENoZWNrb3V0LnRvSW5zdGFuY2UoeyBpZDogY2hlY2tvdXQuaWQsIHNoaXBwaW5nQWRkcmVzczogYWRkcmVzcywgYmlsbGluZ0FkZHJlc3M6IGFkZHJlc3MgfSksXG4gICAgICAgIClcbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGdldEF2YWlsYWJsZVNoaXBwaW5nRm9yUHJvZHVjdChwcm9kdWN0U2hpcHBpbmc6IFNoaXBwaW5nUHJvZHVjdFJlcXVlc3QpOiBPYnNlcnZhYmxlPFNoaXBwaW5nTWV0aG9kUmVzcG9uc2VbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxTaGlwcGluZ01ldGhvZFJlc3BvbnNlW10+KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0R2V0QXZhaWxhYmxlU2hpcHBpbmdgLCB7XG4gICAgICBjaGVja291dElkOiBudWxsLFxuICAgICAgcHJvZHVjdFNoaXBwaW5nLFxuICAgIH0pXG4gIH1cblxuICBnZXRBdmFpbGFibGVTaGlwcGluZ0ZvckNoZWNrb3V0KCk6IE9ic2VydmFibGU8U2hpcHBpbmdNZXRob2RSZXNwb25zZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8U2hpcHBpbmdNZXRob2RSZXNwb25zZVtdPihgJHt0aGlzLmNoZWNrb3V0VXJsfS9jaGVja291dEdldEF2YWlsYWJsZVNoaXBwaW5nYCwge1xuICAgICAgICAgIGNoZWNrb3V0SWQ6IGNoZWNrb3V0LmlkLFxuICAgICAgICAgIHByb2R1Y3RTaGlwcGluZzogbnVsbCxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgIClcbiAgfVxuXG4gIHNlbGVjdFNoaXBwaW5nKG9wdGlvbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0KCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XG4gICAgICAgIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0U2VsZWN0U2hpcHBpbmdgLCB7XG4gICAgICAgICAgY2hlY2tvdXRJZDogY2hlY2tvdXQuaWQsXG4gICAgICAgICAgc2hpcHBpbmdPcHRpb246IG9wdGlvbixcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICAgY29uY2F0TWFwKCgpID0+IHRoaXMuZ2V0Q2hlY2tvdXQoKSksXG4gICAgKVxuICB9XG5cbiAgY3JlYXRlT3JkZXIoXG4gICAgY2hlY2tvdXRQYXlsb2FkOiBDaGVja291dFBheWxvYWRSZXF1ZXN0LFxuICAgIHBheW1lbnRQcm92aWRlcjogc3RyaW5nLFxuICAgIGFwcGxpY2F0aW9uVmVyc2lvbjogc3RyaW5nLFxuICApOiBPYnNlcnZhYmxlPENoZWNrb3V0UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q2hlY2tvdXRSZXNwb25zZT4oYCR7dGhpcy5jaGVja291dFVybH0vY2hlY2tvdXRgLCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLmNoZWNrb3V0UGF5bG9hZCxcbiAgICAgICAgYXBwbGljYXRpb25WZXJzaW9uLFxuICAgICAgICBwYXltZW50UHJvdmlkZXIsXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZUNoZWNrb3V0KGNoZWNrb3V0RGF0YT86IFJlcXVpcmVkQ2hlY2tvdXREYXRhKTogUHJvbWlzZTxDaGVja291dD4ge1xuICAgIGNvbnN0IGNoZWNrb3V0ID0gYXdhaXQgdGhpcy5jaGVja291dFJlcG9zaXRvcnkuY3JlYXRlKHtcbiAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgIC4uLkNoZWNrb3V0LnRvSW5zdGFuY2UocGljayhjaGVja291dERhdGEsIFsndXNlcicsICdzaG9wJ10pKS50b1BsYWluKCksXG4gICAgICBzaG9wOiBjaGVja291dERhdGE/LnNob3AgfHwgdGhpcy5kZWZhdWx0U2hvcCxcbiAgICB9KVxuXG4gICAgYXdhaXQgdGhpcy5kYXRhUGVyc2lzdGVuY2Uuc2V0KCdjaGVja291dElkJywgY2hlY2tvdXQuaWQpLnRvUHJvbWlzZSgpXG5cbiAgICByZXR1cm4gY2hlY2tvdXRcbiAgfVxufVxuIl19
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { Inject, Injectable } from '@angular/core';
|
|
3
|
+
import { Checkout, isNil, NotFoundError, pick, Shops, } from '@infrab4a/connect';
|
|
4
|
+
import { from, of, throwError } from 'rxjs';
|
|
5
|
+
import { concatMap, map } from 'rxjs/operators';
|
|
6
|
+
import { DEFAULT_SHOP, FIREBASE_OPTIONS, PERSISTENCE_PROVIDER } from '../consts';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common/http";
|
|
9
|
+
import * as i2 from "@infrab4a/connect";
|
|
10
|
+
export class CheckoutService {
|
|
11
|
+
constructor(checkoutRepository, userRepository, defaultShop, dataPersistence, firebaseOptions, http) {
|
|
12
|
+
this.checkoutRepository = checkoutRepository;
|
|
13
|
+
this.userRepository = userRepository;
|
|
14
|
+
this.defaultShop = defaultShop;
|
|
15
|
+
this.dataPersistence = dataPersistence;
|
|
16
|
+
this.firebaseOptions = firebaseOptions;
|
|
17
|
+
this.http = http;
|
|
18
|
+
this.checkoutUrl = null;
|
|
19
|
+
this.checkoutUrl = `https://southamerica-east1-${this.firebaseOptions.projectId}.cloudfunctions.net`;
|
|
20
|
+
}
|
|
21
|
+
getCheckout(checkoutData) {
|
|
22
|
+
return this.dataPersistence
|
|
23
|
+
.get('checkoutId')
|
|
24
|
+
.pipe(concatMap((id) => (!isNil(id) ? this.checkoutRepository.get({ id }) : this.createCheckout(checkoutData))));
|
|
25
|
+
}
|
|
26
|
+
getUserByCheckout(checkoutId) {
|
|
27
|
+
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'))));
|
|
28
|
+
}
|
|
29
|
+
updateCheckoutLineItems(checkout) {
|
|
30
|
+
return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })));
|
|
31
|
+
}
|
|
32
|
+
updateCheckoutUser(checkout) {
|
|
33
|
+
return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })));
|
|
34
|
+
}
|
|
35
|
+
clearCheckoutFromSession() {
|
|
36
|
+
return this.dataPersistence.remove('checkoutId');
|
|
37
|
+
}
|
|
38
|
+
resetCheckoutValues() {
|
|
39
|
+
return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutResetValues`, {
|
|
40
|
+
checkoutId: checkout.id,
|
|
41
|
+
})), concatMap(() => this.getCheckout()));
|
|
42
|
+
}
|
|
43
|
+
applyCouponDiscount(nickname, checkoutType) {
|
|
44
|
+
return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutApplyDiscount`, {
|
|
45
|
+
checkoutId: checkout.id,
|
|
46
|
+
coupon: nickname,
|
|
47
|
+
checkoutType,
|
|
48
|
+
})), concatMap(() => this.getCheckout()), map((checkout) => checkout.coupon));
|
|
49
|
+
}
|
|
50
|
+
removeCouponDiscount() {
|
|
51
|
+
return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutRemoveDiscount`, {
|
|
52
|
+
checkoutId: checkout.id,
|
|
53
|
+
})), concatMap(() => this.getCheckout()));
|
|
54
|
+
}
|
|
55
|
+
validateStockProducts() {
|
|
56
|
+
return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutValidateProductStock`, {
|
|
57
|
+
checkoutId: checkout.id,
|
|
58
|
+
})));
|
|
59
|
+
}
|
|
60
|
+
selectShippingAddress(address) {
|
|
61
|
+
return this.getCheckout().pipe(concatMap((checkout) => {
|
|
62
|
+
return this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, shippingAddress: address, billingAddress: address }));
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
getAvailableShippingForProduct(productShipping) {
|
|
66
|
+
return this.http.post(`${this.checkoutUrl}/checkoutGetAvailableShipping`, {
|
|
67
|
+
checkoutId: null,
|
|
68
|
+
productShipping,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
getAvailableShippingForCheckout() {
|
|
72
|
+
return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutGetAvailableShipping`, {
|
|
73
|
+
checkoutId: checkout.id,
|
|
74
|
+
productShipping: null,
|
|
75
|
+
})));
|
|
76
|
+
}
|
|
77
|
+
selectShipping(option) {
|
|
78
|
+
return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutSelectShipping`, {
|
|
79
|
+
checkoutId: checkout.id,
|
|
80
|
+
shippingOption: option,
|
|
81
|
+
})), concatMap(() => this.getCheckout()));
|
|
82
|
+
}
|
|
83
|
+
createOrder(checkoutPayload, paymentProvider, applicationVersion) {
|
|
84
|
+
return this.http.post(`${this.checkoutUrl}/checkout`, {
|
|
85
|
+
data: {
|
|
86
|
+
...checkoutPayload,
|
|
87
|
+
applicationVersion,
|
|
88
|
+
paymentProvider,
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
async createCheckout(checkoutData) {
|
|
93
|
+
const checkout = await this.checkoutRepository.create({
|
|
94
|
+
createdAt: new Date(),
|
|
95
|
+
...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
|
|
96
|
+
shop: checkoutData?.shop || this.defaultShop,
|
|
97
|
+
});
|
|
98
|
+
await this.dataPersistence.set('checkoutId', checkout.id).toPromise();
|
|
99
|
+
return checkout;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
CheckoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService, deps: [{ token: 'CheckoutRepository' }, { token: 'UserRepository' }, { token: DEFAULT_SHOP }, { token: PERSISTENCE_PROVIDER }, { token: FIREBASE_OPTIONS }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
103
|
+
CheckoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService });
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService, decorators: [{
|
|
105
|
+
type: Injectable
|
|
106
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
107
|
+
type: Inject,
|
|
108
|
+
args: ['CheckoutRepository']
|
|
109
|
+
}] }, { type: undefined, decorators: [{
|
|
110
|
+
type: Inject,
|
|
111
|
+
args: ['UserRepository']
|
|
112
|
+
}] }, { type: i2.Shops, decorators: [{
|
|
113
|
+
type: Inject,
|
|
114
|
+
args: [DEFAULT_SHOP]
|
|
115
|
+
}] }, { type: undefined, decorators: [{
|
|
116
|
+
type: Inject,
|
|
117
|
+
args: [PERSISTENCE_PROVIDER]
|
|
118
|
+
}] }, { type: undefined, decorators: [{
|
|
119
|
+
type: Inject,
|
|
120
|
+
args: [FIREBASE_OPTIONS]
|
|
121
|
+
}] }, { type: i1.HttpClient }]; } });
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2hlY2tvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFbEQsT0FBTyxFQUNMLFFBQVEsRUFPUixLQUFLLEVBQ0wsYUFBYSxFQUNiLElBQUksRUFHSixLQUFLLEdBSU4sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFBOzs7O0FBTWhGLE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQ2lELGtCQUFzQyxFQUMxQyxjQUE4QixFQUNsQyxXQUFrQixFQUNWLGVBQWdDLEVBQ3BDLGVBQWdDLEVBQ25FLElBQWdCO1FBTHVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDMUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUFPO1FBQ1Ysb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ3BDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNuRSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBUmxCLGdCQUFXLEdBQVcsSUFBSSxDQUFBO1FBVWhDLElBQUksQ0FBQyxXQUFXLEdBQUcsOEJBQThCLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxxQkFBcUIsQ0FBQTtJQUN0RyxDQUFDO0lB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Q2xCLGVBQWU7YUFDaEI7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRU8sS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFtQztRQUM5RCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7WUFDcEQsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ3JCLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7WUFDdEUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVc7U0FDN0MsQ0FBQyxDQUFBO1FBRUYsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBRXJFLE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7OzRHQTNKVSxlQUFlLGtCQUloQixvQkFBb0IsYUFDcEIsZ0JBQWdCLGFBQ2hCLFlBQVksYUFDWixvQkFBb0IsYUFDcEIsZ0JBQWdCO2dIQVJmLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBS04sTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ3ZCLE1BQU07MkJBQUMsWUFBWTs7MEJBQ25CLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEZpcmViYXNlT3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwJ1xyXG5pbXBvcnQge1xyXG4gIENoZWNrb3V0LFxyXG4gIENoZWNrb3V0UGF5bG9hZFJlcXVlc3QsXHJcbiAgQ2hlY2tvdXRSZXBvc2l0b3J5LFxyXG4gIENoZWNrb3V0UmVzcG9uc2UsXHJcbiAgQ2hlY2tvdXRTdG9ja1ZhbGlkYXRpb24sXHJcbiAgQ2hlY2tvdXRUeXBlcyxcclxuICBDb3Vwb24sXHJcbiAgaXNOaWwsXHJcbiAgTm90Rm91bmRFcnJvcixcclxuICBwaWNrLFxyXG4gIFNoaXBwaW5nTWV0aG9kUmVzcG9uc2UsXHJcbiAgU2hpcHBpbmdQcm9kdWN0UmVxdWVzdCxcclxuICBTaG9wcyxcclxuICBVc2VyLFxyXG4gIFVzZXJBZGRyZXNzLFxyXG4gIFVzZXJSZXBvc2l0b3J5LFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGNvbmNhdE1hcCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcblxyXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AsIEZJUkVCQVNFX09QVElPTlMsIFBFUlNJU1RFTkNFX1BST1ZJREVSIH0gZnJvbSAnLi4vY29uc3RzJ1xyXG5cclxuaW1wb3J0IHsgRGF0YVBlcnNpc3RlbmNlIH0gZnJvbSAnLi4vcGVyc2lzdGVuY2UnXHJcbmltcG9ydCB7IFJlcXVpcmVkQ2hlY2tvdXREYXRhIH0gZnJvbSAnLi90eXBlcydcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENoZWNrb3V0U2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjaGVja291dFVybDogc3RyaW5nID0gbnVsbFxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoJ0NoZWNrb3V0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRSZXBvc2l0b3J5OiBDaGVja291dFJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KCdVc2VyUmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgdXNlclJlcG9zaXRvcnk6IFVzZXJSZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdChERUZBVUxUX1NIT1ApIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFNob3A6IFNob3BzLFxyXG4gICAgQEluamVjdChQRVJTSVNURU5DRV9QUk9WSURFUikgcHJpdmF0ZSByZWFkb25seSBkYXRhUGVyc2lzdGVuY2U6IERhdGFQZXJzaXN0ZW5jZSxcclxuICAgIEBJbmplY3QoRklSRUJBU0VfT1BUSU9OUykgcHJpdmF0ZSByZWFkb25seSBmaXJlYmFzZU9wdGlvbnM6IEZpcmViYXNlT3B0aW9ucyxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICApIHtcclxuICAgIHRoaXMuY2hlY2tvdXRVcmwgPSBgaHR0cHM6Ly9zb3V0aGFtZXJpY2EtZWFzdDEtJHt0aGlzLmZpcmViYXNlT3B0aW9ucy5wcm9qZWN0SWR9LmNsb3VkZnVuY3Rpb25zLm5ldGBcclxuICB9XHJcblxyXG4gIGdldENoZWNrb3V0KGNoZWNrb3V0RGF0YT86IFJlcXVpcmVkQ2hlY2tvdXREYXRhKTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVBlcnNpc3RlbmNlXHJcbiAgICAgIC5nZXQoJ2NoZWNrb3V0SWQnKVxyXG4gICAgICAucGlwZShjb25jYXRNYXAoKGlkKSA9PiAoIWlzTmlsKGlkKSA/IHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LmdldCh7IGlkIH0pIDogdGhpcy5jcmVhdGVDaGVja291dChjaGVja291dERhdGEpKSkpXHJcbiAgfVxyXG5cclxuICBnZXRVc2VyQnlDaGVja291dChjaGVja291dElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXI+IHtcclxuICAgIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LmdldCh7IGlkOiBjaGVja291dElkIH0pKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PlxyXG4gICAgICAgIGNoZWNrb3V0Py51c2VyPy5pZCA/IG9mKGNoZWNrb3V0LnVzZXIpIDogZnJvbSh0aGlzLnVzZXJSZXBvc2l0b3J5LmdldCh7IGlkOiBjaGVja291dC51c2VyLmlkIH0pKSxcclxuICAgICAgKSxcclxuICAgICAgY29uY2F0TWFwKCh1c2VyKSA9PiBvZih1c2VyKSB8fCB0aHJvd0Vycm9yKCgpID0+IG5ldyBOb3RGb3VuZEVycm9yKCdVc2VyIGlzIG5vdCBmb3VuZCcpKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICB1cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dDogUGFydGlhbDxDaGVja291dD4pOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLmNoZWNrb3V0UmVwb3NpdG9yeS51cGRhdGUoQ2hlY2tvdXQudG9JbnN0YW5jZSh7IGlkOiBjaGVja291dC5pZCwgbGluZUl0ZW1zOiBjaGVja291dC5saW5lSXRlbXMgfSkpKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ2hlY2tvdXRVc2VyKGNoZWNrb3V0OiBQYXJ0aWFsPENoZWNrb3V0Pik6IE9ic2VydmFibGU8Q2hlY2tvdXQ+IHtcclxuICAgIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LnVwZGF0ZShDaGVja291dC50b0luc3RhbmNlKHsgaWQ6IGNoZWNrb3V0LmlkLCB1c2VyOiBjaGVja291dC51c2VyIH0pKSlcclxuICB9XHJcblxyXG4gIGNsZWFyQ2hlY2tvdXRGcm9tU2Vzc2lvbigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFQZXJzaXN0ZW5jZS5yZW1vdmUoJ2NoZWNrb3V0SWQnKVxyXG4gIH1cclxuXHJcbiAgcmVzZXRDaGVja291dFZhbHVlcygpOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XHJcbiAgICAgICAgdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5jaGVja291dFVybH0vY2hlY2tvdXRSZXNldFZhbHVlc2AsIHtcclxuICAgICAgICAgIGNoZWNrb3V0SWQ6IGNoZWNrb3V0LmlkLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICApLFxyXG4gICAgICBjb25jYXRNYXAoKCkgPT4gdGhpcy5nZXRDaGVja291dCgpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGFwcGx5Q291cG9uRGlzY291bnQobmlja25hbWU6IHN0cmluZywgY2hlY2tvdXRUeXBlOiBDaGVja291dFR5cGVzKTogT2JzZXJ2YWJsZTxDb3Vwb24+IHtcclxuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cclxuICAgICAgICB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmNoZWNrb3V0VXJsfS9jaGVja291dEFwcGx5RGlzY291bnRgLCB7XHJcbiAgICAgICAgICBjaGVja291dElkOiBjaGVja291dC5pZCxcclxuICAgICAgICAgIGNvdXBvbjogbmlja25hbWUsXHJcbiAgICAgICAgICBjaGVja291dFR5cGUsXHJcbiAgICAgICAgfSksXHJcbiAgICAgICksXHJcbiAgICAgIGNvbmNhdE1hcCgoKSA9PiB0aGlzLmdldENoZWNrb3V0KCkpLFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiBjaGVja291dC5jb3Vwb24pLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ291cG9uRGlzY291bnQoKTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PlxyXG4gICAgICAgIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0UmVtb3ZlRGlzY291bnRgLCB7XHJcbiAgICAgICAgICBjaGVja291dElkOiBjaGVja291dC5pZCxcclxuICAgICAgICB9KSxcclxuICAgICAgKSxcclxuICAgICAgY29uY2F0TWFwKCgpID0+IHRoaXMuZ2V0Q2hlY2tvdXQoKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVN0b2NrUHJvZHVjdHMoKTogT2JzZXJ2YWJsZTxDaGVja291dFN0b2NrVmFsaWRhdGlvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PlxyXG4gICAgICAgIHRoaXMuaHR0cC5wb3N0PHtcclxuICAgICAgICAgIHZhbGlkOiBib29sZWFuXHJcbiAgICAgICAgICBvdXRPZlN0b2NrOiBzdHJpbmdbXVxyXG4gICAgICAgICAgbGltaXRlZFN0b2NrOiBzdHJpbmdbXVxyXG4gICAgICAgIH0+KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0VmFsaWRhdGVQcm9kdWN0U3RvY2tgLCB7XHJcbiAgICAgICAgICBjaGVja291dElkOiBjaGVja291dC5pZCxcclxuICAgICAgICB9KSxcclxuICAgICAgKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHNlbGVjdFNoaXBwaW5nQWRkcmVzcyhhZGRyZXNzOiBVc2VyQWRkcmVzcyk6IE9ic2VydmFibGU8Q2hlY2tvdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrb3V0UmVwb3NpdG9yeS51cGRhdGUoXHJcbiAgICAgICAgICBDaGVja291dC50b0luc3RhbmNlKHsgaWQ6IGNoZWNrb3V0LmlkLCBzaGlwcGluZ0FkZHJlc3M6IGFkZHJlc3MsIGJpbGxpbmdBZGRyZXNzOiBhZGRyZXNzIH0pLFxyXG4gICAgICAgIClcclxuICAgICAgfSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBnZXRBdmFpbGFibGVTaGlwcGluZ0ZvclByb2R1Y3QocHJvZHVjdFNoaXBwaW5nOiBTaGlwcGluZ1Byb2R1Y3RSZXF1ZXN0KTogT2JzZXJ2YWJsZTxTaGlwcGluZ01ldGhvZFJlc3BvbnNlW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxTaGlwcGluZ01ldGhvZFJlc3BvbnNlW10+KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0R2V0QXZhaWxhYmxlU2hpcHBpbmdgLCB7XHJcbiAgICAgIGNoZWNrb3V0SWQ6IG51bGwsXHJcbiAgICAgIHByb2R1Y3RTaGlwcGluZyxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRBdmFpbGFibGVTaGlwcGluZ0ZvckNoZWNrb3V0KCk6IE9ic2VydmFibGU8U2hpcHBpbmdNZXRob2RSZXNwb25zZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XHJcbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8U2hpcHBpbmdNZXRob2RSZXNwb25zZVtdPihgJHt0aGlzLmNoZWNrb3V0VXJsfS9jaGVja291dEdldEF2YWlsYWJsZVNoaXBwaW5nYCwge1xyXG4gICAgICAgICAgY2hlY2tvdXRJZDogY2hlY2tvdXQuaWQsXHJcbiAgICAgICAgICBwcm9kdWN0U2hpcHBpbmc6IG51bGwsXHJcbiAgICAgICAgfSksXHJcbiAgICAgICksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBzZWxlY3RTaGlwcGluZyhvcHRpb246IHN0cmluZyk6IE9ic2VydmFibGU8Q2hlY2tvdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cclxuICAgICAgICB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmNoZWNrb3V0VXJsfS9jaGVja291dFNlbGVjdFNoaXBwaW5nYCwge1xyXG4gICAgICAgICAgY2hlY2tvdXRJZDogY2hlY2tvdXQuaWQsXHJcbiAgICAgICAgICBzaGlwcGluZ09wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICApLFxyXG4gICAgICBjb25jYXRNYXAoKCkgPT4gdGhpcy5nZXRDaGVja291dCgpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGNyZWF0ZU9yZGVyKFxyXG4gICAgY2hlY2tvdXRQYXlsb2FkOiBDaGVja291dFBheWxvYWRSZXF1ZXN0LFxyXG4gICAgcGF5bWVudFByb3ZpZGVyOiBzdHJpbmcsXHJcbiAgICBhcHBsaWNhdGlvblZlcnNpb246IHN0cmluZyxcclxuICApOiBPYnNlcnZhYmxlPENoZWNrb3V0UmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDaGVja291dFJlc3BvbnNlPihgJHt0aGlzLmNoZWNrb3V0VXJsfS9jaGVja291dGAsIHtcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIC4uLmNoZWNrb3V0UGF5bG9hZCxcclxuICAgICAgICBhcHBsaWNhdGlvblZlcnNpb24sXHJcbiAgICAgICAgcGF5bWVudFByb3ZpZGVyLFxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlQ2hlY2tvdXQoY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dERhdGEpOiBQcm9taXNlPENoZWNrb3V0PiB7XHJcbiAgICBjb25zdCBjaGVja291dCA9IGF3YWl0IHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LmNyZWF0ZSh7XHJcbiAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKSxcclxuICAgICAgLi4uQ2hlY2tvdXQudG9JbnN0YW5jZShwaWNrKGNoZWNrb3V0RGF0YSwgWyd1c2VyJywgJ3Nob3AnXSkpLnRvUGxhaW4oKSxcclxuICAgICAgc2hvcDogY2hlY2tvdXREYXRhPy5zaG9wIHx8IHRoaXMuZGVmYXVsdFNob3AsXHJcbiAgICB9KVxyXG5cclxuICAgIGF3YWl0IHRoaXMuZGF0YVBlcnNpc3RlbmNlLnNldCgnY2hlY2tvdXRJZCcsIGNoZWNrb3V0LmlkKS50b1Byb21pc2UoKVxyXG5cclxuICAgIHJldHVybiBjaGVja291dFxyXG4gIH1cclxufVxyXG4iXX0=
|