@explorins/pers-sdk 1.6.45 → 2.0.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/README.md +288 -0
- package/dist/analytics.cjs +12 -0
- package/dist/analytics.cjs.map +1 -1
- package/dist/analytics.js +1 -1
- package/dist/api-key/api/api-key-api.d.ts +5 -2
- package/dist/api-key/api/api-key-api.d.ts.map +1 -1
- package/dist/business/api/business-api.d.ts +30 -11
- package/dist/business/api/business-api.d.ts.map +1 -1
- package/dist/business/api/business-membership-api.d.ts +205 -0
- package/dist/business/api/business-membership-api.d.ts.map +1 -0
- package/dist/business/index.d.ts +2 -0
- package/dist/business/index.d.ts.map +1 -1
- package/dist/business/services/business-membership-service.d.ts +180 -0
- package/dist/business/services/business-membership-service.d.ts.map +1 -0
- package/dist/business/services/business-service.d.ts +11 -7
- package/dist/business/services/business-service.d.ts.map +1 -1
- package/dist/business.cjs +767 -9
- package/dist/business.cjs.map +1 -1
- package/dist/business.js +751 -2
- package/dist/business.js.map +1 -1
- package/dist/campaign/api/campaign-api.d.ts +56 -22
- package/dist/campaign/api/campaign-api.d.ts.map +1 -1
- package/dist/campaign/services/campaign-service.d.ts +28 -16
- package/dist/campaign/services/campaign-service.d.ts.map +1 -1
- package/dist/campaign.cjs +14 -1
- package/dist/campaign.cjs.map +1 -1
- package/dist/campaign.js +3 -2
- package/dist/campaign.js.map +1 -1
- package/dist/chunks/{base-token-service-BSXDwrcq.js → base-token-service-DsD6lSdq.js} +2 -48
- package/dist/chunks/base-token-service-DsD6lSdq.js.map +1 -0
- package/dist/chunks/{base-token-service-CYuqPPs0.cjs → base-token-service-_64IWVES.cjs} +2 -48
- package/dist/chunks/base-token-service-_64IWVES.cjs.map +1 -0
- package/dist/chunks/{campaign-service-B1tQMNqA.cjs → campaign-service-Ae164xl8.cjs} +102 -84
- package/dist/chunks/campaign-service-Ae164xl8.cjs.map +1 -0
- package/dist/chunks/{campaign-service-CJPXgFBe.js → campaign-service-rlK4WeSY.js} +102 -84
- package/dist/chunks/campaign-service-rlK4WeSY.js.map +1 -0
- package/dist/chunks/{donation-service-D-xFrONi.cjs → donation-service--6cnTvWq.cjs} +9 -5
- package/dist/chunks/donation-service--6cnTvWq.cjs.map +1 -0
- package/dist/chunks/{donation-service-CyJS4DIZ.js → donation-service-xiXZ2Eto.js} +9 -5
- package/dist/chunks/donation-service-xiXZ2Eto.js.map +1 -0
- package/dist/chunks/pagination-utils-9vQ-Npkr.js +166 -0
- package/dist/chunks/pagination-utils-9vQ-Npkr.js.map +1 -0
- package/dist/chunks/pagination-utils-B2jRHMSO.cjs +173 -0
- package/dist/chunks/pagination-utils-B2jRHMSO.cjs.map +1 -0
- package/dist/chunks/{pers-sdk-DzS7mkm7.cjs → pers-sdk-CrffRkya.cjs} +1096 -323
- package/dist/chunks/pers-sdk-CrffRkya.cjs.map +1 -0
- package/dist/chunks/{pers-sdk-VGEG59g3.js → pers-sdk-omI-Fl0m.js} +1086 -317
- package/dist/chunks/pers-sdk-omI-Fl0m.js.map +1 -0
- package/dist/chunks/{token-service-CpVwC5Eb.js → token-service-Bfj6C0yz.js} +62 -30
- package/dist/chunks/token-service-Bfj6C0yz.js.map +1 -0
- package/dist/chunks/{token-service-BWScn8Qa.cjs → token-service-BlbXrxnS.cjs} +62 -30
- package/dist/chunks/token-service-BlbXrxnS.cjs.map +1 -0
- package/dist/chunks/transaction-request.builder-DltmruUC.js +296 -0
- package/dist/chunks/transaction-request.builder-DltmruUC.js.map +1 -0
- package/dist/chunks/transaction-request.builder-DrqTWcyC.cjs +303 -0
- package/dist/chunks/transaction-request.builder-DrqTWcyC.cjs.map +1 -0
- package/dist/chunks/{transaction-service-CXjTHCFu.cjs → transaction-service-BcJfyCcq.cjs} +68 -31
- package/dist/chunks/transaction-service-BcJfyCcq.cjs.map +1 -0
- package/dist/chunks/{transaction-service-B7h_4Hg3.js → transaction-service-CnOD3scu.js} +68 -31
- package/dist/chunks/transaction-service-CnOD3scu.js.map +1 -0
- package/dist/chunks/{user-service-D6mTa_WZ.js → user-service-BGP3SZpk.js} +82 -20
- package/dist/chunks/user-service-BGP3SZpk.js.map +1 -0
- package/dist/chunks/{user-service-D1Rn4U8u.cjs → user-service-gITOx4qj.cjs} +82 -20
- package/dist/chunks/user-service-gITOx4qj.cjs.map +1 -0
- package/dist/chunks/{web3-chain-service-BLFxB5TA.cjs → web3-chain-service-6vsVHPjl.cjs} +116 -16
- package/dist/chunks/web3-chain-service-6vsVHPjl.cjs.map +1 -0
- package/dist/chunks/{web3-chain-service-JRSwxr-s.js → web3-chain-service-BcUeeujC.js} +111 -17
- package/dist/chunks/web3-chain-service-BcUeeujC.js.map +1 -0
- package/dist/core/auth/api/auth-api.d.ts +35 -0
- package/dist/core/auth/api/auth-api.d.ts.map +1 -1
- package/dist/core/auth/auth-provider.interface.d.ts +7 -1
- package/dist/core/auth/auth-provider.interface.d.ts.map +1 -1
- package/dist/core/auth/services/auth-service.d.ts +26 -1
- package/dist/core/auth/services/auth-service.d.ts.map +1 -1
- package/dist/core/auth/token-storage.d.ts +3 -2
- package/dist/core/auth/token-storage.d.ts.map +1 -1
- package/dist/core/errors/index.d.ts +75 -6
- package/dist/core/errors/index.d.ts.map +1 -1
- package/dist/core/events/event-emitter.d.ts +106 -0
- package/dist/core/events/event-emitter.d.ts.map +1 -0
- package/dist/core/events/event-types.d.ts +127 -0
- package/dist/core/events/event-types.d.ts.map +1 -0
- package/dist/core/events/index.d.ts +22 -0
- package/dist/core/events/index.d.ts.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/pers-api-client.d.ts +12 -0
- package/dist/core/pers-api-client.d.ts.map +1 -1
- package/dist/core/version.d.ts +15 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core.cjs +26 -12
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +13 -12
- package/dist/core.js.map +1 -1
- package/dist/donation/api/donation-api.d.ts +3 -1
- package/dist/donation/api/donation-api.d.ts.map +1 -1
- package/dist/donation/services/donation-service.d.ts +3 -1
- package/dist/donation/services/donation-service.d.ts.map +1 -1
- package/dist/donation.cjs +14 -1
- package/dist/donation.cjs.map +1 -1
- package/dist/donation.js +3 -2
- package/dist/donation.js.map +1 -1
- package/dist/index.cjs +63 -22
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +15 -13
- package/dist/index.js.map +1 -1
- package/dist/managers/analytics-manager.d.ts +9 -9
- package/dist/managers/api-key-manager.d.ts +8 -6
- package/dist/managers/api-key-manager.d.ts.map +1 -1
- package/dist/managers/auth-manager.d.ts +77 -4
- package/dist/managers/auth-manager.d.ts.map +1 -1
- package/dist/managers/business-manager.d.ts +198 -8
- package/dist/managers/business-manager.d.ts.map +1 -1
- package/dist/managers/campaign-manager.d.ts +67 -83
- package/dist/managers/campaign-manager.d.ts.map +1 -1
- package/dist/managers/donation-manager.d.ts +4 -2
- package/dist/managers/donation-manager.d.ts.map +1 -1
- package/dist/managers/file-manager.d.ts +2 -2
- package/dist/managers/purchase-manager.d.ts +26 -24
- package/dist/managers/purchase-manager.d.ts.map +1 -1
- package/dist/managers/redemption-manager.d.ts +106 -92
- package/dist/managers/redemption-manager.d.ts.map +1 -1
- package/dist/managers/tenant-manager.d.ts +5 -2
- package/dist/managers/tenant-manager.d.ts.map +1 -1
- package/dist/managers/token-manager.d.ts +6 -4
- package/dist/managers/token-manager.d.ts.map +1 -1
- package/dist/managers/transaction-manager.d.ts +22 -19
- package/dist/managers/transaction-manager.d.ts.map +1 -1
- package/dist/managers/user-manager.d.ts +61 -3
- package/dist/managers/user-manager.d.ts.map +1 -1
- package/dist/managers/user-status-manager.d.ts +6 -4
- package/dist/managers/user-status-manager.d.ts.map +1 -1
- package/dist/managers/web3-manager.d.ts.map +1 -1
- package/dist/package.json +2 -2
- package/dist/payment/api/payment-api.d.ts +15 -18
- package/dist/payment/api/payment-api.d.ts.map +1 -1
- package/dist/payment/services/payment-service.d.ts +6 -4
- package/dist/payment/services/payment-service.d.ts.map +1 -1
- package/dist/payment.cjs +225 -9
- package/dist/payment.cjs.map +1 -1
- package/dist/payment.js +210 -2
- package/dist/payment.js.map +1 -1
- package/dist/pers-sdk.d.ts +49 -0
- package/dist/pers-sdk.d.ts.map +1 -1
- package/dist/redemption/api/redemption-api.d.ts +22 -11
- package/dist/redemption/api/redemption-api.d.ts.map +1 -1
- package/dist/redemption/services/redemption-service.d.ts +11 -9
- package/dist/redemption/services/redemption-service.d.ts.map +1 -1
- package/dist/redemption.cjs +353 -9
- package/dist/redemption.cjs.map +1 -1
- package/dist/redemption.js +338 -2
- package/dist/redemption.js.map +1 -1
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts +2 -1
- package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts.map +1 -1
- package/dist/shared/utils/pagination-utils.d.ts +184 -0
- package/dist/shared/utils/pagination-utils.d.ts.map +1 -0
- package/dist/tenant/api/tenant-api.d.ts +6 -1
- package/dist/tenant/api/tenant-api.d.ts.map +1 -1
- package/dist/tenant/services/tenant-service.d.ts +5 -2
- package/dist/tenant/services/tenant-service.d.ts.map +1 -1
- package/dist/tenant.cjs +177 -9
- package/dist/tenant.cjs.map +1 -1
- package/dist/tenant.js +162 -2
- package/dist/tenant.js.map +1 -1
- package/dist/token/api/token-api.d.ts +24 -7
- package/dist/token/api/token-api.d.ts.map +1 -1
- package/dist/token/base/base-token-service.d.ts +5 -4
- package/dist/token/base/base-token-service.d.ts.map +1 -1
- package/dist/token/services/token-service.d.ts +10 -8
- package/dist/token/services/token-service.d.ts.map +1 -1
- package/dist/token/token-sdk.d.ts +5 -34
- package/dist/token/token-sdk.d.ts.map +1 -1
- package/dist/token.cjs +15 -2
- package/dist/token.cjs.map +1 -1
- package/dist/token.js +4 -3
- package/dist/token.js.map +1 -1
- package/dist/transaction/api/transaction-api.d.ts +48 -6
- package/dist/transaction/api/transaction-api.d.ts.map +1 -1
- package/dist/transaction/models/index.d.ts +2 -0
- package/dist/transaction/models/index.d.ts.map +1 -1
- package/dist/transaction/models/transaction-request.builder.d.ts +256 -0
- package/dist/transaction/models/transaction-request.builder.d.ts.map +1 -0
- package/dist/transaction/services/transaction-service.d.ts +12 -4
- package/dist/transaction/services/transaction-service.d.ts.map +1 -1
- package/dist/transaction.cjs +9 -1
- package/dist/transaction.cjs.map +1 -1
- package/dist/transaction.js +3 -1
- package/dist/transaction.js.map +1 -1
- package/dist/user/api/user-api.d.ts +32 -9
- package/dist/user/api/user-api.d.ts.map +1 -1
- package/dist/user/services/user-service.d.ts +25 -2
- package/dist/user/services/user-service.d.ts.map +1 -1
- package/dist/user-status/api/user-status-api.d.ts +6 -4
- package/dist/user-status/api/user-status-api.d.ts.map +1 -1
- package/dist/user-status/index.d.ts +4 -2
- package/dist/user-status/index.d.ts.map +1 -1
- package/dist/user-status/services/user-status-service.d.ts +4 -2
- package/dist/user-status/services/user-status-service.d.ts.map +1 -1
- package/dist/user-status.cjs +34 -14
- package/dist/user-status.cjs.map +1 -1
- package/dist/user-status.js +23 -15
- package/dist/user-status.js.map +1 -1
- package/dist/user.cjs +14 -1
- package/dist/user.cjs.map +1 -1
- package/dist/user.js +3 -2
- package/dist/user.js.map +1 -1
- package/dist/web3-chain.cjs +13 -1
- package/dist/web3-chain.cjs.map +1 -1
- package/dist/web3-chain.js +2 -2
- package/package.json +2 -2
- package/dist/chunks/base-token-service-BSXDwrcq.js.map +0 -1
- package/dist/chunks/base-token-service-CYuqPPs0.cjs.map +0 -1
- package/dist/chunks/business-service-8Xd3d5oY.js +0 -238
- package/dist/chunks/business-service-8Xd3d5oY.js.map +0 -1
- package/dist/chunks/business-service-P9o4cwQL.cjs +0 -241
- package/dist/chunks/business-service-P9o4cwQL.cjs.map +0 -1
- package/dist/chunks/campaign-service-B1tQMNqA.cjs.map +0 -1
- package/dist/chunks/campaign-service-CJPXgFBe.js.map +0 -1
- package/dist/chunks/donation-service-CyJS4DIZ.js.map +0 -1
- package/dist/chunks/donation-service-D-xFrONi.cjs.map +0 -1
- package/dist/chunks/payment-service-B4qx0qiE.cjs +0 -220
- package/dist/chunks/payment-service-B4qx0qiE.cjs.map +0 -1
- package/dist/chunks/payment-service-DfCBFosx.js +0 -217
- package/dist/chunks/payment-service-DfCBFosx.js.map +0 -1
- package/dist/chunks/pers-sdk-DzS7mkm7.cjs.map +0 -1
- package/dist/chunks/pers-sdk-VGEG59g3.js.map +0 -1
- package/dist/chunks/redemption-service-7qbeQxEM.cjs +0 -330
- package/dist/chunks/redemption-service-7qbeQxEM.cjs.map +0 -1
- package/dist/chunks/redemption-service-BT0J5Iy7.js +0 -327
- package/dist/chunks/redemption-service-BT0J5Iy7.js.map +0 -1
- package/dist/chunks/tenant-service-DME24vr1.cjs +0 -157
- package/dist/chunks/tenant-service-DME24vr1.cjs.map +0 -1
- package/dist/chunks/tenant-service-DxtHAlaa.js +0 -154
- package/dist/chunks/tenant-service-DxtHAlaa.js.map +0 -1
- package/dist/chunks/token-service-BWScn8Qa.cjs.map +0 -1
- package/dist/chunks/token-service-CpVwC5Eb.js.map +0 -1
- package/dist/chunks/transaction-service-B7h_4Hg3.js.map +0 -1
- package/dist/chunks/transaction-service-CXjTHCFu.cjs.map +0 -1
- package/dist/chunks/user-service-D1Rn4U8u.cjs.map +0 -1
- package/dist/chunks/user-service-D6mTa_WZ.js.map +0 -1
- package/dist/chunks/web3-chain-service-BLFxB5TA.cjs.map +0 -1
- package/dist/chunks/web3-chain-service-JRSwxr-s.js.map +0 -1
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
import { PaginatedResponseDTO } from '@explorins/pers-shared';
|
|
1
2
|
import { PersApiClient } from '../core/pers-api-client';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
3
|
+
import { PersEventEmitter } from '../core/events';
|
|
4
|
+
import { BusinessService, BusinessMembershipService } from '../business';
|
|
5
|
+
import { PaginationOptions } from '../shared/utils/pagination-utils';
|
|
6
|
+
import type { BusinessDTO, BusinessTypeDTO, BusinessUpdateRequestDTO, BusinessToggleActiveRequestDTO, BusinessMembershipDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
|
|
7
|
+
import { MembershipRole } from '../shared/interfaces/pers-shared-lib.interfaces';
|
|
4
8
|
/**
|
|
5
9
|
* Business Manager - Clean, high-level interface for business operations
|
|
6
10
|
*
|
|
@@ -58,9 +62,13 @@ import type { BusinessDTO, BusinessTypeDTO, BusinessUpdateRequestDTO, BusinessTo
|
|
|
58
62
|
*/
|
|
59
63
|
export declare class BusinessManager {
|
|
60
64
|
private apiClient;
|
|
65
|
+
private events?;
|
|
61
66
|
private businessApi;
|
|
62
67
|
private businessService;
|
|
63
|
-
|
|
68
|
+
private membershipApi;
|
|
69
|
+
private membershipService;
|
|
70
|
+
private userApi;
|
|
71
|
+
constructor(apiClient: PersApiClient, events?: PersEventEmitter | undefined);
|
|
64
72
|
/**
|
|
65
73
|
* Get all active businesses
|
|
66
74
|
*
|
|
@@ -86,7 +94,7 @@ export declare class BusinessManager {
|
|
|
86
94
|
* );
|
|
87
95
|
* ```
|
|
88
96
|
*/
|
|
89
|
-
getActiveBusinesses(): Promise<BusinessDTO
|
|
97
|
+
getActiveBusinesses(options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessDTO>>;
|
|
90
98
|
/**
|
|
91
99
|
* Get business by ID
|
|
92
100
|
*
|
|
@@ -135,7 +143,7 @@ export declare class BusinessManager {
|
|
|
135
143
|
*
|
|
136
144
|
* // Use for transaction verification
|
|
137
145
|
* if (business.isActive) {
|
|
138
|
-
* console.log('
|
|
146
|
+
* console.log('Verified business partner');
|
|
139
147
|
* }
|
|
140
148
|
* ```
|
|
141
149
|
*/
|
|
@@ -164,7 +172,7 @@ export declare class BusinessManager {
|
|
|
164
172
|
* }));
|
|
165
173
|
* ```
|
|
166
174
|
*/
|
|
167
|
-
getBusinessTypes(): Promise<BusinessTypeDTO
|
|
175
|
+
getBusinessTypes(options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessTypeDTO>>;
|
|
168
176
|
/**
|
|
169
177
|
* Get businesses by type
|
|
170
178
|
*
|
|
@@ -194,7 +202,7 @@ export declare class BusinessManager {
|
|
|
194
202
|
* };
|
|
195
203
|
* ```
|
|
196
204
|
*/
|
|
197
|
-
getBusinessesByType(typeId: string): Promise<BusinessDTO
|
|
205
|
+
getBusinessesByType(typeId: string, options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessDTO>>;
|
|
198
206
|
/**
|
|
199
207
|
* Admin: Get all businesses (including inactive)
|
|
200
208
|
*
|
|
@@ -224,7 +232,7 @@ export declare class BusinessManager {
|
|
|
224
232
|
* }));
|
|
225
233
|
* ```
|
|
226
234
|
*/
|
|
227
|
-
getBusinesses(): Promise<BusinessDTO
|
|
235
|
+
getBusinesses(options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessDTO>>;
|
|
228
236
|
/**
|
|
229
237
|
* Admin: Create new business
|
|
230
238
|
*
|
|
@@ -334,5 +342,187 @@ export declare class BusinessManager {
|
|
|
334
342
|
* ```
|
|
335
343
|
*/
|
|
336
344
|
getBusinessService(): BusinessService;
|
|
345
|
+
/**
|
|
346
|
+
* Get all members of a business
|
|
347
|
+
*
|
|
348
|
+
* Retrieves all users who have access to the specified business with their roles.
|
|
349
|
+
* Any member of the business can view the member list.
|
|
350
|
+
*
|
|
351
|
+
* @param businessId - The business UUID
|
|
352
|
+
* @returns Promise resolving to array of business memberships
|
|
353
|
+
* @throws {PersApiError} 401 - Not authenticated
|
|
354
|
+
* @throws {PersApiError} 403 - Not a member of this business
|
|
355
|
+
*
|
|
356
|
+
* @example
|
|
357
|
+
* ```typescript
|
|
358
|
+
* const members = await sdk.business.getMembers('business-123');
|
|
359
|
+
*
|
|
360
|
+
* console.log('Business Members:');
|
|
361
|
+
* members.forEach(member => {
|
|
362
|
+
* console.log(`- User ${member.userId}: ${member.role}`);
|
|
363
|
+
* });
|
|
364
|
+
*
|
|
365
|
+
* // Count members by role
|
|
366
|
+
* const admins = members.filter(m => m.role === 'ADMIN' || m.role === 'OWNER');
|
|
367
|
+
* console.log(`Administrators: ${admins.length}`);
|
|
368
|
+
* ```
|
|
369
|
+
*/
|
|
370
|
+
getMembers(businessId: string, options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessMembershipDTO>>;
|
|
371
|
+
/**
|
|
372
|
+
* Get members filtered by role
|
|
373
|
+
*
|
|
374
|
+
* @param businessId - The business UUID
|
|
375
|
+
* @param role - The role to filter by
|
|
376
|
+
* @returns Promise resolving to array of memberships with the specified role
|
|
377
|
+
*
|
|
378
|
+
* @example
|
|
379
|
+
* ```typescript
|
|
380
|
+
* const { data: owners } = await sdk.business.getMembersByRole('business-123', 'OWNER');
|
|
381
|
+
* console.log(`Business has ${owners.length} owner(s)`);
|
|
382
|
+
* ```
|
|
383
|
+
*/
|
|
384
|
+
getMembersByRole(businessId: string, role: MembershipRole, options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessMembershipDTO>>;
|
|
385
|
+
/**
|
|
386
|
+
* Add a new member to a business
|
|
387
|
+
*
|
|
388
|
+
* Adds a user as a member of the business with the specified role.
|
|
389
|
+
* Requires ADMIN role or higher.
|
|
390
|
+
*
|
|
391
|
+
* @param businessId - The business UUID
|
|
392
|
+
* @param userId - The user UUID to add
|
|
393
|
+
* @param role - The role to assign (defaults to VIEWER)
|
|
394
|
+
* @returns Promise resolving to the created membership
|
|
395
|
+
* @throws {PersApiError} 401 - Not authenticated
|
|
396
|
+
* @throws {PersApiError} 403 - Insufficient role (requires ADMIN)
|
|
397
|
+
* @throws {PersApiError} 404 - User not found
|
|
398
|
+
* @throws {PersApiError} 409 - User is already a member
|
|
399
|
+
*
|
|
400
|
+
* @example
|
|
401
|
+
* ```typescript
|
|
402
|
+
* // Add a new editor to the business
|
|
403
|
+
* const newMember = await sdk.business.addMember(
|
|
404
|
+
* 'business-123',
|
|
405
|
+
* 'user-456',
|
|
406
|
+
* 'EDITOR'
|
|
407
|
+
* );
|
|
408
|
+
*
|
|
409
|
+
* console.log(`Added ${newMember.userId} as ${newMember.role}`);
|
|
410
|
+
* ```
|
|
411
|
+
*/
|
|
412
|
+
addMember(businessId: string, userId: string, role?: MembershipRole): Promise<BusinessMembershipDTO>;
|
|
413
|
+
/**
|
|
414
|
+
* Update a member's role
|
|
415
|
+
*
|
|
416
|
+
* Changes the role of an existing business member.
|
|
417
|
+
* Requires ADMIN role or higher. Cannot demote the last OWNER.
|
|
418
|
+
* Can only assign roles up to your own level (ADMIN cannot create OWNER).
|
|
419
|
+
*
|
|
420
|
+
* @param businessId - The business UUID
|
|
421
|
+
* @param userId - The user UUID to update
|
|
422
|
+
* @param newRole - The new role to assign
|
|
423
|
+
* @returns Promise resolving to the updated membership
|
|
424
|
+
* @throws {PersApiError} 401 - Not authenticated
|
|
425
|
+
* @throws {PersApiError} 403 - Insufficient role (requires ADMIN)
|
|
426
|
+
* @throws {PersApiError} 404 - Membership not found
|
|
427
|
+
* @throws {PersApiError} 400 - Cannot demote last OWNER
|
|
428
|
+
*
|
|
429
|
+
* @example
|
|
430
|
+
* ```typescript
|
|
431
|
+
* // Promote an editor to admin
|
|
432
|
+
* const updated = await sdk.business.updateMemberRole(
|
|
433
|
+
* 'business-123',
|
|
434
|
+
* 'user-456',
|
|
435
|
+
* 'ADMIN'
|
|
436
|
+
* );
|
|
437
|
+
*
|
|
438
|
+
* console.log(`${updated.userId} is now ${updated.role}`);
|
|
439
|
+
* ```
|
|
440
|
+
*/
|
|
441
|
+
updateMemberRole(businessId: string, userId: string, newRole: MembershipRole): Promise<BusinessMembershipDTO>;
|
|
442
|
+
/**
|
|
443
|
+
* Remove a member from a business
|
|
444
|
+
*
|
|
445
|
+
* Removes a user's access to the business.
|
|
446
|
+
* Requires ADMIN role or higher. Cannot remove the last OWNER.
|
|
447
|
+
*
|
|
448
|
+
* @param businessId - The business UUID
|
|
449
|
+
* @param userId - The user UUID to remove
|
|
450
|
+
* @returns Promise resolving to success confirmation
|
|
451
|
+
* @throws {PersApiError} 401 - Not authenticated
|
|
452
|
+
* @throws {PersApiError} 403 - Insufficient role (requires ADMIN)
|
|
453
|
+
* @throws {PersApiError} 404 - Membership not found
|
|
454
|
+
* @throws {PersApiError} 400 - Cannot remove last OWNER
|
|
455
|
+
*
|
|
456
|
+
* @example
|
|
457
|
+
* ```typescript
|
|
458
|
+
* const result = await sdk.business.removeMember('business-123', 'user-456');
|
|
459
|
+
*
|
|
460
|
+
* if (result.success) {
|
|
461
|
+
* console.log('Member removed successfully');
|
|
462
|
+
* }
|
|
463
|
+
* ```
|
|
464
|
+
*/
|
|
465
|
+
removeMember(businessId: string, userId: string): Promise<{
|
|
466
|
+
success: boolean;
|
|
467
|
+
}>;
|
|
468
|
+
/**
|
|
469
|
+
* Get permission flags for a role
|
|
470
|
+
*
|
|
471
|
+
* Returns an object with boolean flags indicating what actions
|
|
472
|
+
* a user with the given role can perform. Useful for UI rendering.
|
|
473
|
+
*
|
|
474
|
+
* @param role - The membership role (or null if not a member)
|
|
475
|
+
* @returns Object with permission flags
|
|
476
|
+
*
|
|
477
|
+
* @example
|
|
478
|
+
* ```typescript
|
|
479
|
+
* const permissions = sdk.business.getPermissions('EDITOR');
|
|
480
|
+
* // { canViewMembers: true, canManageMembers: false, canEditContent: true, canDeleteBusiness: false }
|
|
481
|
+
*
|
|
482
|
+
* if (permissions.canManageMembers) {
|
|
483
|
+
* showAddMemberButton();
|
|
484
|
+
* }
|
|
485
|
+
* ```
|
|
486
|
+
*/
|
|
487
|
+
getPermissions(role: MembershipRole | null): {
|
|
488
|
+
canViewMembers: boolean;
|
|
489
|
+
canManageMembers: boolean;
|
|
490
|
+
canEditContent: boolean;
|
|
491
|
+
canDeleteBusiness: boolean;
|
|
492
|
+
};
|
|
493
|
+
/**
|
|
494
|
+
* Add a member to a business by email address
|
|
495
|
+
*
|
|
496
|
+
* Convenience method that creates or retrieves a user by email and adds them
|
|
497
|
+
* as a member of the business. If the user doesn't exist, they will be created.
|
|
498
|
+
* Requires ADMIN role or higher.
|
|
499
|
+
*
|
|
500
|
+
* @param businessId - The business UUID
|
|
501
|
+
* @param email - The email address of the user to add
|
|
502
|
+
* @param role - The role to assign (defaults to VIEWER)
|
|
503
|
+
* @returns Promise resolving to the created membership
|
|
504
|
+
* @throws {PersApiError} 401 - Not authenticated
|
|
505
|
+
* @throws {PersApiError} 403 - Insufficient role (requires ADMIN)
|
|
506
|
+
* @throws {PersApiError} 409 - User is already a member
|
|
507
|
+
*
|
|
508
|
+
* @example
|
|
509
|
+
* ```typescript
|
|
510
|
+
* // Add a new editor by email - user is created if they don't exist
|
|
511
|
+
* const membership = await sdk.business.addMemberByEmail(
|
|
512
|
+
* 'business-123',
|
|
513
|
+
* 'newuser@example.com',
|
|
514
|
+
* 'EDITOR'
|
|
515
|
+
* );
|
|
516
|
+
*
|
|
517
|
+
* console.log(`Added user ${membership.userId} as ${membership.role}`);
|
|
518
|
+
* ```
|
|
519
|
+
*/
|
|
520
|
+
addMemberByEmail(businessId: string, email: string, role?: MembershipRole): Promise<BusinessMembershipDTO>;
|
|
521
|
+
/**
|
|
522
|
+
* Get the membership service for advanced operations
|
|
523
|
+
*
|
|
524
|
+
* @returns BusinessMembershipService instance
|
|
525
|
+
*/
|
|
526
|
+
getMembershipService(): BusinessMembershipService;
|
|
337
527
|
}
|
|
338
528
|
//# sourceMappingURL=business-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"business-manager.d.ts","sourceRoot":"","sources":["../../src/managers/business-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAe,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"business-manager.d.ts","sourceRoot":"","sources":["../../src/managers/business-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { PaginatedResponseDTO, SortOrder } from '@explorins/pers-shared';
|
|
1
2
|
import { PersApiClient } from '../core/pers-api-client';
|
|
3
|
+
import { PersEventEmitter } from '../core/events';
|
|
2
4
|
import { CampaignService } from '../campaign';
|
|
5
|
+
import { PaginationOptions } from '../shared/utils/pagination-utils';
|
|
3
6
|
import type { CampaignDTO, CampaignCreateRequestDTO, CampaignClaimRequestDTO, CampaignClaimDTO, TokenUnitCreateRequestDTO, CampaignBusinessEngagementCreateRequestDTO, CampaignTriggerDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
|
|
4
7
|
/**
|
|
5
8
|
* Campaign Manager - Clean, high-level interface for campaign operations
|
|
@@ -14,9 +17,9 @@ import type { CampaignDTO, CampaignCreateRequestDTO, CampaignClaimRequestDTO, Ca
|
|
|
14
17
|
*
|
|
15
18
|
* @example Basic Campaign Operations
|
|
16
19
|
* ```typescript
|
|
17
|
-
* // Get all available campaigns
|
|
18
|
-
* const
|
|
19
|
-
* console.log(`${
|
|
20
|
+
* // Get all available campaigns (paginated)
|
|
21
|
+
* const result = await sdk.campaigns.getCampaigns({ page: 1, limit: 20 });
|
|
22
|
+
* console.log(`${result.data.length} of ${result.total} campaigns`);
|
|
20
23
|
*
|
|
21
24
|
* // Get specific campaign details
|
|
22
25
|
* const campaign = await sdk.campaigns.getCampaignById('summer-promo-2024');
|
|
@@ -42,7 +45,8 @@ import type { CampaignDTO, CampaignCreateRequestDTO, CampaignClaimRequestDTO, Ca
|
|
|
42
45
|
* });
|
|
43
46
|
*
|
|
44
47
|
* // Check if user can claim specific campaign
|
|
45
|
-
* const
|
|
48
|
+
* const campaigns = await sdk.campaigns.getCampaigns({ active: true });
|
|
49
|
+
* const eligibleCampaigns = campaigns.data.filter(c =>
|
|
46
50
|
* !userClaims.some(claim => claim.campaignId === c.id)
|
|
47
51
|
* );
|
|
48
52
|
* ```
|
|
@@ -68,42 +72,9 @@ import type { CampaignDTO, CampaignCreateRequestDTO, CampaignClaimRequestDTO, Ca
|
|
|
68
72
|
*/
|
|
69
73
|
export declare class CampaignManager {
|
|
70
74
|
private apiClient;
|
|
75
|
+
private events?;
|
|
71
76
|
private campaignService;
|
|
72
|
-
constructor(apiClient: PersApiClient);
|
|
73
|
-
/**
|
|
74
|
-
* Get all active campaigns
|
|
75
|
-
*
|
|
76
|
-
* Retrieves all currently active campaigns that users can discover and claim.
|
|
77
|
-
* Active campaigns are live promotional offers with valid date ranges and
|
|
78
|
-
* available rewards. Includes campaign details, eligibility requirements, and reward information.
|
|
79
|
-
*
|
|
80
|
-
* @returns Promise resolving to array of active campaign data
|
|
81
|
-
*
|
|
82
|
-
* @example
|
|
83
|
-
* ```typescript
|
|
84
|
-
* const activeCampaigns = await sdk.campaigns.getActiveCampaigns();
|
|
85
|
-
*
|
|
86
|
-
* console.log('Available Campaigns:');
|
|
87
|
-
* activeCampaigns.forEach(campaign => {
|
|
88
|
-
* console.log(`\n📢 ${campaign.title}`);
|
|
89
|
-
* console.log(` ${campaign.description}`);
|
|
90
|
-
* console.log(` Valid: ${campaign.startDate} to ${campaign.endDate}`);
|
|
91
|
-
* console.log(` Rewards: ${campaign.tokenUnits?.length || 0} types`);
|
|
92
|
-
*
|
|
93
|
-
* if (campaign.businessEngagements?.length) {
|
|
94
|
-
* console.log(` Partner businesses: ${campaign.businessEngagements.length}`);
|
|
95
|
-
* }
|
|
96
|
-
* });
|
|
97
|
-
*
|
|
98
|
-
* // Filter campaigns by type or business
|
|
99
|
-
* const hotelCampaigns = activeCampaigns.filter(c =>
|
|
100
|
-
* c.businessEngagements?.some(be =>
|
|
101
|
-
* be.business?.businessType?.name?.includes('Hotel')
|
|
102
|
-
* )
|
|
103
|
-
* );
|
|
104
|
-
* ```
|
|
105
|
-
*/
|
|
106
|
-
getActiveCampaigns(): Promise<CampaignDTO[]>;
|
|
77
|
+
constructor(apiClient: PersApiClient, events?: PersEventEmitter | undefined);
|
|
107
78
|
/**
|
|
108
79
|
* Get campaign by ID
|
|
109
80
|
*
|
|
@@ -119,18 +90,18 @@ export declare class CampaignManager {
|
|
|
119
90
|
* try {
|
|
120
91
|
* const campaign = await sdk.campaigns.getCampaignById('summer-promo-2024');
|
|
121
92
|
*
|
|
122
|
-
* console.log('
|
|
93
|
+
* console.log('Campaign Details:');
|
|
123
94
|
* console.log('Title:', campaign.title);
|
|
124
95
|
* console.log('Description:', campaign.description);
|
|
125
96
|
* console.log('Active:', campaign.isActive);
|
|
126
97
|
* console.log('Period:', `${campaign.startDate} to ${campaign.endDate}`);
|
|
127
98
|
*
|
|
128
|
-
* console.log('\
|
|
99
|
+
* console.log('\nRewards:');
|
|
129
100
|
* campaign.tokenUnits?.forEach(unit => {
|
|
130
101
|
* console.log(`- ${unit.amount} ${unit.token.symbol} (${unit.token.name})`);
|
|
131
102
|
* });
|
|
132
103
|
*
|
|
133
|
-
* console.log('\
|
|
104
|
+
* console.log('\nPartner Businesses:');
|
|
134
105
|
* campaign.businessEngagements?.forEach(engagement => {
|
|
135
106
|
* console.log(`- ${engagement.business.displayName}`);
|
|
136
107
|
* });
|
|
@@ -160,12 +131,12 @@ export declare class CampaignManager {
|
|
|
160
131
|
* businessId: 'partner-hotel-123'
|
|
161
132
|
* });
|
|
162
133
|
*
|
|
163
|
-
* console.log('
|
|
134
|
+
* console.log('Campaign claimed successfully!');
|
|
164
135
|
* console.log('Claim ID:', claim.id);
|
|
165
136
|
* console.log('Claimed at:', claim.claimedAt);
|
|
166
137
|
*
|
|
167
138
|
* if (claim.rewards?.length) {
|
|
168
|
-
* console.log('\
|
|
139
|
+
* console.log('\nRewards received:');
|
|
169
140
|
* claim.rewards.forEach(reward => {
|
|
170
141
|
* console.log(`- ${reward.amount} ${reward.token.symbol}`);
|
|
171
142
|
* });
|
|
@@ -212,15 +183,15 @@ export declare class CampaignManager {
|
|
|
212
183
|
* ```typescript
|
|
213
184
|
* const userClaims = await sdk.campaigns.getUserClaims();
|
|
214
185
|
*
|
|
215
|
-
* console.log(
|
|
186
|
+
* console.log(`Campaign History (${userClaims.length} claims):`);
|
|
216
187
|
*
|
|
217
188
|
* userClaims.forEach((claim, index) => {
|
|
218
189
|
* console.log(`\n${index + 1}. ${claim.campaign.title}`);
|
|
219
|
-
* console.log(`
|
|
220
|
-
* console.log(`
|
|
190
|
+
* console.log(` Claimed: ${new Date(claim.claimedAt).toLocaleDateString()}`);
|
|
191
|
+
* console.log(` Business: ${claim.business?.displayName || 'N/A'}`);
|
|
221
192
|
*
|
|
222
193
|
* if (claim.rewards?.length) {
|
|
223
|
-
* console.log(`
|
|
194
|
+
* console.log(` Rewards:`);
|
|
224
195
|
* claim.rewards.forEach(reward => {
|
|
225
196
|
* console.log(` • ${reward.amount} ${reward.token.symbol}`);
|
|
226
197
|
* });
|
|
@@ -232,44 +203,57 @@ export declare class CampaignManager {
|
|
|
232
203
|
* return total + (claim.rewards?.length || 0);
|
|
233
204
|
* }, 0);
|
|
234
205
|
*
|
|
235
|
-
* console.log(`\
|
|
206
|
+
* console.log(`\nTotal reward items earned: ${totalRewards}`);
|
|
236
207
|
* ```
|
|
237
208
|
*/
|
|
238
|
-
getUserClaims(): Promise<CampaignClaimDTO
|
|
209
|
+
getUserClaims(options?: PaginationOptions): Promise<PaginatedResponseDTO<CampaignClaimDTO>>;
|
|
239
210
|
/**
|
|
240
|
-
*
|
|
211
|
+
* Get campaigns with pagination support
|
|
241
212
|
*
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
* management, reporting, and lifecycle operations.
|
|
213
|
+
* Returns campaigns with pagination metadata for efficient data loading.
|
|
214
|
+
* Intelligent access: Public gets active only, Business gets own campaigns, Admin gets all.
|
|
245
215
|
*
|
|
246
|
-
* @param
|
|
247
|
-
* @
|
|
248
|
-
* @
|
|
216
|
+
* @param options - Pagination and filter options
|
|
217
|
+
* @param options.active - Filter by active status (true/false/undefined for all)
|
|
218
|
+
* @param options.businessId - Filter by business engagement
|
|
219
|
+
* @param options.page - Page number (1-based, default: 1)
|
|
220
|
+
* @param options.limit - Items per page (default: 50)
|
|
221
|
+
* @param options.sortBy - Sort field ('name', 'createdAt', 'startDate')
|
|
222
|
+
* @param options.sortOrder - Sort direction ('ASC' or 'DESC')
|
|
223
|
+
* @returns Promise resolving to paginated campaigns with metadata
|
|
249
224
|
*
|
|
250
225
|
* @example
|
|
251
226
|
* ```typescript
|
|
252
|
-
* //
|
|
253
|
-
* const
|
|
254
|
-
*
|
|
255
|
-
*
|
|
256
|
-
*
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
*
|
|
260
|
-
*
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
*
|
|
264
|
-
*
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
*
|
|
269
|
-
*
|
|
227
|
+
* // Get first page of campaigns
|
|
228
|
+
* const result = await sdk.campaigns.getCampaigns({ page: 1, limit: 10 });
|
|
229
|
+
* console.log(`Showing ${result.data.length} of ${result.total} campaigns`);
|
|
230
|
+
* console.log(`Has more pages: ${result.hasMore}`);
|
|
231
|
+
*
|
|
232
|
+
* // Get campaigns for a specific business
|
|
233
|
+
* const businessCampaigns = await sdk.campaigns.getCampaigns({
|
|
234
|
+
* businessId: 'business-123',
|
|
235
|
+
* page: 1,
|
|
236
|
+
* limit: 20
|
|
237
|
+
* });
|
|
238
|
+
*
|
|
239
|
+
* // Get active campaigns sorted by creation date
|
|
240
|
+
* const activeCampaigns = await sdk.campaigns.getCampaigns({
|
|
241
|
+
* active: true,
|
|
242
|
+
* sortBy: 'createdAt',
|
|
243
|
+
* sortOrder: 'DESC',
|
|
244
|
+
* page: 1,
|
|
245
|
+
* limit: 25
|
|
246
|
+
* });
|
|
270
247
|
* ```
|
|
271
248
|
*/
|
|
272
|
-
|
|
249
|
+
getCampaigns(options?: {
|
|
250
|
+
active?: boolean;
|
|
251
|
+
businessId?: string;
|
|
252
|
+
page?: number;
|
|
253
|
+
limit?: number;
|
|
254
|
+
sortBy?: 'name' | 'createdAt' | 'startDate';
|
|
255
|
+
sortOrder?: SortOrder;
|
|
256
|
+
}): Promise<PaginatedResponseDTO<CampaignDTO>>;
|
|
273
257
|
/**
|
|
274
258
|
* Admin: Create new campaign
|
|
275
259
|
*
|
|
@@ -294,7 +278,7 @@ export declare class CampaignManager {
|
|
|
294
278
|
* campaignType: 'SEASONAL'
|
|
295
279
|
* });
|
|
296
280
|
*
|
|
297
|
-
* console.log('
|
|
281
|
+
* console.log('Campaign created:', campaign.title);
|
|
298
282
|
* console.log('Campaign ID:', campaign.id);
|
|
299
283
|
*
|
|
300
284
|
* // Set up campaign rewards
|
|
@@ -350,7 +334,7 @@ export declare class CampaignManager {
|
|
|
350
334
|
* const updated = await sdk.campaigns.toggleCampaignStatus('problematic-campaign');
|
|
351
335
|
*
|
|
352
336
|
* console.log(`Campaign ${updated.isActive ? 'activated' : 'deactivated'}`);
|
|
353
|
-
* console.log('Status:', updated.isActive ? '
|
|
337
|
+
* console.log('Status:', updated.isActive ? 'Active' : 'Inactive');
|
|
354
338
|
* ```
|
|
355
339
|
*/
|
|
356
340
|
toggleCampaignStatus(campaignId: string): Promise<CampaignDTO>;
|
|
@@ -396,7 +380,7 @@ export declare class CampaignManager {
|
|
|
396
380
|
* });
|
|
397
381
|
* ```
|
|
398
382
|
*/
|
|
399
|
-
getCampaignTriggers(): Promise<CampaignTriggerDTO
|
|
383
|
+
getCampaignTriggers(options?: PaginationOptions): Promise<PaginatedResponseDTO<CampaignTriggerDTO>>;
|
|
400
384
|
/**
|
|
401
385
|
* Admin: Set campaign trigger
|
|
402
386
|
*
|
|
@@ -576,7 +560,7 @@ export declare class CampaignManager {
|
|
|
576
560
|
* // Admin operation - get campaign performance data
|
|
577
561
|
* const allClaims = await sdk.campaigns.getCampaignClaims();
|
|
578
562
|
*
|
|
579
|
-
* console.log(
|
|
563
|
+
* console.log(`Campaign Performance Report:`);
|
|
580
564
|
* console.log(`Total claims: ${allClaims.length}`);
|
|
581
565
|
*
|
|
582
566
|
* // Analyze claims by campaign
|
|
@@ -592,7 +576,7 @@ export declare class CampaignManager {
|
|
|
592
576
|
* });
|
|
593
577
|
* ```
|
|
594
578
|
*/
|
|
595
|
-
getCampaignClaims(): Promise<CampaignClaimDTO
|
|
579
|
+
getCampaignClaims(options?: PaginationOptions): Promise<PaginatedResponseDTO<CampaignClaimDTO>>;
|
|
596
580
|
/**
|
|
597
581
|
* Admin: Get campaign claims by user ID
|
|
598
582
|
*
|
|
@@ -626,7 +610,7 @@ export declare class CampaignManager {
|
|
|
626
610
|
* console.log(`\nTotal rewards earned: ${totalRewards}`);
|
|
627
611
|
* ```
|
|
628
612
|
*/
|
|
629
|
-
getCampaignClaimsByUserId(userId: string): Promise<CampaignClaimDTO
|
|
613
|
+
getCampaignClaimsByUserId(userId: string, options?: PaginationOptions): Promise<PaginatedResponseDTO<CampaignClaimDTO>>;
|
|
630
614
|
/**
|
|
631
615
|
* Admin: Get campaign claims by business ID
|
|
632
616
|
*
|
|
@@ -665,7 +649,7 @@ export declare class CampaignManager {
|
|
|
665
649
|
* console.log(`\nTotal rewards distributed: ${totalRewardsDistributed}`);
|
|
666
650
|
* ```
|
|
667
651
|
*/
|
|
668
|
-
getCampaignClaimsByBusinessId(businessId: string): Promise<CampaignClaimDTO
|
|
652
|
+
getCampaignClaimsByBusinessId(businessId: string, options?: PaginationOptions): Promise<PaginatedResponseDTO<CampaignClaimDTO>>;
|
|
669
653
|
/**
|
|
670
654
|
* Get the full campaign service for advanced operations
|
|
671
655
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campaign-manager.d.ts","sourceRoot":"","sources":["../../src/managers/campaign-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAe,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,EACzB,0CAA0C,EAC1C,kBAAkB,EACnB,MAAM,iDAAiD,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"campaign-manager.d.ts","sourceRoot":"","sources":["../../src/managers/campaign-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { PaginatedResponseDTO } from '@explorins/pers-shared';
|
|
1
2
|
import { PersApiClient } from '../core/pers-api-client';
|
|
2
3
|
import { DonationService } from '../donation';
|
|
4
|
+
import { PaginationOptions } from '../shared/utils/pagination-utils';
|
|
3
5
|
import type { DonationTypeDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
|
|
4
6
|
/**
|
|
5
7
|
* Donation Manager - Clean, high-level interface for donation operations
|
|
@@ -14,9 +16,9 @@ export declare class DonationManager {
|
|
|
14
16
|
/**
|
|
15
17
|
* Get available donation types
|
|
16
18
|
*
|
|
17
|
-
* @returns Promise resolving to
|
|
19
|
+
* @returns Promise resolving to paginated donation types
|
|
18
20
|
*/
|
|
19
|
-
getDonationTypes(): Promise<DonationTypeDTO
|
|
21
|
+
getDonationTypes(options?: PaginationOptions): Promise<PaginatedResponseDTO<DonationTypeDTO>>;
|
|
20
22
|
/**
|
|
21
23
|
* Get the full donation service for advanced operations
|
|
22
24
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"donation-manager.d.ts","sourceRoot":"","sources":["../../src/managers/donation-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAe,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAEvF;;;;;GAKG;AACH,qBAAa,eAAe;IAGd,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,eAAe,CAAkB;gBAErB,SAAS,EAAE,aAAa;IAK5C;;;;OAIG;IACG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"donation-manager.d.ts","sourceRoot":"","sources":["../../src/managers/donation-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAe,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAEvF;;;;;GAKG;AACH,qBAAa,eAAe;IAGd,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,eAAe,CAAkB;gBAErB,SAAS,EAAE,aAAa;IAK5C;;;;OAIG;IACG,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAInG;;;;OAIG;IACH,kBAAkB,IAAI,eAAe;CAGtC"}
|
|
@@ -106,9 +106,9 @@ export declare class FileManager {
|
|
|
106
106
|
* });
|
|
107
107
|
*
|
|
108
108
|
* if (uploadResponse.ok) {
|
|
109
|
-
* console.log('
|
|
109
|
+
* console.log('Campaign banner uploaded successfully');
|
|
110
110
|
* } else {
|
|
111
|
-
* console.log('
|
|
111
|
+
* console.log('Upload failed:', uploadResponse.status);
|
|
112
112
|
* }
|
|
113
113
|
* }
|
|
114
114
|
*
|