@23blocks/angular 1.0.3 → 1.1.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/dist/lib/assets/assets.service.js +43 -30
- package/dist/lib/assets/assets.service.js.map +1 -1
- package/dist/lib/authentication/authentication.service.js +49 -32
- package/dist/lib/authentication/authentication.service.js.map +1 -1
- package/dist/lib/campaigns/campaigns.service.js +51 -38
- package/dist/lib/campaigns/campaigns.service.js.map +1 -1
- package/dist/lib/company/company.service.js +50 -37
- package/dist/lib/company/company.service.js.map +1 -1
- package/dist/lib/content/content.service.js +52 -39
- package/dist/lib/content/content.service.js.map +1 -1
- package/dist/lib/conversations/conversations.service.js +59 -46
- package/dist/lib/conversations/conversations.service.js.map +1 -1
- package/dist/lib/crm/crm.service.js +69 -56
- package/dist/lib/crm/crm.service.js.map +1 -1
- package/dist/lib/files/files.service.js +42 -29
- package/dist/lib/files/files.service.js.map +1 -1
- package/dist/lib/forms/forms.service.js +45 -32
- package/dist/lib/forms/forms.service.js.map +1 -1
- package/dist/lib/geolocation/geolocation.service.js +78 -65
- package/dist/lib/geolocation/geolocation.service.js.map +1 -1
- package/dist/lib/index.js +4 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/jarvis/jarvis.service.js +54 -41
- package/dist/lib/jarvis/jarvis.service.js.map +1 -1
- package/dist/lib/onboarding/onboarding.service.js +45 -32
- package/dist/lib/onboarding/onboarding.service.js.map +1 -1
- package/dist/lib/products/products.service.js +80 -67
- package/dist/lib/products/products.service.js.map +1 -1
- package/dist/lib/rewards/rewards.service.js +47 -34
- package/dist/lib/rewards/rewards.service.js.map +1 -1
- package/dist/lib/sales/sales.service.js +47 -34
- package/dist/lib/sales/sales.service.js.map +1 -1
- package/dist/lib/search/search.service.js +31 -18
- package/dist/lib/search/search.service.js.map +1 -1
- package/dist/lib/simple-providers.js +96 -15
- package/dist/lib/simple-providers.js.map +1 -1
- package/dist/lib/tokens.js +26 -1
- package/dist/lib/tokens.js.map +1 -1
- package/dist/lib/university/university.service.js +58 -45
- package/dist/lib/university/university.service.js.map +1 -1
- package/dist/lib/wallet/wallet.service.js +39 -26
- package/dist/lib/wallet/wallet.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,100 +1,108 @@
|
|
|
1
1
|
import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
|
|
2
2
|
import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
|
|
3
3
|
import { _ as _ts_param } from "@swc/helpers/_/_ts_param";
|
|
4
|
-
import { Injectable, Inject } from '@angular/core';
|
|
4
|
+
import { Injectable, Inject, Optional } from '@angular/core';
|
|
5
5
|
import { from } from 'rxjs';
|
|
6
6
|
import { createRewardsBlock } from '@23blocks/block-rewards';
|
|
7
|
-
import { TRANSPORT, REWARDS_CONFIG } from '../tokens.js';
|
|
7
|
+
import { TRANSPORT, REWARDS_TRANSPORT, REWARDS_CONFIG } from '../tokens.js';
|
|
8
8
|
export class RewardsService {
|
|
9
|
+
/**
|
|
10
|
+
* Ensure the service is configured, throw helpful error if not
|
|
11
|
+
*/ ensureConfigured() {
|
|
12
|
+
if (!this.block) {
|
|
13
|
+
throw new Error('[23blocks] RewardsService is not configured. ' + "Add 'urls.rewards' to your provideBlocks23() configuration.");
|
|
14
|
+
}
|
|
15
|
+
return this.block;
|
|
16
|
+
}
|
|
9
17
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
10
18
|
// Rewards Service
|
|
11
19
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
12
20
|
listRewards(params) {
|
|
13
|
-
return from(this.
|
|
21
|
+
return from(this.ensureConfigured().rewards.list(params));
|
|
14
22
|
}
|
|
15
23
|
getReward(uniqueId) {
|
|
16
|
-
return from(this.
|
|
24
|
+
return from(this.ensureConfigured().rewards.get(uniqueId));
|
|
17
25
|
}
|
|
18
26
|
createReward(data) {
|
|
19
|
-
return from(this.
|
|
27
|
+
return from(this.ensureConfigured().rewards.create(data));
|
|
20
28
|
}
|
|
21
29
|
updateReward(uniqueId, data) {
|
|
22
|
-
return from(this.
|
|
30
|
+
return from(this.ensureConfigured().rewards.update(uniqueId, data));
|
|
23
31
|
}
|
|
24
32
|
deleteReward(uniqueId) {
|
|
25
|
-
return from(this.
|
|
33
|
+
return from(this.ensureConfigured().rewards.delete(uniqueId));
|
|
26
34
|
}
|
|
27
35
|
redeemReward(data) {
|
|
28
|
-
return from(this.
|
|
36
|
+
return from(this.ensureConfigured().rewards.redeem(data));
|
|
29
37
|
}
|
|
30
38
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
31
39
|
// Coupons Service
|
|
32
40
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
33
41
|
listCoupons(params) {
|
|
34
|
-
return from(this.
|
|
42
|
+
return from(this.ensureConfigured().coupons.list(params));
|
|
35
43
|
}
|
|
36
44
|
getCoupon(uniqueId) {
|
|
37
|
-
return from(this.
|
|
45
|
+
return from(this.ensureConfigured().coupons.get(uniqueId));
|
|
38
46
|
}
|
|
39
47
|
getCouponByCode(code) {
|
|
40
|
-
return from(this.
|
|
48
|
+
return from(this.ensureConfigured().coupons.getByCode(code));
|
|
41
49
|
}
|
|
42
50
|
createCoupon(data) {
|
|
43
|
-
return from(this.
|
|
51
|
+
return from(this.ensureConfigured().coupons.create(data));
|
|
44
52
|
}
|
|
45
53
|
updateCoupon(uniqueId, data) {
|
|
46
|
-
return from(this.
|
|
54
|
+
return from(this.ensureConfigured().coupons.update(uniqueId, data));
|
|
47
55
|
}
|
|
48
56
|
deleteCoupon(uniqueId) {
|
|
49
|
-
return from(this.
|
|
57
|
+
return from(this.ensureConfigured().coupons.delete(uniqueId));
|
|
50
58
|
}
|
|
51
59
|
validateCoupon(data) {
|
|
52
|
-
return from(this.
|
|
60
|
+
return from(this.ensureConfigured().coupons.validate(data));
|
|
53
61
|
}
|
|
54
62
|
applyCoupon(data) {
|
|
55
|
-
return from(this.
|
|
63
|
+
return from(this.ensureConfigured().coupons.apply(data));
|
|
56
64
|
}
|
|
57
65
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
58
66
|
// Loyalty Service
|
|
59
67
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
60
68
|
getLoyalty(uniqueId) {
|
|
61
|
-
return from(this.
|
|
69
|
+
return from(this.ensureConfigured().loyalty.get(uniqueId));
|
|
62
70
|
}
|
|
63
71
|
getLoyaltyByUser(userUniqueId) {
|
|
64
|
-
return from(this.
|
|
72
|
+
return from(this.ensureConfigured().loyalty.getByUser(userUniqueId));
|
|
65
73
|
}
|
|
66
74
|
addPoints(data) {
|
|
67
|
-
return from(this.
|
|
75
|
+
return from(this.ensureConfigured().loyalty.addPoints(data));
|
|
68
76
|
}
|
|
69
77
|
redeemPoints(data) {
|
|
70
|
-
return from(this.
|
|
78
|
+
return from(this.ensureConfigured().loyalty.redeemPoints(data));
|
|
71
79
|
}
|
|
72
80
|
getLoyaltyHistory(userUniqueId, params) {
|
|
73
|
-
return from(this.
|
|
81
|
+
return from(this.ensureConfigured().loyalty.getHistory(userUniqueId, params));
|
|
74
82
|
}
|
|
75
83
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
76
84
|
// Badges Service
|
|
77
85
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
78
86
|
listBadges(params) {
|
|
79
|
-
return from(this.
|
|
87
|
+
return from(this.ensureConfigured().badges.list(params));
|
|
80
88
|
}
|
|
81
89
|
getBadge(uniqueId) {
|
|
82
|
-
return from(this.
|
|
90
|
+
return from(this.ensureConfigured().badges.get(uniqueId));
|
|
83
91
|
}
|
|
84
92
|
createBadge(data) {
|
|
85
|
-
return from(this.
|
|
93
|
+
return from(this.ensureConfigured().badges.create(data));
|
|
86
94
|
}
|
|
87
95
|
updateBadge(uniqueId, data) {
|
|
88
|
-
return from(this.
|
|
96
|
+
return from(this.ensureConfigured().badges.update(uniqueId, data));
|
|
89
97
|
}
|
|
90
98
|
deleteBadge(uniqueId) {
|
|
91
|
-
return from(this.
|
|
99
|
+
return from(this.ensureConfigured().badges.delete(uniqueId));
|
|
92
100
|
}
|
|
93
101
|
awardBadge(data) {
|
|
94
|
-
return from(this.
|
|
102
|
+
return from(this.ensureConfigured().badges.award(data));
|
|
95
103
|
}
|
|
96
104
|
listUserBadges(userUniqueId, params) {
|
|
97
|
-
return from(this.
|
|
105
|
+
return from(this.ensureConfigured().badges.listByUser(userUniqueId, params));
|
|
98
106
|
}
|
|
99
107
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
100
108
|
// Direct Block Access (for advanced usage)
|
|
@@ -103,21 +111,26 @@ export class RewardsService {
|
|
|
103
111
|
* Access the underlying block for advanced operations
|
|
104
112
|
* Use this when you need access to services not wrapped by this Angular service
|
|
105
113
|
*/ get rawBlock() {
|
|
106
|
-
return this.
|
|
114
|
+
return this.ensureConfigured();
|
|
107
115
|
}
|
|
108
|
-
constructor(
|
|
109
|
-
|
|
116
|
+
constructor(serviceTransport, legacyTransport, config){
|
|
117
|
+
const transport = serviceTransport != null ? serviceTransport : legacyTransport;
|
|
118
|
+
this.block = transport ? createRewardsBlock(transport, config) : null;
|
|
110
119
|
}
|
|
111
120
|
}
|
|
112
121
|
RewardsService = _ts_decorate([
|
|
113
122
|
Injectable({
|
|
114
123
|
providedIn: 'root'
|
|
115
124
|
}),
|
|
116
|
-
_ts_param(0,
|
|
117
|
-
_ts_param(
|
|
125
|
+
_ts_param(0, Optional()),
|
|
126
|
+
_ts_param(0, Inject(REWARDS_TRANSPORT)),
|
|
127
|
+
_ts_param(1, Optional()),
|
|
128
|
+
_ts_param(1, Inject(TRANSPORT)),
|
|
129
|
+
_ts_param(2, Inject(REWARDS_CONFIG)),
|
|
118
130
|
_ts_metadata("design:type", Function),
|
|
119
131
|
_ts_metadata("design:paramtypes", [
|
|
120
|
-
|
|
132
|
+
Object,
|
|
133
|
+
Object,
|
|
121
134
|
typeof RewardsBlockConfig === "undefined" ? Object : RewardsBlockConfig
|
|
122
135
|
])
|
|
123
136
|
], RewardsService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/rewards/rewards.service.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createRewardsBlock,\n type RewardsBlock,\n type RewardsBlockConfig,\n type Reward,\n type RewardRedemption,\n type CreateRewardRequest,\n type UpdateRewardRequest,\n type ListRewardsParams,\n type RedeemRewardRequest,\n type Coupon,\n type CouponApplication,\n type CreateCouponRequest,\n type UpdateCouponRequest,\n type ListCouponsParams,\n type ValidateCouponRequest,\n type CouponValidationResult,\n type ApplyCouponRequest,\n type Loyalty,\n type LoyaltyTransaction,\n type AddPointsRequest,\n type RedeemPointsRequest,\n type ListTransactionsParams,\n type Badge,\n type UserBadge,\n type CreateBadgeRequest,\n type UpdateBadgeRequest,\n type ListBadgesParams,\n type AwardBadgeRequest,\n type ListUserBadgesParams,\n} from '@23blocks/block-rewards';\nimport { TRANSPORT, REWARDS_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Rewards block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class RewardsComponent {\n * constructor(private rewards: RewardsService) {}\n *\n * listRewards() {\n * this.rewards.listRewards({ status: 'active' }).subscribe({\n * next: (result) => console.log('Rewards:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class RewardsService {\n private readonly block: RewardsBlock;\n\n constructor(\n @Inject(TRANSPORT) transport: Transport,\n @Inject(REWARDS_CONFIG) config: RewardsBlockConfig\n ) {\n this.block = createRewardsBlock(transport, config);\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Rewards Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listRewards(params?: ListRewardsParams): Observable<PageResult<Reward>> {\n return from(this.block.rewards.list(params));\n }\n\n getReward(uniqueId: string): Observable<Reward> {\n return from(this.block.rewards.get(uniqueId));\n }\n\n createReward(data: CreateRewardRequest): Observable<Reward> {\n return from(this.block.rewards.create(data));\n }\n\n updateReward(uniqueId: string, data: UpdateRewardRequest): Observable<Reward> {\n return from(this.block.rewards.update(uniqueId, data));\n }\n\n deleteReward(uniqueId: string): Observable<void> {\n return from(this.block.rewards.delete(uniqueId));\n }\n\n redeemReward(data: RedeemRewardRequest): Observable<RewardRedemption> {\n return from(this.block.rewards.redeem(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Coupons Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCoupons(params?: ListCouponsParams): Observable<PageResult<Coupon>> {\n return from(this.block.coupons.list(params));\n }\n\n getCoupon(uniqueId: string): Observable<Coupon> {\n return from(this.block.coupons.get(uniqueId));\n }\n\n getCouponByCode(code: string): Observable<Coupon> {\n return from(this.block.coupons.getByCode(code));\n }\n\n createCoupon(data: CreateCouponRequest): Observable<Coupon> {\n return from(this.block.coupons.create(data));\n }\n\n updateCoupon(uniqueId: string, data: UpdateCouponRequest): Observable<Coupon> {\n return from(this.block.coupons.update(uniqueId, data));\n }\n\n deleteCoupon(uniqueId: string): Observable<void> {\n return from(this.block.coupons.delete(uniqueId));\n }\n\n validateCoupon(data: ValidateCouponRequest): Observable<CouponValidationResult> {\n return from(this.block.coupons.validate(data));\n }\n\n applyCoupon(data: ApplyCouponRequest): Observable<CouponApplication> {\n return from(this.block.coupons.apply(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Loyalty Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getLoyalty(uniqueId: string): Observable<Loyalty> {\n return from(this.block.loyalty.get(uniqueId));\n }\n\n getLoyaltyByUser(userUniqueId: string): Observable<Loyalty> {\n return from(this.block.loyalty.getByUser(userUniqueId));\n }\n\n addPoints(data: AddPointsRequest): Observable<LoyaltyTransaction> {\n return from(this.block.loyalty.addPoints(data));\n }\n\n redeemPoints(data: RedeemPointsRequest): Observable<LoyaltyTransaction> {\n return from(this.block.loyalty.redeemPoints(data));\n }\n\n getLoyaltyHistory(userUniqueId: string, params?: ListTransactionsParams): Observable<PageResult<LoyaltyTransaction>> {\n return from(this.block.loyalty.getHistory(userUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Badges Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listBadges(params?: ListBadgesParams): Observable<PageResult<Badge>> {\n return from(this.block.badges.list(params));\n }\n\n getBadge(uniqueId: string): Observable<Badge> {\n return from(this.block.badges.get(uniqueId));\n }\n\n createBadge(data: CreateBadgeRequest): Observable<Badge> {\n return from(this.block.badges.create(data));\n }\n\n updateBadge(uniqueId: string, data: UpdateBadgeRequest): Observable<Badge> {\n return from(this.block.badges.update(uniqueId, data));\n }\n\n deleteBadge(uniqueId: string): Observable<void> {\n return from(this.block.badges.delete(uniqueId));\n }\n\n awardBadge(data: AwardBadgeRequest): Observable<UserBadge> {\n return from(this.block.badges.award(data));\n }\n\n listUserBadges(userUniqueId: string, params?: ListUserBadgesParams): Observable<PageResult<UserBadge>> {\n return from(this.block.badges.listByUser(userUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): RewardsBlock {\n return this.block;\n }\n}\n"],"names":["Injectable","Inject","from","createRewardsBlock","TRANSPORT","REWARDS_CONFIG","RewardsService","listRewards","params","block","rewards","list","getReward","uniqueId","get","createReward","data","create","updateReward","update","deleteReward","delete","redeemReward","redeem","listCoupons","coupons","getCoupon","getCouponByCode","code","getByCode","createCoupon","updateCoupon","deleteCoupon","validateCoupon","validate","applyCoupon","apply","getLoyalty","loyalty","getLoyaltyByUser","userUniqueId","getByUser","addPoints","redeemPoints","getLoyaltyHistory","getHistory","listBadges","badges","getBadge","createBadge","updateBadge","deleteBadge","awardBadge","award","listUserBadges","listByUser","rawBlock","constructor","transport","config","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/rewards/rewards.service.ts"],"sourcesContent":["import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createRewardsBlock,\n type RewardsBlock,\n type RewardsBlockConfig,\n type Reward,\n type RewardRedemption,\n type CreateRewardRequest,\n type UpdateRewardRequest,\n type ListRewardsParams,\n type RedeemRewardRequest,\n type Coupon,\n type CouponApplication,\n type CreateCouponRequest,\n type UpdateCouponRequest,\n type ListCouponsParams,\n type ValidateCouponRequest,\n type CouponValidationResult,\n type ApplyCouponRequest,\n type Loyalty,\n type LoyaltyTransaction,\n type AddPointsRequest,\n type RedeemPointsRequest,\n type ListTransactionsParams,\n type Badge,\n type UserBadge,\n type CreateBadgeRequest,\n type UpdateBadgeRequest,\n type ListBadgesParams,\n type AwardBadgeRequest,\n type ListUserBadgesParams,\n} from '@23blocks/block-rewards';\nimport { TRANSPORT, REWARDS_TRANSPORT, REWARDS_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Rewards block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class RewardsComponent {\n * constructor(private rewards: RewardsService) {}\n *\n * listRewards() {\n * this.rewards.listRewards({ status: 'active' }).subscribe({\n * next: (result) => console.log('Rewards:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class RewardsService {\n private readonly block: RewardsBlock | null;\n\n constructor(\n @Optional() @Inject(REWARDS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(REWARDS_CONFIG) config: RewardsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createRewardsBlock(transport, config) : null;\n }\n\n /**\n * Ensure the service is configured, throw helpful error if not\n */\n private ensureConfigured(): RewardsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] RewardsService is not configured. ' +\n \"Add 'urls.rewards' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Rewards Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listRewards(params?: ListRewardsParams): Observable<PageResult<Reward>> {\n return from(this.ensureConfigured().rewards.list(params));\n }\n\n getReward(uniqueId: string): Observable<Reward> {\n return from(this.ensureConfigured().rewards.get(uniqueId));\n }\n\n createReward(data: CreateRewardRequest): Observable<Reward> {\n return from(this.ensureConfigured().rewards.create(data));\n }\n\n updateReward(uniqueId: string, data: UpdateRewardRequest): Observable<Reward> {\n return from(this.ensureConfigured().rewards.update(uniqueId, data));\n }\n\n deleteReward(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().rewards.delete(uniqueId));\n }\n\n redeemReward(data: RedeemRewardRequest): Observable<RewardRedemption> {\n return from(this.ensureConfigured().rewards.redeem(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Coupons Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCoupons(params?: ListCouponsParams): Observable<PageResult<Coupon>> {\n return from(this.ensureConfigured().coupons.list(params));\n }\n\n getCoupon(uniqueId: string): Observable<Coupon> {\n return from(this.ensureConfigured().coupons.get(uniqueId));\n }\n\n getCouponByCode(code: string): Observable<Coupon> {\n return from(this.ensureConfigured().coupons.getByCode(code));\n }\n\n createCoupon(data: CreateCouponRequest): Observable<Coupon> {\n return from(this.ensureConfigured().coupons.create(data));\n }\n\n updateCoupon(uniqueId: string, data: UpdateCouponRequest): Observable<Coupon> {\n return from(this.ensureConfigured().coupons.update(uniqueId, data));\n }\n\n deleteCoupon(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().coupons.delete(uniqueId));\n }\n\n validateCoupon(data: ValidateCouponRequest): Observable<CouponValidationResult> {\n return from(this.ensureConfigured().coupons.validate(data));\n }\n\n applyCoupon(data: ApplyCouponRequest): Observable<CouponApplication> {\n return from(this.ensureConfigured().coupons.apply(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Loyalty Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getLoyalty(uniqueId: string): Observable<Loyalty> {\n return from(this.ensureConfigured().loyalty.get(uniqueId));\n }\n\n getLoyaltyByUser(userUniqueId: string): Observable<Loyalty> {\n return from(this.ensureConfigured().loyalty.getByUser(userUniqueId));\n }\n\n addPoints(data: AddPointsRequest): Observable<LoyaltyTransaction> {\n return from(this.ensureConfigured().loyalty.addPoints(data));\n }\n\n redeemPoints(data: RedeemPointsRequest): Observable<LoyaltyTransaction> {\n return from(this.ensureConfigured().loyalty.redeemPoints(data));\n }\n\n getLoyaltyHistory(userUniqueId: string, params?: ListTransactionsParams): Observable<PageResult<LoyaltyTransaction>> {\n return from(this.ensureConfigured().loyalty.getHistory(userUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Badges Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listBadges(params?: ListBadgesParams): Observable<PageResult<Badge>> {\n return from(this.ensureConfigured().badges.list(params));\n }\n\n getBadge(uniqueId: string): Observable<Badge> {\n return from(this.ensureConfigured().badges.get(uniqueId));\n }\n\n createBadge(data: CreateBadgeRequest): Observable<Badge> {\n return from(this.ensureConfigured().badges.create(data));\n }\n\n updateBadge(uniqueId: string, data: UpdateBadgeRequest): Observable<Badge> {\n return from(this.ensureConfigured().badges.update(uniqueId, data));\n }\n\n deleteBadge(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().badges.delete(uniqueId));\n }\n\n awardBadge(data: AwardBadgeRequest): Observable<UserBadge> {\n return from(this.ensureConfigured().badges.award(data));\n }\n\n listUserBadges(userUniqueId: string, params?: ListUserBadgesParams): Observable<PageResult<UserBadge>> {\n return from(this.ensureConfigured().badges.listByUser(userUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): RewardsBlock {\n return this.ensureConfigured();\n }\n}\n"],"names":["Injectable","Inject","Optional","from","createRewardsBlock","TRANSPORT","REWARDS_TRANSPORT","REWARDS_CONFIG","RewardsService","ensureConfigured","block","Error","listRewards","params","rewards","list","getReward","uniqueId","get","createReward","data","create","updateReward","update","deleteReward","delete","redeemReward","redeem","listCoupons","coupons","getCoupon","getCouponByCode","code","getByCode","createCoupon","updateCoupon","deleteCoupon","validateCoupon","validate","applyCoupon","apply","getLoyalty","loyalty","getLoyaltyByUser","userUniqueId","getByUser","addPoints","redeemPoints","getLoyaltyHistory","getHistory","listBadges","badges","getBadge","createBadge","updateBadge","deleteBadge","awardBadge","award","listUserBadges","listByUser","rawBlock","constructor","serviceTransport","legacyTransport","config","transport","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,100 +1,108 @@
|
|
|
1
1
|
import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
|
|
2
2
|
import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
|
|
3
3
|
import { _ as _ts_param } from "@swc/helpers/_/_ts_param";
|
|
4
|
-
import { Injectable, Inject } from '@angular/core';
|
|
4
|
+
import { Injectable, Inject, Optional } from '@angular/core';
|
|
5
5
|
import { from } from 'rxjs';
|
|
6
6
|
import { createSalesBlock } from '@23blocks/block-sales';
|
|
7
|
-
import { TRANSPORT, SALES_CONFIG } from '../tokens.js';
|
|
7
|
+
import { TRANSPORT, SALES_TRANSPORT, SALES_CONFIG } from '../tokens.js';
|
|
8
8
|
export class SalesService {
|
|
9
|
+
/**
|
|
10
|
+
* Ensure the service is configured, throw helpful error if not
|
|
11
|
+
*/ ensureConfigured() {
|
|
12
|
+
if (!this.block) {
|
|
13
|
+
throw new Error('[23blocks] SalesService is not configured. ' + "Add 'urls.sales' to your provideBlocks23() configuration.");
|
|
14
|
+
}
|
|
15
|
+
return this.block;
|
|
16
|
+
}
|
|
9
17
|
// ───────────────────────────────────────────────────────────────────────────
|
|
10
18
|
// Orders Service
|
|
11
19
|
// ───────────────────────────────────────────────────────────────────────────
|
|
12
20
|
listOrders(params) {
|
|
13
|
-
return from(this.
|
|
21
|
+
return from(this.ensureConfigured().orders.list(params));
|
|
14
22
|
}
|
|
15
23
|
getOrder(uniqueId) {
|
|
16
|
-
return from(this.
|
|
24
|
+
return from(this.ensureConfigured().orders.get(uniqueId));
|
|
17
25
|
}
|
|
18
26
|
createOrder(data) {
|
|
19
|
-
return from(this.
|
|
27
|
+
return from(this.ensureConfigured().orders.create(data));
|
|
20
28
|
}
|
|
21
29
|
updateOrder(uniqueId, data) {
|
|
22
|
-
return from(this.
|
|
30
|
+
return from(this.ensureConfigured().orders.update(uniqueId, data));
|
|
23
31
|
}
|
|
24
32
|
cancelOrder(uniqueId) {
|
|
25
|
-
return from(this.
|
|
33
|
+
return from(this.ensureConfigured().orders.cancel(uniqueId));
|
|
26
34
|
}
|
|
27
35
|
confirmOrder(uniqueId) {
|
|
28
|
-
return from(this.
|
|
36
|
+
return from(this.ensureConfigured().orders.confirm(uniqueId));
|
|
29
37
|
}
|
|
30
38
|
shipOrder(uniqueId, trackingNumber) {
|
|
31
|
-
return from(this.
|
|
39
|
+
return from(this.ensureConfigured().orders.ship(uniqueId, trackingNumber));
|
|
32
40
|
}
|
|
33
41
|
deliverOrder(uniqueId) {
|
|
34
|
-
return from(this.
|
|
42
|
+
return from(this.ensureConfigured().orders.deliver(uniqueId));
|
|
35
43
|
}
|
|
36
44
|
listOrdersByUser(userUniqueId, params) {
|
|
37
|
-
return from(this.
|
|
45
|
+
return from(this.ensureConfigured().orders.listByUser(userUniqueId, params));
|
|
38
46
|
}
|
|
39
47
|
// ───────────────────────────────────────────────────────────────────────────
|
|
40
48
|
// Order Details Service
|
|
41
49
|
// ───────────────────────────────────────────────────────────────────────────
|
|
42
50
|
listOrderDetails() {
|
|
43
|
-
return from(this.
|
|
51
|
+
return from(this.ensureConfigured().orderDetails.list());
|
|
44
52
|
}
|
|
45
53
|
getOrderDetail(uniqueId) {
|
|
46
|
-
return from(this.
|
|
54
|
+
return from(this.ensureConfigured().orderDetails.get(uniqueId));
|
|
47
55
|
}
|
|
48
56
|
updateOrderDetail(uniqueId, data) {
|
|
49
|
-
return from(this.
|
|
57
|
+
return from(this.ensureConfigured().orderDetails.update(uniqueId, data));
|
|
50
58
|
}
|
|
51
59
|
listOrderDetailsByOrder(orderUniqueId) {
|
|
52
|
-
return from(this.
|
|
60
|
+
return from(this.ensureConfigured().orderDetails.listByOrder(orderUniqueId));
|
|
53
61
|
}
|
|
54
62
|
// ───────────────────────────────────────────────────────────────────────────
|
|
55
63
|
// Payments Service
|
|
56
64
|
// ───────────────────────────────────────────────────────────────────────────
|
|
57
65
|
listPayments(params) {
|
|
58
|
-
return from(this.
|
|
66
|
+
return from(this.ensureConfigured().payments.list(params));
|
|
59
67
|
}
|
|
60
68
|
getPayment(uniqueId) {
|
|
61
|
-
return from(this.
|
|
69
|
+
return from(this.ensureConfigured().payments.get(uniqueId));
|
|
62
70
|
}
|
|
63
71
|
createPayment(data) {
|
|
64
|
-
return from(this.
|
|
72
|
+
return from(this.ensureConfigured().payments.create(data));
|
|
65
73
|
}
|
|
66
74
|
refundPayment(uniqueId, amount) {
|
|
67
|
-
return from(this.
|
|
75
|
+
return from(this.ensureConfigured().payments.refund(uniqueId, amount));
|
|
68
76
|
}
|
|
69
77
|
listPaymentsByOrder(orderUniqueId) {
|
|
70
|
-
return from(this.
|
|
78
|
+
return from(this.ensureConfigured().payments.listByOrder(orderUniqueId));
|
|
71
79
|
}
|
|
72
80
|
// ───────────────────────────────────────────────────────────────────────────
|
|
73
81
|
// Subscriptions Service
|
|
74
82
|
// ───────────────────────────────────────────────────────────────────────────
|
|
75
83
|
listSubscriptions(params) {
|
|
76
|
-
return from(this.
|
|
84
|
+
return from(this.ensureConfigured().subscriptions.list(params));
|
|
77
85
|
}
|
|
78
86
|
getSubscription(uniqueId) {
|
|
79
|
-
return from(this.
|
|
87
|
+
return from(this.ensureConfigured().subscriptions.get(uniqueId));
|
|
80
88
|
}
|
|
81
89
|
createSubscription(data) {
|
|
82
|
-
return from(this.
|
|
90
|
+
return from(this.ensureConfigured().subscriptions.create(data));
|
|
83
91
|
}
|
|
84
92
|
updateSubscription(uniqueId, data) {
|
|
85
|
-
return from(this.
|
|
93
|
+
return from(this.ensureConfigured().subscriptions.update(uniqueId, data));
|
|
86
94
|
}
|
|
87
95
|
cancelSubscription(uniqueId) {
|
|
88
|
-
return from(this.
|
|
96
|
+
return from(this.ensureConfigured().subscriptions.cancel(uniqueId));
|
|
89
97
|
}
|
|
90
98
|
pauseSubscription(uniqueId) {
|
|
91
|
-
return from(this.
|
|
99
|
+
return from(this.ensureConfigured().subscriptions.pause(uniqueId));
|
|
92
100
|
}
|
|
93
101
|
resumeSubscription(uniqueId) {
|
|
94
|
-
return from(this.
|
|
102
|
+
return from(this.ensureConfigured().subscriptions.resume(uniqueId));
|
|
95
103
|
}
|
|
96
104
|
listSubscriptionsByUser(userUniqueId, params) {
|
|
97
|
-
return from(this.
|
|
105
|
+
return from(this.ensureConfigured().subscriptions.listByUser(userUniqueId, params));
|
|
98
106
|
}
|
|
99
107
|
// ───────────────────────────────────────────────────────────────────────────
|
|
100
108
|
// Direct Block Access (for advanced usage)
|
|
@@ -103,21 +111,26 @@ export class SalesService {
|
|
|
103
111
|
* Access the underlying block for advanced operations
|
|
104
112
|
* Use this when you need access to services not wrapped by this Angular service
|
|
105
113
|
*/ get rawBlock() {
|
|
106
|
-
return this.
|
|
114
|
+
return this.ensureConfigured();
|
|
107
115
|
}
|
|
108
|
-
constructor(
|
|
109
|
-
|
|
116
|
+
constructor(serviceTransport, legacyTransport, config){
|
|
117
|
+
const transport = serviceTransport != null ? serviceTransport : legacyTransport;
|
|
118
|
+
this.block = transport ? createSalesBlock(transport, config) : null;
|
|
110
119
|
}
|
|
111
120
|
}
|
|
112
121
|
SalesService = _ts_decorate([
|
|
113
122
|
Injectable({
|
|
114
123
|
providedIn: 'root'
|
|
115
124
|
}),
|
|
116
|
-
_ts_param(0,
|
|
117
|
-
_ts_param(
|
|
125
|
+
_ts_param(0, Optional()),
|
|
126
|
+
_ts_param(0, Inject(SALES_TRANSPORT)),
|
|
127
|
+
_ts_param(1, Optional()),
|
|
128
|
+
_ts_param(1, Inject(TRANSPORT)),
|
|
129
|
+
_ts_param(2, Inject(SALES_CONFIG)),
|
|
118
130
|
_ts_metadata("design:type", Function),
|
|
119
131
|
_ts_metadata("design:paramtypes", [
|
|
120
|
-
|
|
132
|
+
Object,
|
|
133
|
+
Object,
|
|
121
134
|
typeof SalesBlockConfig === "undefined" ? Object : SalesBlockConfig
|
|
122
135
|
])
|
|
123
136
|
], SalesService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/sales/sales.service.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createSalesBlock,\n type SalesBlock,\n type SalesBlockConfig,\n type Order,\n type OrderStatus,\n type CreateOrderRequest,\n type UpdateOrderRequest,\n type ListOrdersParams,\n type OrderDetail,\n type UpdateOrderDetailRequest,\n type Payment,\n type PaymentStatus,\n type CreatePaymentRequest,\n type ListPaymentsParams,\n type Subscription,\n type SubscriptionInterval,\n type SubscriptionStatus,\n type CreateSubscriptionRequest,\n type UpdateSubscriptionRequest,\n type ListSubscriptionsParams,\n} from '@23blocks/block-sales';\nimport { TRANSPORT, SALES_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Sales block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class CheckoutComponent {\n * constructor(private sales: SalesService) {}\n *\n * createOrder(items: any[]) {\n * this.sales.createOrder({ userUniqueId: '123', items }).subscribe({\n * next: (order) => console.log('Order created:', order),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class SalesService {\n private readonly block: SalesBlock;\n\n constructor(\n @Inject(TRANSPORT) transport: Transport,\n @Inject(SALES_CONFIG) config: SalesBlockConfig\n ) {\n this.block = createSalesBlock(transport, config);\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Orders Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listOrders(params?: ListOrdersParams): Observable<PageResult<Order>> {\n return from(this.block.orders.list(params));\n }\n\n getOrder(uniqueId: string): Observable<Order> {\n return from(this.block.orders.get(uniqueId));\n }\n\n createOrder(data: CreateOrderRequest): Observable<Order> {\n return from(this.block.orders.create(data));\n }\n\n updateOrder(uniqueId: string, data: UpdateOrderRequest): Observable<Order> {\n return from(this.block.orders.update(uniqueId, data));\n }\n\n cancelOrder(uniqueId: string): Observable<Order> {\n return from(this.block.orders.cancel(uniqueId));\n }\n\n confirmOrder(uniqueId: string): Observable<Order> {\n return from(this.block.orders.confirm(uniqueId));\n }\n\n shipOrder(uniqueId: string, trackingNumber?: string): Observable<Order> {\n return from(this.block.orders.ship(uniqueId, trackingNumber));\n }\n\n deliverOrder(uniqueId: string): Observable<Order> {\n return from(this.block.orders.deliver(uniqueId));\n }\n\n listOrdersByUser(userUniqueId: string, params?: ListOrdersParams): Observable<PageResult<Order>> {\n return from(this.block.orders.listByUser(userUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Order Details Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listOrderDetails(): Observable<OrderDetail[]> {\n return from(this.block.orderDetails.list());\n }\n\n getOrderDetail(uniqueId: string): Observable<OrderDetail> {\n return from(this.block.orderDetails.get(uniqueId));\n }\n\n updateOrderDetail(uniqueId: string, data: UpdateOrderDetailRequest): Observable<OrderDetail> {\n return from(this.block.orderDetails.update(uniqueId, data));\n }\n\n listOrderDetailsByOrder(orderUniqueId: string): Observable<OrderDetail[]> {\n return from(this.block.orderDetails.listByOrder(orderUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Payments Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listPayments(params?: ListPaymentsParams): Observable<PageResult<Payment>> {\n return from(this.block.payments.list(params));\n }\n\n getPayment(uniqueId: string): Observable<Payment> {\n return from(this.block.payments.get(uniqueId));\n }\n\n createPayment(data: CreatePaymentRequest): Observable<Payment> {\n return from(this.block.payments.create(data));\n }\n\n refundPayment(uniqueId: string, amount?: number): Observable<Payment> {\n return from(this.block.payments.refund(uniqueId, amount));\n }\n\n listPaymentsByOrder(orderUniqueId: string): Observable<Payment[]> {\n return from(this.block.payments.listByOrder(orderUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Subscriptions Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listSubscriptions(params?: ListSubscriptionsParams): Observable<PageResult<Subscription>> {\n return from(this.block.subscriptions.list(params));\n }\n\n getSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.block.subscriptions.get(uniqueId));\n }\n\n createSubscription(data: CreateSubscriptionRequest): Observable<Subscription> {\n return from(this.block.subscriptions.create(data));\n }\n\n updateSubscription(uniqueId: string, data: UpdateSubscriptionRequest): Observable<Subscription> {\n return from(this.block.subscriptions.update(uniqueId, data));\n }\n\n cancelSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.block.subscriptions.cancel(uniqueId));\n }\n\n pauseSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.block.subscriptions.pause(uniqueId));\n }\n\n resumeSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.block.subscriptions.resume(uniqueId));\n }\n\n listSubscriptionsByUser(userUniqueId: string, params?: ListSubscriptionsParams): Observable<PageResult<Subscription>> {\n return from(this.block.subscriptions.listByUser(userUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): SalesBlock {\n return this.block;\n }\n}\n"],"names":["Injectable","Inject","from","createSalesBlock","TRANSPORT","SALES_CONFIG","SalesService","listOrders","params","block","orders","list","getOrder","uniqueId","get","createOrder","data","create","updateOrder","update","cancelOrder","cancel","confirmOrder","confirm","shipOrder","trackingNumber","ship","deliverOrder","deliver","listOrdersByUser","userUniqueId","listByUser","listOrderDetails","orderDetails","getOrderDetail","updateOrderDetail","listOrderDetailsByOrder","orderUniqueId","listByOrder","listPayments","payments","getPayment","createPayment","refundPayment","amount","refund","listPaymentsByOrder","listSubscriptions","subscriptions","getSubscription","createSubscription","updateSubscription","cancelSubscription","pauseSubscription","pause","resumeSubscription","resume","listSubscriptionsByUser","rawBlock","constructor","transport","config","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/sales/sales.service.ts"],"sourcesContent":["import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createSalesBlock,\n type SalesBlock,\n type SalesBlockConfig,\n type Order,\n type OrderStatus,\n type CreateOrderRequest,\n type UpdateOrderRequest,\n type ListOrdersParams,\n type OrderDetail,\n type UpdateOrderDetailRequest,\n type Payment,\n type PaymentStatus,\n type CreatePaymentRequest,\n type ListPaymentsParams,\n type Subscription,\n type SubscriptionInterval,\n type SubscriptionStatus,\n type CreateSubscriptionRequest,\n type UpdateSubscriptionRequest,\n type ListSubscriptionsParams,\n} from '@23blocks/block-sales';\nimport { TRANSPORT, SALES_TRANSPORT, SALES_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Sales block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class CheckoutComponent {\n * constructor(private sales: SalesService) {}\n *\n * createOrder(items: any[]) {\n * this.sales.createOrder({ userUniqueId: '123', items }).subscribe({\n * next: (order) => console.log('Order created:', order),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class SalesService {\n private readonly block: SalesBlock | null;\n\n constructor(\n @Optional() @Inject(SALES_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(SALES_CONFIG) config: SalesBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createSalesBlock(transport, config) : null;\n }\n\n /**\n * Ensure the service is configured, throw helpful error if not\n */\n private ensureConfigured(): SalesBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] SalesService is not configured. ' +\n \"Add 'urls.sales' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Orders Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listOrders(params?: ListOrdersParams): Observable<PageResult<Order>> {\n return from(this.ensureConfigured().orders.list(params));\n }\n\n getOrder(uniqueId: string): Observable<Order> {\n return from(this.ensureConfigured().orders.get(uniqueId));\n }\n\n createOrder(data: CreateOrderRequest): Observable<Order> {\n return from(this.ensureConfigured().orders.create(data));\n }\n\n updateOrder(uniqueId: string, data: UpdateOrderRequest): Observable<Order> {\n return from(this.ensureConfigured().orders.update(uniqueId, data));\n }\n\n cancelOrder(uniqueId: string): Observable<Order> {\n return from(this.ensureConfigured().orders.cancel(uniqueId));\n }\n\n confirmOrder(uniqueId: string): Observable<Order> {\n return from(this.ensureConfigured().orders.confirm(uniqueId));\n }\n\n shipOrder(uniqueId: string, trackingNumber?: string): Observable<Order> {\n return from(this.ensureConfigured().orders.ship(uniqueId, trackingNumber));\n }\n\n deliverOrder(uniqueId: string): Observable<Order> {\n return from(this.ensureConfigured().orders.deliver(uniqueId));\n }\n\n listOrdersByUser(userUniqueId: string, params?: ListOrdersParams): Observable<PageResult<Order>> {\n return from(this.ensureConfigured().orders.listByUser(userUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Order Details Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listOrderDetails(): Observable<OrderDetail[]> {\n return from(this.ensureConfigured().orderDetails.list());\n }\n\n getOrderDetail(uniqueId: string): Observable<OrderDetail> {\n return from(this.ensureConfigured().orderDetails.get(uniqueId));\n }\n\n updateOrderDetail(uniqueId: string, data: UpdateOrderDetailRequest): Observable<OrderDetail> {\n return from(this.ensureConfigured().orderDetails.update(uniqueId, data));\n }\n\n listOrderDetailsByOrder(orderUniqueId: string): Observable<OrderDetail[]> {\n return from(this.ensureConfigured().orderDetails.listByOrder(orderUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Payments Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listPayments(params?: ListPaymentsParams): Observable<PageResult<Payment>> {\n return from(this.ensureConfigured().payments.list(params));\n }\n\n getPayment(uniqueId: string): Observable<Payment> {\n return from(this.ensureConfigured().payments.get(uniqueId));\n }\n\n createPayment(data: CreatePaymentRequest): Observable<Payment> {\n return from(this.ensureConfigured().payments.create(data));\n }\n\n refundPayment(uniqueId: string, amount?: number): Observable<Payment> {\n return from(this.ensureConfigured().payments.refund(uniqueId, amount));\n }\n\n listPaymentsByOrder(orderUniqueId: string): Observable<Payment[]> {\n return from(this.ensureConfigured().payments.listByOrder(orderUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Subscriptions Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listSubscriptions(params?: ListSubscriptionsParams): Observable<PageResult<Subscription>> {\n return from(this.ensureConfigured().subscriptions.list(params));\n }\n\n getSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.get(uniqueId));\n }\n\n createSubscription(data: CreateSubscriptionRequest): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.create(data));\n }\n\n updateSubscription(uniqueId: string, data: UpdateSubscriptionRequest): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.update(uniqueId, data));\n }\n\n cancelSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.cancel(uniqueId));\n }\n\n pauseSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.pause(uniqueId));\n }\n\n resumeSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.resume(uniqueId));\n }\n\n listSubscriptionsByUser(userUniqueId: string, params?: ListSubscriptionsParams): Observable<PageResult<Subscription>> {\n return from(this.ensureConfigured().subscriptions.listByUser(userUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): SalesBlock {\n return this.ensureConfigured();\n }\n}\n"],"names":["Injectable","Inject","Optional","from","createSalesBlock","TRANSPORT","SALES_TRANSPORT","SALES_CONFIG","SalesService","ensureConfigured","block","Error","listOrders","params","orders","list","getOrder","uniqueId","get","createOrder","data","create","updateOrder","update","cancelOrder","cancel","confirmOrder","confirm","shipOrder","trackingNumber","ship","deliverOrder","deliver","listOrdersByUser","userUniqueId","listByUser","listOrderDetails","orderDetails","getOrderDetail","updateOrderDetail","listOrderDetailsByOrder","orderUniqueId","listByOrder","listPayments","payments","getPayment","createPayment","refundPayment","amount","refund","listPaymentsByOrder","listSubscriptions","subscriptions","getSubscription","createSubscription","updateSubscription","cancelSubscription","pauseSubscription","pause","resumeSubscription","resume","listSubscriptionsByUser","rawBlock","constructor","serviceTransport","legacyTransport","config","transport","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,28 +1,36 @@
|
|
|
1
1
|
import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
|
|
2
2
|
import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
|
|
3
3
|
import { _ as _ts_param } from "@swc/helpers/_/_ts_param";
|
|
4
|
-
import { Injectable, Inject } from '@angular/core';
|
|
4
|
+
import { Injectable, Inject, Optional } from '@angular/core';
|
|
5
5
|
import { from } from 'rxjs';
|
|
6
6
|
import { createSearchBlock } from '@23blocks/block-search';
|
|
7
|
-
import { TRANSPORT, SEARCH_CONFIG } from '../tokens.js';
|
|
7
|
+
import { TRANSPORT, SEARCH_TRANSPORT, SEARCH_CONFIG } from '../tokens.js';
|
|
8
8
|
export class SearchService {
|
|
9
|
+
/**
|
|
10
|
+
* Ensure the service is configured, throw helpful error if not
|
|
11
|
+
*/ ensureConfigured() {
|
|
12
|
+
if (!this.block) {
|
|
13
|
+
throw new Error('[23blocks] SearchService is not configured. ' + "Add 'urls.search' to your provideBlocks23() configuration.");
|
|
14
|
+
}
|
|
15
|
+
return this.block;
|
|
16
|
+
}
|
|
9
17
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
10
18
|
// Search Operations
|
|
11
19
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
12
20
|
/**
|
|
13
21
|
* Perform a search query
|
|
14
22
|
*/ search(request) {
|
|
15
|
-
return from(this.
|
|
23
|
+
return from(this.ensureConfigured().search.search(request));
|
|
16
24
|
}
|
|
17
25
|
/**
|
|
18
26
|
* Get search suggestions for autocomplete
|
|
19
27
|
*/ suggest(query, limit) {
|
|
20
|
-
return from(this.
|
|
28
|
+
return from(this.ensureConfigured().search.suggest(query, limit));
|
|
21
29
|
}
|
|
22
30
|
/**
|
|
23
31
|
* Get available entity types for filtering
|
|
24
32
|
*/ getEntityTypes() {
|
|
25
|
-
return from(this.
|
|
33
|
+
return from(this.ensureConfigured().search.entityTypes());
|
|
26
34
|
}
|
|
27
35
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
28
36
|
// Search History
|
|
@@ -30,17 +38,17 @@ export class SearchService {
|
|
|
30
38
|
/**
|
|
31
39
|
* Get recent search queries
|
|
32
40
|
*/ getLastQueries(limit) {
|
|
33
|
-
return from(this.
|
|
41
|
+
return from(this.ensureConfigured().history.getLastQueries(limit));
|
|
34
42
|
}
|
|
35
43
|
/**
|
|
36
44
|
* Get the full history of search queries
|
|
37
45
|
*/ getQueryHistory(params) {
|
|
38
|
-
return from(this.
|
|
46
|
+
return from(this.ensureConfigured().history.getHistory(params));
|
|
39
47
|
}
|
|
40
48
|
/**
|
|
41
49
|
* Clear search history
|
|
42
50
|
*/ clearHistory() {
|
|
43
|
-
return from(this.
|
|
51
|
+
return from(this.ensureConfigured().history.clear());
|
|
44
52
|
}
|
|
45
53
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
46
54
|
// Favorites
|
|
@@ -48,22 +56,22 @@ export class SearchService {
|
|
|
48
56
|
/**
|
|
49
57
|
* List user's favorite entities
|
|
50
58
|
*/ listFavorites() {
|
|
51
|
-
return from(this.
|
|
59
|
+
return from(this.ensureConfigured().favorites.list());
|
|
52
60
|
}
|
|
53
61
|
/**
|
|
54
62
|
* Add an entity to favorites
|
|
55
63
|
*/ addFavorite(request) {
|
|
56
|
-
return from(this.
|
|
64
|
+
return from(this.ensureConfigured().favorites.add(request));
|
|
57
65
|
}
|
|
58
66
|
/**
|
|
59
67
|
* Remove an entity from favorites
|
|
60
68
|
*/ removeFavorite(id) {
|
|
61
|
-
return from(this.
|
|
69
|
+
return from(this.ensureConfigured().favorites.remove(id));
|
|
62
70
|
}
|
|
63
71
|
/**
|
|
64
72
|
* Check if an entity is favorited
|
|
65
73
|
*/ isFavorite(entityUniqueId) {
|
|
66
|
-
return from(this.
|
|
74
|
+
return from(this.ensureConfigured().favorites.isFavorite(entityUniqueId));
|
|
67
75
|
}
|
|
68
76
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
69
77
|
// Direct Block Access (for advanced usage)
|
|
@@ -71,21 +79,26 @@ export class SearchService {
|
|
|
71
79
|
/**
|
|
72
80
|
* Access the underlying block for advanced operations
|
|
73
81
|
*/ get rawBlock() {
|
|
74
|
-
return this.
|
|
82
|
+
return this.ensureConfigured();
|
|
75
83
|
}
|
|
76
|
-
constructor(
|
|
77
|
-
|
|
84
|
+
constructor(serviceTransport, legacyTransport, config){
|
|
85
|
+
const transport = serviceTransport != null ? serviceTransport : legacyTransport;
|
|
86
|
+
this.block = transport ? createSearchBlock(transport, config) : null;
|
|
78
87
|
}
|
|
79
88
|
}
|
|
80
89
|
SearchService = _ts_decorate([
|
|
81
90
|
Injectable({
|
|
82
91
|
providedIn: 'root'
|
|
83
92
|
}),
|
|
84
|
-
_ts_param(0,
|
|
85
|
-
_ts_param(
|
|
93
|
+
_ts_param(0, Optional()),
|
|
94
|
+
_ts_param(0, Inject(SEARCH_TRANSPORT)),
|
|
95
|
+
_ts_param(1, Optional()),
|
|
96
|
+
_ts_param(1, Inject(TRANSPORT)),
|
|
97
|
+
_ts_param(2, Inject(SEARCH_CONFIG)),
|
|
86
98
|
_ts_metadata("design:type", Function),
|
|
87
99
|
_ts_metadata("design:paramtypes", [
|
|
88
|
-
|
|
100
|
+
Object,
|
|
101
|
+
Object,
|
|
89
102
|
typeof SearchBlockConfig === "undefined" ? Object : SearchBlockConfig
|
|
90
103
|
])
|
|
91
104
|
], SearchService);
|