@wepublish/api
Version:
API core for we.publish.
157 lines • 8.27 kB
JavaScript
;
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