feat(release): initial release

This commit is contained in:
2024-06-03 17:12:43 +02:00
commit 7512105ff1
15 changed files with 443 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
import { Invoices } from "../services/invoices.ts";
export class Invoice2Go extends Invoices {
public readonly provider = "Invoice2Go";
}

View File

@@ -0,0 +1,14 @@
import { type Currency, type Payment, Payments } from "../services/payments.ts";
export class PayPal extends Payments {
public async create(customerId: string, currency: Currency, amount: number): Promise<Payment> {
return {
paymentId: "xyz",
customerId,
provider: "paypal",
status: "created",
currency,
amount,
};
}
}

View File

@@ -0,0 +1,14 @@
import { type Currency, type Payment, Payments } from "../services/payments.ts";
export class Stripe extends Payments {
public async create(customerId: string, currency: Currency, amount: number): Promise<Payment> {
return {
paymentId: "xyz",
customerId,
provider: "stripe",
status: "created",
currency,
amount,
};
}
}

View File

@@ -0,0 +1,5 @@
export abstract class Invoices {
public abstract readonly provider: string;
constructor(public readonly paymentId: string) {}
}

View File

@@ -0,0 +1 @@
export class Logger {}

View File

@@ -0,0 +1,22 @@
export abstract class Payments {
public abstract create(customerId: string, currency: Currency, amount: number): Promise<Payment>;
}
/*
|--------------------------------------------------------------------------------
| Types
|--------------------------------------------------------------------------------
*/
export type Payment = {
paymentId: string;
customerId: string;
provider: string;
status: Status;
currency: Currency;
amount: number;
};
export type Status = "created" | "processing" | "failed" | "processed";
export type Currency = "usd" | "eur" | "jpy";