prettier fix
This commit is contained in:
@@ -1,7 +1,12 @@
|
||||
import type { BillingWebhookHandlerService, IHandleWebhookEventParams } from '@kit/billing';
|
||||
import jwt from 'jsonwebtoken';
|
||||
|
||||
import type {
|
||||
BillingWebhookHandlerService,
|
||||
IHandleWebhookEventParams,
|
||||
} from '@kit/billing';
|
||||
import { getLogger } from '@kit/shared/logger';
|
||||
import { Database, Enums } from '@kit/supabase/database';
|
||||
import jwt from 'jsonwebtoken';
|
||||
|
||||
import { MontonioServerEnvSchema } from '../schema/montonio-server-env.schema';
|
||||
|
||||
type UpsertOrderParams =
|
||||
@@ -10,20 +15,26 @@ type UpsertOrderParams =
|
||||
type BillingProvider = Enums<{ schema: 'medreport' }, 'billing_provider'>;
|
||||
|
||||
interface MontonioOrderToken {
|
||||
uuid: string;
|
||||
accessKey: string;
|
||||
merchantReference: string;
|
||||
merchantReferenceDisplay: string;
|
||||
paymentStatus: 'PAID' | 'FAILED' | 'CANCELLED' | 'PENDING' | 'EXPIRED' | 'REFUNDED';
|
||||
paymentMethod: string;
|
||||
grandTotal: number;
|
||||
currency: string;
|
||||
senderIban?: string;
|
||||
senderName?: string;
|
||||
paymentProviderName?: string;
|
||||
paymentLinkUuid: string;
|
||||
iat: number;
|
||||
exp: number;
|
||||
uuid: string;
|
||||
accessKey: string;
|
||||
merchantReference: string;
|
||||
merchantReferenceDisplay: string;
|
||||
paymentStatus:
|
||||
| 'PAID'
|
||||
| 'FAILED'
|
||||
| 'CANCELLED'
|
||||
| 'PENDING'
|
||||
| 'EXPIRED'
|
||||
| 'REFUNDED';
|
||||
paymentMethod: string;
|
||||
grandTotal: number;
|
||||
currency: string;
|
||||
senderIban?: string;
|
||||
senderName?: string;
|
||||
paymentProviderName?: string;
|
||||
paymentLinkUuid: string;
|
||||
iat: number;
|
||||
exp: number;
|
||||
}
|
||||
|
||||
const { secretKey } = MontonioServerEnvSchema.parse({
|
||||
@@ -39,22 +50,25 @@ export class MontonioWebhookHandlerService
|
||||
|
||||
async verifyWebhookSignature(request: Request) {
|
||||
const logger = await getLogger();
|
||||
|
||||
|
||||
let token: string;
|
||||
try {
|
||||
const url = new URL(request.url);
|
||||
const searchParams = url.searchParams;
|
||||
console.info("searchParams", searchParams, url);
|
||||
console.info('searchParams', searchParams, url);
|
||||
const tokenParam = searchParams.get('order-token') as string | null;
|
||||
if (!tokenParam) {
|
||||
throw new Error('Missing order-token');
|
||||
}
|
||||
token = tokenParam;
|
||||
} catch (error) {
|
||||
logger.error({
|
||||
error,
|
||||
name: this.namespace,
|
||||
}, `Failed to parse Montonio webhook request`);
|
||||
logger.error(
|
||||
{
|
||||
error,
|
||||
name: this.namespace,
|
||||
},
|
||||
`Failed to parse Montonio webhook request`,
|
||||
);
|
||||
throw new Error('Invalid request');
|
||||
}
|
||||
|
||||
@@ -64,24 +78,30 @@ export class MontonioWebhookHandlerService
|
||||
});
|
||||
return decoded as MontonioOrderToken;
|
||||
} catch (error) {
|
||||
logger.error({
|
||||
error,
|
||||
name: this.namespace,
|
||||
}, `Failed to verify Montonio webhook signature`);
|
||||
logger.error(
|
||||
{
|
||||
error,
|
||||
name: this.namespace,
|
||||
},
|
||||
`Failed to verify Montonio webhook signature`,
|
||||
);
|
||||
throw new Error('Invalid signature');
|
||||
}
|
||||
}
|
||||
|
||||
async handleWebhookEvent(
|
||||
event: MontonioOrderToken,
|
||||
params: IHandleWebhookEventParams
|
||||
params: IHandleWebhookEventParams,
|
||||
) {
|
||||
const logger = await getLogger();
|
||||
|
||||
logger.info({
|
||||
name: this.namespace,
|
||||
event,
|
||||
}, `Received Montonio webhook event`);
|
||||
logger.info(
|
||||
{
|
||||
name: this.namespace,
|
||||
event,
|
||||
},
|
||||
`Received Montonio webhook event`,
|
||||
);
|
||||
|
||||
if (event.paymentStatus === 'PAID') {
|
||||
const [accountId] = event.merchantReferenceDisplay.split(':');
|
||||
@@ -101,11 +121,13 @@ export class MontonioWebhookHandlerService
|
||||
return params.onCheckoutSessionCompleted(order);
|
||||
}
|
||||
|
||||
if (event.paymentStatus === 'FAILED' || event.paymentStatus === 'CANCELLED') {
|
||||
if (
|
||||
event.paymentStatus === 'FAILED' ||
|
||||
event.paymentStatus === 'CANCELLED'
|
||||
) {
|
||||
return params.onPaymentFailed(event.uuid);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user