perspectapi-ts-sdk 3.3.0 → 3.5.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/index.d.mts +81 -0
- package/dist/index.d.ts +81 -0
- package/dist/index.js +100 -0
- package/dist/index.mjs +100 -0
- package/package.json +1 -1
- package/src/client/site-users-client.ts +139 -0
package/dist/index.d.mts
CHANGED
|
@@ -2480,6 +2480,87 @@ declare class SiteUsersClient extends BaseClient {
|
|
|
2480
2480
|
success: boolean;
|
|
2481
2481
|
new_balance_cents: number;
|
|
2482
2482
|
}>>;
|
|
2483
|
+
/**
|
|
2484
|
+
* List orders for a site (admin only)
|
|
2485
|
+
* @param siteName - The site name
|
|
2486
|
+
* @param params - Query params (limit, offset, status, fulfillment_status)
|
|
2487
|
+
*/
|
|
2488
|
+
listOrders(siteName: string, params?: {
|
|
2489
|
+
limit?: number;
|
|
2490
|
+
offset?: number;
|
|
2491
|
+
status?: string;
|
|
2492
|
+
fulfillment_status?: string;
|
|
2493
|
+
}): Promise<ApiResponse<{
|
|
2494
|
+
orders: any[];
|
|
2495
|
+
}>>;
|
|
2496
|
+
/**
|
|
2497
|
+
* Update order fulfillment status (admin only)
|
|
2498
|
+
* @param siteName - The site name
|
|
2499
|
+
* @param sessionId - Checkout session ID
|
|
2500
|
+
* @param data - Fulfillment data
|
|
2501
|
+
*/
|
|
2502
|
+
updateOrderFulfillment(siteName: string, sessionId: string, data: {
|
|
2503
|
+
fulfillment_status: string;
|
|
2504
|
+
tracking_number?: string;
|
|
2505
|
+
notes?: string;
|
|
2506
|
+
}): Promise<ApiResponse<{
|
|
2507
|
+
success: boolean;
|
|
2508
|
+
}>>;
|
|
2509
|
+
/**
|
|
2510
|
+
* Get a user's orders (admin only)
|
|
2511
|
+
* @param siteName - The site name
|
|
2512
|
+
* @param userId - User ID
|
|
2513
|
+
* @param params - Pagination params
|
|
2514
|
+
*/
|
|
2515
|
+
getUserOrders(siteName: string, userId: string, params?: {
|
|
2516
|
+
limit?: number;
|
|
2517
|
+
offset?: number;
|
|
2518
|
+
}): Promise<ApiResponse<{
|
|
2519
|
+
orders: SiteUserOrder[];
|
|
2520
|
+
}>>;
|
|
2521
|
+
/**
|
|
2522
|
+
* Get a user's subscriptions (admin only)
|
|
2523
|
+
* @param siteName - The site name
|
|
2524
|
+
* @param userId - User ID
|
|
2525
|
+
*/
|
|
2526
|
+
getUserSubscriptions(siteName: string, userId: string): Promise<ApiResponse<{
|
|
2527
|
+
subscriptions: SiteUserSubscription[];
|
|
2528
|
+
}>>;
|
|
2529
|
+
/**
|
|
2530
|
+
* Pause a user's subscription (admin only)
|
|
2531
|
+
* @param siteName - The site name
|
|
2532
|
+
* @param userId - User ID
|
|
2533
|
+
* @param subscriptionId - Subscription ID
|
|
2534
|
+
* @param resumesAt - Optional ISO date string when subscription should auto-resume
|
|
2535
|
+
*/
|
|
2536
|
+
pauseUserSubscription(siteName: string, userId: string, subscriptionId: string, resumesAt?: string): Promise<ApiResponse<{
|
|
2537
|
+
success: boolean;
|
|
2538
|
+
}>>;
|
|
2539
|
+
/**
|
|
2540
|
+
* Resume a user's paused subscription (admin only)
|
|
2541
|
+
* @param siteName - The site name
|
|
2542
|
+
* @param userId - User ID
|
|
2543
|
+
* @param subscriptionId - Subscription ID
|
|
2544
|
+
*/
|
|
2545
|
+
resumeUserSubscription(siteName: string, userId: string, subscriptionId: string): Promise<ApiResponse<{
|
|
2546
|
+
success: boolean;
|
|
2547
|
+
}>>;
|
|
2548
|
+
/**
|
|
2549
|
+
* Cancel a user's subscription (admin only)
|
|
2550
|
+
* @param siteName - The site name
|
|
2551
|
+
* @param userId - User ID
|
|
2552
|
+
* @param subscriptionId - Subscription ID
|
|
2553
|
+
*/
|
|
2554
|
+
cancelUserSubscription(siteName: string, userId: string, subscriptionId: string): Promise<ApiResponse<{
|
|
2555
|
+
success: boolean;
|
|
2556
|
+
message: string;
|
|
2557
|
+
}>>;
|
|
2558
|
+
/**
|
|
2559
|
+
* Get a user's credit balance (admin only)
|
|
2560
|
+
* @param siteName - The site name
|
|
2561
|
+
* @param userId - User ID
|
|
2562
|
+
*/
|
|
2563
|
+
getUserCreditBalance(siteName: string, userId: string): Promise<ApiResponse<CreditBalance>>;
|
|
2483
2564
|
}
|
|
2484
2565
|
|
|
2485
2566
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -2480,6 +2480,87 @@ declare class SiteUsersClient extends BaseClient {
|
|
|
2480
2480
|
success: boolean;
|
|
2481
2481
|
new_balance_cents: number;
|
|
2482
2482
|
}>>;
|
|
2483
|
+
/**
|
|
2484
|
+
* List orders for a site (admin only)
|
|
2485
|
+
* @param siteName - The site name
|
|
2486
|
+
* @param params - Query params (limit, offset, status, fulfillment_status)
|
|
2487
|
+
*/
|
|
2488
|
+
listOrders(siteName: string, params?: {
|
|
2489
|
+
limit?: number;
|
|
2490
|
+
offset?: number;
|
|
2491
|
+
status?: string;
|
|
2492
|
+
fulfillment_status?: string;
|
|
2493
|
+
}): Promise<ApiResponse<{
|
|
2494
|
+
orders: any[];
|
|
2495
|
+
}>>;
|
|
2496
|
+
/**
|
|
2497
|
+
* Update order fulfillment status (admin only)
|
|
2498
|
+
* @param siteName - The site name
|
|
2499
|
+
* @param sessionId - Checkout session ID
|
|
2500
|
+
* @param data - Fulfillment data
|
|
2501
|
+
*/
|
|
2502
|
+
updateOrderFulfillment(siteName: string, sessionId: string, data: {
|
|
2503
|
+
fulfillment_status: string;
|
|
2504
|
+
tracking_number?: string;
|
|
2505
|
+
notes?: string;
|
|
2506
|
+
}): Promise<ApiResponse<{
|
|
2507
|
+
success: boolean;
|
|
2508
|
+
}>>;
|
|
2509
|
+
/**
|
|
2510
|
+
* Get a user's orders (admin only)
|
|
2511
|
+
* @param siteName - The site name
|
|
2512
|
+
* @param userId - User ID
|
|
2513
|
+
* @param params - Pagination params
|
|
2514
|
+
*/
|
|
2515
|
+
getUserOrders(siteName: string, userId: string, params?: {
|
|
2516
|
+
limit?: number;
|
|
2517
|
+
offset?: number;
|
|
2518
|
+
}): Promise<ApiResponse<{
|
|
2519
|
+
orders: SiteUserOrder[];
|
|
2520
|
+
}>>;
|
|
2521
|
+
/**
|
|
2522
|
+
* Get a user's subscriptions (admin only)
|
|
2523
|
+
* @param siteName - The site name
|
|
2524
|
+
* @param userId - User ID
|
|
2525
|
+
*/
|
|
2526
|
+
getUserSubscriptions(siteName: string, userId: string): Promise<ApiResponse<{
|
|
2527
|
+
subscriptions: SiteUserSubscription[];
|
|
2528
|
+
}>>;
|
|
2529
|
+
/**
|
|
2530
|
+
* Pause a user's subscription (admin only)
|
|
2531
|
+
* @param siteName - The site name
|
|
2532
|
+
* @param userId - User ID
|
|
2533
|
+
* @param subscriptionId - Subscription ID
|
|
2534
|
+
* @param resumesAt - Optional ISO date string when subscription should auto-resume
|
|
2535
|
+
*/
|
|
2536
|
+
pauseUserSubscription(siteName: string, userId: string, subscriptionId: string, resumesAt?: string): Promise<ApiResponse<{
|
|
2537
|
+
success: boolean;
|
|
2538
|
+
}>>;
|
|
2539
|
+
/**
|
|
2540
|
+
* Resume a user's paused subscription (admin only)
|
|
2541
|
+
* @param siteName - The site name
|
|
2542
|
+
* @param userId - User ID
|
|
2543
|
+
* @param subscriptionId - Subscription ID
|
|
2544
|
+
*/
|
|
2545
|
+
resumeUserSubscription(siteName: string, userId: string, subscriptionId: string): Promise<ApiResponse<{
|
|
2546
|
+
success: boolean;
|
|
2547
|
+
}>>;
|
|
2548
|
+
/**
|
|
2549
|
+
* Cancel a user's subscription (admin only)
|
|
2550
|
+
* @param siteName - The site name
|
|
2551
|
+
* @param userId - User ID
|
|
2552
|
+
* @param subscriptionId - Subscription ID
|
|
2553
|
+
*/
|
|
2554
|
+
cancelUserSubscription(siteName: string, userId: string, subscriptionId: string): Promise<ApiResponse<{
|
|
2555
|
+
success: boolean;
|
|
2556
|
+
message: string;
|
|
2557
|
+
}>>;
|
|
2558
|
+
/**
|
|
2559
|
+
* Get a user's credit balance (admin only)
|
|
2560
|
+
* @param siteName - The site name
|
|
2561
|
+
* @param userId - User ID
|
|
2562
|
+
*/
|
|
2563
|
+
getUserCreditBalance(siteName: string, userId: string): Promise<ApiResponse<CreditBalance>>;
|
|
2483
2564
|
}
|
|
2484
2565
|
|
|
2485
2566
|
/**
|
package/dist/index.js
CHANGED
|
@@ -2614,6 +2614,106 @@ var SiteUsersClient = class extends BaseClient {
|
|
|
2614
2614
|
csrfToken
|
|
2615
2615
|
);
|
|
2616
2616
|
}
|
|
2617
|
+
/**
|
|
2618
|
+
* List orders for a site (admin only)
|
|
2619
|
+
* @param siteName - The site name
|
|
2620
|
+
* @param params - Query params (limit, offset, status, fulfillment_status)
|
|
2621
|
+
*/
|
|
2622
|
+
async listOrders(siteName, params) {
|
|
2623
|
+
return this.http.get(
|
|
2624
|
+
this.buildPath(this.siteUserEndpoint(siteName, "/users/orders")),
|
|
2625
|
+
params
|
|
2626
|
+
);
|
|
2627
|
+
}
|
|
2628
|
+
/**
|
|
2629
|
+
* Update order fulfillment status (admin only)
|
|
2630
|
+
* @param siteName - The site name
|
|
2631
|
+
* @param sessionId - Checkout session ID
|
|
2632
|
+
* @param data - Fulfillment data
|
|
2633
|
+
*/
|
|
2634
|
+
async updateOrderFulfillment(siteName, sessionId, data) {
|
|
2635
|
+
return this.patch(
|
|
2636
|
+
this.siteUserEndpoint(siteName, `/users/orders/${encodeURIComponent(sessionId)}/fulfillment`),
|
|
2637
|
+
data
|
|
2638
|
+
);
|
|
2639
|
+
}
|
|
2640
|
+
// ============================================================================
|
|
2641
|
+
// ADMIN USER-SCOPED ENDPOINTS (API key auth required)
|
|
2642
|
+
// These mirror /me/* endpoints but target a specific user by ID.
|
|
2643
|
+
// ============================================================================
|
|
2644
|
+
/**
|
|
2645
|
+
* Get a user's orders (admin only)
|
|
2646
|
+
* @param siteName - The site name
|
|
2647
|
+
* @param userId - User ID
|
|
2648
|
+
* @param params - Pagination params
|
|
2649
|
+
*/
|
|
2650
|
+
async getUserOrders(siteName, userId, params) {
|
|
2651
|
+
return this.http.get(
|
|
2652
|
+
this.buildPath(this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/orders`)),
|
|
2653
|
+
params
|
|
2654
|
+
);
|
|
2655
|
+
}
|
|
2656
|
+
/**
|
|
2657
|
+
* Get a user's subscriptions (admin only)
|
|
2658
|
+
* @param siteName - The site name
|
|
2659
|
+
* @param userId - User ID
|
|
2660
|
+
*/
|
|
2661
|
+
async getUserSubscriptions(siteName, userId) {
|
|
2662
|
+
return this.getSingle(
|
|
2663
|
+
this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/subscriptions`)
|
|
2664
|
+
);
|
|
2665
|
+
}
|
|
2666
|
+
/**
|
|
2667
|
+
* Pause a user's subscription (admin only)
|
|
2668
|
+
* @param siteName - The site name
|
|
2669
|
+
* @param userId - User ID
|
|
2670
|
+
* @param subscriptionId - Subscription ID
|
|
2671
|
+
* @param resumesAt - Optional ISO date string when subscription should auto-resume
|
|
2672
|
+
*/
|
|
2673
|
+
async pauseUserSubscription(siteName, userId, subscriptionId, resumesAt) {
|
|
2674
|
+
const body = {};
|
|
2675
|
+
if (resumesAt) {
|
|
2676
|
+
body.resumes_at = resumesAt;
|
|
2677
|
+
}
|
|
2678
|
+
return this.create(
|
|
2679
|
+
this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/subscriptions/${encodeURIComponent(subscriptionId)}/pause`),
|
|
2680
|
+
body
|
|
2681
|
+
);
|
|
2682
|
+
}
|
|
2683
|
+
/**
|
|
2684
|
+
* Resume a user's paused subscription (admin only)
|
|
2685
|
+
* @param siteName - The site name
|
|
2686
|
+
* @param userId - User ID
|
|
2687
|
+
* @param subscriptionId - Subscription ID
|
|
2688
|
+
*/
|
|
2689
|
+
async resumeUserSubscription(siteName, userId, subscriptionId) {
|
|
2690
|
+
return this.create(
|
|
2691
|
+
this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/subscriptions/${encodeURIComponent(subscriptionId)}/resume`),
|
|
2692
|
+
{}
|
|
2693
|
+
);
|
|
2694
|
+
}
|
|
2695
|
+
/**
|
|
2696
|
+
* Cancel a user's subscription (admin only)
|
|
2697
|
+
* @param siteName - The site name
|
|
2698
|
+
* @param userId - User ID
|
|
2699
|
+
* @param subscriptionId - Subscription ID
|
|
2700
|
+
*/
|
|
2701
|
+
async cancelUserSubscription(siteName, userId, subscriptionId) {
|
|
2702
|
+
return this.create(
|
|
2703
|
+
this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/subscriptions/${encodeURIComponent(subscriptionId)}/cancel`),
|
|
2704
|
+
{}
|
|
2705
|
+
);
|
|
2706
|
+
}
|
|
2707
|
+
/**
|
|
2708
|
+
* Get a user's credit balance (admin only)
|
|
2709
|
+
* @param siteName - The site name
|
|
2710
|
+
* @param userId - User ID
|
|
2711
|
+
*/
|
|
2712
|
+
async getUserCreditBalance(siteName, userId) {
|
|
2713
|
+
return this.getSingle(
|
|
2714
|
+
this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/credits/balance`)
|
|
2715
|
+
);
|
|
2716
|
+
}
|
|
2617
2717
|
};
|
|
2618
2718
|
|
|
2619
2719
|
// src/client/bundles-client.ts
|
package/dist/index.mjs
CHANGED
|
@@ -2551,6 +2551,106 @@ var SiteUsersClient = class extends BaseClient {
|
|
|
2551
2551
|
csrfToken
|
|
2552
2552
|
);
|
|
2553
2553
|
}
|
|
2554
|
+
/**
|
|
2555
|
+
* List orders for a site (admin only)
|
|
2556
|
+
* @param siteName - The site name
|
|
2557
|
+
* @param params - Query params (limit, offset, status, fulfillment_status)
|
|
2558
|
+
*/
|
|
2559
|
+
async listOrders(siteName, params) {
|
|
2560
|
+
return this.http.get(
|
|
2561
|
+
this.buildPath(this.siteUserEndpoint(siteName, "/users/orders")),
|
|
2562
|
+
params
|
|
2563
|
+
);
|
|
2564
|
+
}
|
|
2565
|
+
/**
|
|
2566
|
+
* Update order fulfillment status (admin only)
|
|
2567
|
+
* @param siteName - The site name
|
|
2568
|
+
* @param sessionId - Checkout session ID
|
|
2569
|
+
* @param data - Fulfillment data
|
|
2570
|
+
*/
|
|
2571
|
+
async updateOrderFulfillment(siteName, sessionId, data) {
|
|
2572
|
+
return this.patch(
|
|
2573
|
+
this.siteUserEndpoint(siteName, `/users/orders/${encodeURIComponent(sessionId)}/fulfillment`),
|
|
2574
|
+
data
|
|
2575
|
+
);
|
|
2576
|
+
}
|
|
2577
|
+
// ============================================================================
|
|
2578
|
+
// ADMIN USER-SCOPED ENDPOINTS (API key auth required)
|
|
2579
|
+
// These mirror /me/* endpoints but target a specific user by ID.
|
|
2580
|
+
// ============================================================================
|
|
2581
|
+
/**
|
|
2582
|
+
* Get a user's orders (admin only)
|
|
2583
|
+
* @param siteName - The site name
|
|
2584
|
+
* @param userId - User ID
|
|
2585
|
+
* @param params - Pagination params
|
|
2586
|
+
*/
|
|
2587
|
+
async getUserOrders(siteName, userId, params) {
|
|
2588
|
+
return this.http.get(
|
|
2589
|
+
this.buildPath(this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/orders`)),
|
|
2590
|
+
params
|
|
2591
|
+
);
|
|
2592
|
+
}
|
|
2593
|
+
/**
|
|
2594
|
+
* Get a user's subscriptions (admin only)
|
|
2595
|
+
* @param siteName - The site name
|
|
2596
|
+
* @param userId - User ID
|
|
2597
|
+
*/
|
|
2598
|
+
async getUserSubscriptions(siteName, userId) {
|
|
2599
|
+
return this.getSingle(
|
|
2600
|
+
this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/subscriptions`)
|
|
2601
|
+
);
|
|
2602
|
+
}
|
|
2603
|
+
/**
|
|
2604
|
+
* Pause a user's subscription (admin only)
|
|
2605
|
+
* @param siteName - The site name
|
|
2606
|
+
* @param userId - User ID
|
|
2607
|
+
* @param subscriptionId - Subscription ID
|
|
2608
|
+
* @param resumesAt - Optional ISO date string when subscription should auto-resume
|
|
2609
|
+
*/
|
|
2610
|
+
async pauseUserSubscription(siteName, userId, subscriptionId, resumesAt) {
|
|
2611
|
+
const body = {};
|
|
2612
|
+
if (resumesAt) {
|
|
2613
|
+
body.resumes_at = resumesAt;
|
|
2614
|
+
}
|
|
2615
|
+
return this.create(
|
|
2616
|
+
this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/subscriptions/${encodeURIComponent(subscriptionId)}/pause`),
|
|
2617
|
+
body
|
|
2618
|
+
);
|
|
2619
|
+
}
|
|
2620
|
+
/**
|
|
2621
|
+
* Resume a user's paused subscription (admin only)
|
|
2622
|
+
* @param siteName - The site name
|
|
2623
|
+
* @param userId - User ID
|
|
2624
|
+
* @param subscriptionId - Subscription ID
|
|
2625
|
+
*/
|
|
2626
|
+
async resumeUserSubscription(siteName, userId, subscriptionId) {
|
|
2627
|
+
return this.create(
|
|
2628
|
+
this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/subscriptions/${encodeURIComponent(subscriptionId)}/resume`),
|
|
2629
|
+
{}
|
|
2630
|
+
);
|
|
2631
|
+
}
|
|
2632
|
+
/**
|
|
2633
|
+
* Cancel a user's subscription (admin only)
|
|
2634
|
+
* @param siteName - The site name
|
|
2635
|
+
* @param userId - User ID
|
|
2636
|
+
* @param subscriptionId - Subscription ID
|
|
2637
|
+
*/
|
|
2638
|
+
async cancelUserSubscription(siteName, userId, subscriptionId) {
|
|
2639
|
+
return this.create(
|
|
2640
|
+
this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/subscriptions/${encodeURIComponent(subscriptionId)}/cancel`),
|
|
2641
|
+
{}
|
|
2642
|
+
);
|
|
2643
|
+
}
|
|
2644
|
+
/**
|
|
2645
|
+
* Get a user's credit balance (admin only)
|
|
2646
|
+
* @param siteName - The site name
|
|
2647
|
+
* @param userId - User ID
|
|
2648
|
+
*/
|
|
2649
|
+
async getUserCreditBalance(siteName, userId) {
|
|
2650
|
+
return this.getSingle(
|
|
2651
|
+
this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/credits/balance`)
|
|
2652
|
+
);
|
|
2653
|
+
}
|
|
2554
2654
|
};
|
|
2555
2655
|
|
|
2556
2656
|
// src/client/bundles-client.ts
|
package/package.json
CHANGED
|
@@ -464,4 +464,143 @@ export class SiteUsersClient extends BaseClient {
|
|
|
464
464
|
csrfToken
|
|
465
465
|
);
|
|
466
466
|
}
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* List orders for a site (admin only)
|
|
470
|
+
* @param siteName - The site name
|
|
471
|
+
* @param params - Query params (limit, offset, status, fulfillment_status)
|
|
472
|
+
*/
|
|
473
|
+
async listOrders(
|
|
474
|
+
siteName: string,
|
|
475
|
+
params?: { limit?: number; offset?: number; status?: string; fulfillment_status?: string }
|
|
476
|
+
): Promise<ApiResponse<{ orders: any[] }>> {
|
|
477
|
+
return this.http.get<{ orders: any[] }>(
|
|
478
|
+
this.buildPath(this.siteUserEndpoint(siteName, '/users/orders')),
|
|
479
|
+
params
|
|
480
|
+
);
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
/**
|
|
484
|
+
* Update order fulfillment status (admin only)
|
|
485
|
+
* @param siteName - The site name
|
|
486
|
+
* @param sessionId - Checkout session ID
|
|
487
|
+
* @param data - Fulfillment data
|
|
488
|
+
*/
|
|
489
|
+
async updateOrderFulfillment(
|
|
490
|
+
siteName: string,
|
|
491
|
+
sessionId: string,
|
|
492
|
+
data: { fulfillment_status: string; tracking_number?: string; notes?: string }
|
|
493
|
+
): Promise<ApiResponse<{ success: boolean }>> {
|
|
494
|
+
return this.patch<typeof data, { success: boolean }>(
|
|
495
|
+
this.siteUserEndpoint(siteName, `/users/orders/${encodeURIComponent(sessionId)}/fulfillment`),
|
|
496
|
+
data
|
|
497
|
+
);
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
// ============================================================================
|
|
501
|
+
// ADMIN USER-SCOPED ENDPOINTS (API key auth required)
|
|
502
|
+
// These mirror /me/* endpoints but target a specific user by ID.
|
|
503
|
+
// ============================================================================
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* Get a user's orders (admin only)
|
|
507
|
+
* @param siteName - The site name
|
|
508
|
+
* @param userId - User ID
|
|
509
|
+
* @param params - Pagination params
|
|
510
|
+
*/
|
|
511
|
+
async getUserOrders(
|
|
512
|
+
siteName: string,
|
|
513
|
+
userId: string,
|
|
514
|
+
params?: { limit?: number; offset?: number }
|
|
515
|
+
): Promise<ApiResponse<{ orders: SiteUserOrder[] }>> {
|
|
516
|
+
return this.http.get<{ orders: SiteUserOrder[] }>(
|
|
517
|
+
this.buildPath(this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/orders`)),
|
|
518
|
+
params
|
|
519
|
+
);
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
/**
|
|
523
|
+
* Get a user's subscriptions (admin only)
|
|
524
|
+
* @param siteName - The site name
|
|
525
|
+
* @param userId - User ID
|
|
526
|
+
*/
|
|
527
|
+
async getUserSubscriptions(
|
|
528
|
+
siteName: string,
|
|
529
|
+
userId: string
|
|
530
|
+
): Promise<ApiResponse<{ subscriptions: SiteUserSubscription[] }>> {
|
|
531
|
+
return this.getSingle<{ subscriptions: SiteUserSubscription[] }>(
|
|
532
|
+
this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/subscriptions`)
|
|
533
|
+
);
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
/**
|
|
537
|
+
* Pause a user's subscription (admin only)
|
|
538
|
+
* @param siteName - The site name
|
|
539
|
+
* @param userId - User ID
|
|
540
|
+
* @param subscriptionId - Subscription ID
|
|
541
|
+
* @param resumesAt - Optional ISO date string when subscription should auto-resume
|
|
542
|
+
*/
|
|
543
|
+
async pauseUserSubscription(
|
|
544
|
+
siteName: string,
|
|
545
|
+
userId: string,
|
|
546
|
+
subscriptionId: string,
|
|
547
|
+
resumesAt?: string
|
|
548
|
+
): Promise<ApiResponse<{ success: boolean }>> {
|
|
549
|
+
const body: Record<string, string> = {};
|
|
550
|
+
if (resumesAt) {
|
|
551
|
+
body.resumes_at = resumesAt;
|
|
552
|
+
}
|
|
553
|
+
return this.create<Record<string, string>, { success: boolean }>(
|
|
554
|
+
this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/subscriptions/${encodeURIComponent(subscriptionId)}/pause`),
|
|
555
|
+
body
|
|
556
|
+
);
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
/**
|
|
560
|
+
* Resume a user's paused subscription (admin only)
|
|
561
|
+
* @param siteName - The site name
|
|
562
|
+
* @param userId - User ID
|
|
563
|
+
* @param subscriptionId - Subscription ID
|
|
564
|
+
*/
|
|
565
|
+
async resumeUserSubscription(
|
|
566
|
+
siteName: string,
|
|
567
|
+
userId: string,
|
|
568
|
+
subscriptionId: string
|
|
569
|
+
): Promise<ApiResponse<{ success: boolean }>> {
|
|
570
|
+
return this.create<Record<string, never>, { success: boolean }>(
|
|
571
|
+
this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/subscriptions/${encodeURIComponent(subscriptionId)}/resume`),
|
|
572
|
+
{}
|
|
573
|
+
);
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
/**
|
|
577
|
+
* Cancel a user's subscription (admin only)
|
|
578
|
+
* @param siteName - The site name
|
|
579
|
+
* @param userId - User ID
|
|
580
|
+
* @param subscriptionId - Subscription ID
|
|
581
|
+
*/
|
|
582
|
+
async cancelUserSubscription(
|
|
583
|
+
siteName: string,
|
|
584
|
+
userId: string,
|
|
585
|
+
subscriptionId: string
|
|
586
|
+
): Promise<ApiResponse<{ success: boolean; message: string }>> {
|
|
587
|
+
return this.create<Record<string, never>, { success: boolean; message: string }>(
|
|
588
|
+
this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/subscriptions/${encodeURIComponent(subscriptionId)}/cancel`),
|
|
589
|
+
{}
|
|
590
|
+
);
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
/**
|
|
594
|
+
* Get a user's credit balance (admin only)
|
|
595
|
+
* @param siteName - The site name
|
|
596
|
+
* @param userId - User ID
|
|
597
|
+
*/
|
|
598
|
+
async getUserCreditBalance(
|
|
599
|
+
siteName: string,
|
|
600
|
+
userId: string
|
|
601
|
+
): Promise<ApiResponse<CreditBalance>> {
|
|
602
|
+
return this.getSingle<CreditBalance>(
|
|
603
|
+
this.siteUserEndpoint(siteName, `/users/${encodeURIComponent(userId)}/credits/balance`)
|
|
604
|
+
);
|
|
605
|
+
}
|
|
467
606
|
}
|