Skip to content

Commit

Permalink
Add skeleton for subscription resource
Browse files Browse the repository at this point in the history
  • Loading branch information
frankaloia committed Mar 5, 2025
1 parent fc73b0d commit 76bd309
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions front/lib/resources/subscription_resource.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import { Authenticator } from "@app/lib/auth";
import { Subscription } from "@app/lib/models/plan";
import { BaseResource } from "@app/lib/resources/base_resource";
import { ReadonlyAttributesType } from "@app/lib/resources/storage/types";
import { Ok, Result } from "@dust-tt/types";
import { Attributes, CreationAttributes, ModelStatic, Transaction } from "sequelize";

export interface SubscriptionResource extends ReadonlyAttributesType<Subscription> {}

export class SubscriptionResource extends BaseResource<Subscription> {
static model: ModelStatic<Subscription> = Subscription;

constructor(model: ModelStatic<Subscription>, blob: Attributes<Subscription>) {
super(Subscription, blob);
}

static async makeNew(blob: CreationAttributes<Subscription>) {
const subscription = await Subscription.create({...blob});
return new SubscriptionResource(Subscription, subscription.get());
}

async delete(
auth: Authenticator,
{ transaction }: { transaction?: Transaction } = {}
): Promise<Result<undefined, Error>> {
await this.model.destroy({
where: {
id: this.id
},
transaction,
});
return new Ok(undefined);
}
}

0 comments on commit 76bd309

Please sign in to comment.