47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
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<Subscriptions> {
|
|
return this.subscriptionsRepository.create(subscriptionEntity);
|
|
}
|
|
|
|
/**
|
|
* @description : Modify a subscription
|
|
* @throws {Error} If subscription cannot be modified
|
|
*/
|
|
public async update(uid: string, subscriptionEntity: Subscription): Promise<Subscriptions> {
|
|
return this.subscriptionsRepository.update(uid, subscriptionEntity);
|
|
}
|
|
|
|
}
|