UNPKG

@wepublish/api

Version:
157 lines 8.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SubscriptionFlowResolver = void 0; const tslib_1 = require("tslib"); const graphql_1 = require("@nestjs/graphql"); const api_1 = require("../../../../permissions-api/src"); const subscription_flow_service_1 = require("./subscription-flow.service"); const subscription_flow_model_1 = require("./subscription-flow.model"); const client_1 = require("@prisma/client"); let SubscriptionFlowResolver = exports.SubscriptionFlowResolver = class SubscriptionFlowResolver { constructor(subscriptionFlowService, prismaService) { this.subscriptionFlowService = subscriptionFlowService; this.prismaService = prismaService; } subscriptionFlows(defaultFlowOnly, memberPlanId) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return yield this.subscriptionFlowService.getFlows(defaultFlowOnly, memberPlanId); }); } createSubscriptionFlow(flow) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return yield this.subscriptionFlowService.createFlow(flow); }); } updateSubscriptionFlow(flow) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return yield this.subscriptionFlowService.updateFlow(flow); }); } deleteSubscriptionFlow(subscriptionFlowId) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return yield this.subscriptionFlowService.deleteFlow(subscriptionFlowId); }); } createSubscriptionInterval(subscriptionInterval) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return yield this.subscriptionFlowService.createInterval(subscriptionInterval); }); } updateSubscriptionInterval(subscriptionInterval) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return yield this.subscriptionFlowService.updateInterval(subscriptionInterval); }); } deleteSubscriptionInterval(id) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return yield this.subscriptionFlowService.deleteInterval(id); }); } paymentMethods() { return tslib_1.__awaiter(this, void 0, void 0, function* () { return yield this.prismaService.paymentMethod.findMany({}); }); } numberOfSubscriptions(flow) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return yield this.prismaService.subscription.count({ where: { OR: flow.autoRenewal.map(autoRenew => ({ paymentMethodID: { in: flow.paymentMethods.map(paymentMethod => paymentMethod.id) }, paymentPeriodicity: { in: flow.periodicities }, autoRenew })) } }); }); } }; tslib_1.__decorate([ (0, api_1.Permissions)(api_1.CanGetSubscriptionFlows), (0, graphql_1.Query)(() => [subscription_flow_model_1.SubscriptionFlowModel], { description: `Returns all subscription flows` }), tslib_1.__param(0, (0, graphql_1.Args)('defaultFlowOnly')), tslib_1.__param(1, (0, graphql_1.Args)('memberPlanId', { nullable: true })), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Boolean, String]), tslib_1.__metadata("design:returntype", Promise) ], SubscriptionFlowResolver.prototype, "subscriptionFlows", null); tslib_1.__decorate([ (0, api_1.Permissions)(api_1.CanCreateSubscriptionFlow), (0, graphql_1.Mutation)(() => [subscription_flow_model_1.SubscriptionFlowModel], { description: `Create a new subscription flow` }), tslib_1.__param(0, (0, graphql_1.Args)()), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [subscription_flow_model_1.SubscriptionFlowModelCreateInput]), tslib_1.__metadata("design:returntype", Promise) ], SubscriptionFlowResolver.prototype, "createSubscriptionFlow", null); tslib_1.__decorate([ (0, api_1.Permissions)(api_1.CanUpdateSubscriptionFlow), (0, graphql_1.Mutation)(() => [subscription_flow_model_1.SubscriptionFlowModel], { description: `Update an existing subscription flow` }), tslib_1.__param(0, (0, graphql_1.Args)()), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [subscription_flow_model_1.SubscriptionFlowModelUpdateInput]), tslib_1.__metadata("design:returntype", Promise) ], SubscriptionFlowResolver.prototype, "updateSubscriptionFlow", null); tslib_1.__decorate([ (0, api_1.Permissions)(api_1.CanDeleteSubscriptionFlow), (0, graphql_1.Mutation)(() => [subscription_flow_model_1.SubscriptionFlowModel], { description: `Delete an existing subscription flow` }), tslib_1.__param(0, (0, graphql_1.Args)('id')), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [String]), tslib_1.__metadata("design:returntype", Promise) ], SubscriptionFlowResolver.prototype, "deleteSubscriptionFlow", null); tslib_1.__decorate([ (0, api_1.Permissions)(api_1.CanCreateSubscriptionFlow, api_1.CanUpdateSubscriptionFlow), (0, graphql_1.Mutation)(() => [subscription_flow_model_1.SubscriptionFlowModel], { description: 'Create a subscription interval' }), tslib_1.__param(0, (0, graphql_1.Args)()), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [subscription_flow_model_1.SubscriptionIntervalCreateInput]), tslib_1.__metadata("design:returntype", Promise) ], SubscriptionFlowResolver.prototype, "createSubscriptionInterval", null); tslib_1.__decorate([ (0, api_1.Permissions)(api_1.CanUpdateSubscriptionFlow), (0, graphql_1.Mutation)(() => [subscription_flow_model_1.SubscriptionFlowModel], { description: 'Update an existing subscription interval' }), tslib_1.__param(0, (0, graphql_1.Args)()), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [subscription_flow_model_1.SubscriptionIntervalUpdateInput]), tslib_1.__metadata("design:returntype", Promise) ], SubscriptionFlowResolver.prototype, "updateSubscriptionInterval", null); tslib_1.__decorate([ (0, api_1.Permissions)(api_1.CanUpdateSubscriptionFlow), (0, graphql_1.Mutation)(() => [subscription_flow_model_1.SubscriptionFlowModel], { description: 'Delete an existing subscription interval' }), tslib_1.__param(0, (0, graphql_1.Args)('id')), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [String]), tslib_1.__metadata("design:returntype", Promise) ], SubscriptionFlowResolver.prototype, "deleteSubscriptionInterval", null); tslib_1.__decorate([ (0, api_1.Permissions)(api_1.CanGetPaymentMethods), (0, graphql_1.Query)(() => [subscription_flow_model_1.PaymentMethodRef], { description: `Returns all payment methods` }), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", Promise) ], SubscriptionFlowResolver.prototype, "paymentMethods", null); tslib_1.__decorate([ (0, graphql_1.ResolveField)('numberOfSubscriptions', () => graphql_1.Int, { description: 'Count of all subscriptions that are affected by this flow' }), tslib_1.__param(0, (0, graphql_1.Parent)()), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [subscription_flow_model_1.SubscriptionFlowModel]), tslib_1.__metadata("design:returntype", Promise) ], SubscriptionFlowResolver.prototype, "numberOfSubscriptions", null); exports.SubscriptionFlowResolver = SubscriptionFlowResolver = tslib_1.__decorate([ (0, graphql_1.Resolver)(() => subscription_flow_model_1.SubscriptionFlowModel), tslib_1.__metadata("design:paramtypes", [subscription_flow_service_1.SubscriptionFlowService, client_1.PrismaClient]) ], SubscriptionFlowResolver); //# sourceMappingURL=subscription-flow.resolver.js.map