Merge pull request #1014 from automatisch/handle-subscription-created

feat: Handle subscription created webhook event
This commit is contained in:
Ömer Faruk Aydın
2023-03-24 13:58:36 +03:00
committed by GitHub
3 changed files with 31 additions and 1 deletions

View File

@@ -9,6 +9,9 @@ export default async (request: IRequest, response: Response) => {
return response.sendStatus(401);
}
// TODO: Handle Paddle webhooks
if (request.body.alert_name === 'subscription_created') {
await Billing.webhooks.handleSubscriptionCreated(request);
}
return response.sendStatus(200);
};

View File

@@ -1,6 +1,7 @@
import appConfig from '../../config/app';
import paddleClient from './paddle.ee';
import paddlePlans from './plans.ee';
import webhooks from './webhooks.ee';
const paddleInfo = {
sandbox: appConfig.isDev ? true : false,
@@ -11,6 +12,7 @@ const billing = {
paddleClient,
paddlePlans,
paddleInfo,
webhooks,
};
export default billing;

View File

@@ -0,0 +1,25 @@
import { IRequest } from '@automatisch/types';
import Subscription from '../../models/subscription.ee';
const handleSubscriptionCreated = async (request: IRequest) => {
await Subscription.query().insertAndFetch(formatSubscription(request));
};
const formatSubscription = (request: IRequest) => {
return {
userId: JSON.parse(request.body.passthrough).id,
paddleSubscriptionId: request.body.subscription_id,
paddlePlanId: request.body.subscription_plan_id,
cancelUrl: request.body.cancel_url,
updateUrl: request.body.update_url,
status: request.body.status,
nextBillDate: request.body.next_bill_date,
nextBillAmount: request.body.next_bill_amount,
};
};
const webhooks = {
handleSubscriptionCreated,
};
export default webhooks;