- Integrated `SubscriptionInfoBar` component into the profile page for displaying subscription details. - Updated GraphQL types to include subscription-related fields and filters. - Enhanced the profile data management by adding subscription handling capabilities. - Added a new utility function `getRemainingDays` to calculate remaining days until a specified date.
72 lines
2.1 KiB
TypeScript
72 lines
2.1 KiB
TypeScript
'use server';
|
|
|
|
import { useService } from '../lib/service';
|
|
import { wrapServerAction } from '@/utils/actions';
|
|
import { SubscriptionsService } from '@repo/graphql/api/subscriptions';
|
|
|
|
const getService = useService(SubscriptionsService);
|
|
|
|
export async function createSubscription(
|
|
...variables: Parameters<SubscriptionsService['createSubscription']>
|
|
) {
|
|
const service = await getService();
|
|
|
|
return wrapServerAction(() => service.createSubscription(...variables));
|
|
}
|
|
|
|
export async function createSubscriptionHistory(
|
|
...variables: Parameters<SubscriptionsService['createSubscriptionHistory']>
|
|
) {
|
|
const service = await getService();
|
|
|
|
return wrapServerAction(() => service.createSubscriptionHistory(...variables));
|
|
}
|
|
|
|
export async function getSubscription(
|
|
...variables: Parameters<SubscriptionsService['getSubscription']>
|
|
) {
|
|
const service = await getService();
|
|
|
|
return wrapServerAction(() => service.getSubscription(...variables));
|
|
}
|
|
|
|
export async function getSubscriptionHistory(
|
|
...variables: Parameters<SubscriptionsService['getSubscriptionHistory']>
|
|
) {
|
|
const service = await getService();
|
|
|
|
return wrapServerAction(() => service.getSubscriptionHistory(...variables));
|
|
}
|
|
|
|
export async function getSubscriptionPrices(
|
|
...variables: Parameters<SubscriptionsService['getSubscriptionPrices']>
|
|
) {
|
|
const service = await getService();
|
|
|
|
return wrapServerAction(() => service.getSubscriptionPrices(...variables));
|
|
}
|
|
|
|
export async function getSubscriptionSettings(
|
|
...variables: Parameters<SubscriptionsService['getSubscriptionSettings']>
|
|
) {
|
|
const service = await getService();
|
|
|
|
return wrapServerAction(() => service.getSubscriptionSettings(...variables));
|
|
}
|
|
|
|
export async function updateSubscription(
|
|
...variables: Parameters<SubscriptionsService['updateSubscription']>
|
|
) {
|
|
const service = await getService();
|
|
|
|
return wrapServerAction(() => service.updateSubscription(...variables));
|
|
}
|
|
|
|
export async function updateSubscriptionHistory(
|
|
...variables: Parameters<SubscriptionsService['updateSubscriptionHistory']>
|
|
) {
|
|
const service = await getService();
|
|
|
|
return wrapServerAction(() => service.updateSubscriptionHistory(...variables));
|
|
}
|