import BaseService from "@Services/BaseService"; import "reflect-metadata"; import { Service } from "typedi"; import { Prisma, Subscriptions } from "@prisma/client"; import SubscriptionsRepository from "@Repositories/SubscriptionsRepository"; import { Subscription } from "le-coffre-resources/dist/Admin"; @Service() export default class SubscriptionsService extends BaseService { constructor(private subscriptionsRepository: SubscriptionsRepository) { super(); } /** * @description : Get all subscriptions * @throws {Error} If subscriptions cannot be get */ public get(query: Prisma.SubscriptionsFindManyArgs) { return this.subscriptionsRepository.findMany(query); } /** * @description : Get a subscription by uid * @throws {Error} If subscription is not found */ public async getByUid(uid: string, query?: Prisma.SubscriptionsInclude) { return this.subscriptionsRepository.findOneByUid(uid, query); } /** * @description : Create a new subscription * @throws {Error} If subsctiption cannot be created */ public async create(subscriptionEntity: Subscription): Promise { return this.subscriptionsRepository.create(subscriptionEntity); } /** * @description : Modify a subscription * @throws {Error} If subscription cannot be modified */ public async update(uid: string, subscriptionEntity: Subscription): Promise { return this.subscriptionsRepository.update(uid, subscriptionEntity); } }