feat: Implement get subscription API endpoint

This commit is contained in:
Faruk AYDIN
2024-03-08 14:33:47 +01:00
parent 1870aead73
commit efd96d5fdf
8 changed files with 173 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
import { DateTime } from 'luxon';
import { createUser } from './user';
import Subscription from '../../src/models/subscription.ee.js';
export const createSubscription = async (params = {}) => {
params.userId = params?.userId || (await createUser()).id;
params.paddleSubscriptionId =
params?.paddleSubscriptionId || 'paddleSubscriptionId';
params.paddlePlanId = params?.paddlePlanId || '47384';
params.updateUrl = params?.updateUrl || 'https://example.com/update-url';
params.cancelUrl = params?.cancelUrl || 'https://example.com/cancel-url';
params.status = params?.status || 'active';
params.nextBillAmount = params?.nextBillAmount || '20';
params.nextBillDate =
params?.nextBillDate || DateTime.now().plus({ days: 30 }).toISODate();
const subscription = await Subscription.query().insert(params).returning('*');
return subscription;
};

View File

@@ -0,0 +1,27 @@
const getSubscriptionMock = (subscription) => {
return {
data: {
id: subscription.id,
paddlePlanId: subscription.paddlePlanId,
paddleSubscriptionId: subscription.paddleSubscriptionId,
cancelUrl: subscription.cancelUrl,
updateUrl: subscription.updateUrl,
status: subscription.status,
nextBillAmount: subscription.nextBillAmount,
nextBillDate: subscription.nextBillDate.toISOString(),
lastBillDate: subscription.lastBillDate,
cancellationEffectiveDate: subscription.cancellationEffectiveDate,
createdAt: subscription.createdAt.getTime(),
updatedAt: subscription.updatedAt.getTime(),
},
meta: {
count: 1,
currentPage: null,
isArray: false,
totalPages: null,
type: 'Subscription',
},
};
};
export default getSubscriptionMock;