@wepublish/api
Version:
API core for we.publish.
173 lines • 6.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DashboardSubscriptionService = void 0;
const tslib_1 = require("tslib");
const common_1 = require("@nestjs/common");
const client_1 = require("@prisma/client");
const assert_1 = require("assert");
let DashboardSubscriptionService = exports.DashboardSubscriptionService = class DashboardSubscriptionService {
constructor(prisma) {
this.prisma = prisma;
}
newSubscribers(start, end) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const data = yield this.prisma.subscription.findMany({
where: {
startsAt: {
gte: start,
lt: end
}
},
orderBy: {
startsAt: 'desc'
},
include: {
deactivation: true,
memberPlan: {
select: {
name: true
}
}
}
});
return data.map(({ autoRenew, paidUntil, monthlyAmount, startsAt, deactivation, paymentPeriodicity, memberPlan: { name: memberPlan } }) => {
var _a;
return ({
startsAt,
endsAt: (_a = deactivation === null || deactivation === void 0 ? void 0 : deactivation.date) !== null && _a !== void 0 ? _a : ((autoRenew && paidUntil) || undefined),
renewsAt: (autoRenew && paidUntil) || undefined,
monthlyAmount,
paymentPeriodicity,
reasonForDeactivation: deactivation === null || deactivation === void 0 ? void 0 : deactivation.reason,
deactivationDate: deactivation === null || deactivation === void 0 ? void 0 : deactivation.createdAt,
memberPlan
});
});
});
}
activeSubscribers() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const data = yield this.prisma.subscription.findMany({
where: {
OR: [
{
deactivation: null,
paidUntil: {
gte: new Date()
}
},
{
deactivation: {
date: {
gte: new Date()
}
}
}
]
},
orderBy: {
startsAt: 'desc'
},
include: {
deactivation: true,
memberPlan: {
select: {
name: true
}
}
}
});
return data.map(({ autoRenew, paidUntil, monthlyAmount, startsAt, deactivation, paymentPeriodicity, memberPlan: { name: memberPlan } }) => {
var _a;
return ({
startsAt,
endsAt: (_a = deactivation === null || deactivation === void 0 ? void 0 : deactivation.date) !== null && _a !== void 0 ? _a : ((autoRenew && paidUntil) || undefined),
renewsAt: (autoRenew && paidUntil) || undefined,
monthlyAmount,
paymentPeriodicity,
reasonForDeactivation: deactivation === null || deactivation === void 0 ? void 0 : deactivation.reason,
deactivationDate: deactivation === null || deactivation === void 0 ? void 0 : deactivation.createdAt,
memberPlan
});
});
});
}
renewingSubscribers(start, end) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const data = yield this.prisma.subscription.findMany({
where: {
paidUntil: {
gte: start,
lt: end
},
autoRenew: true,
deactivation: null
},
orderBy: {
paidUntil: 'desc'
},
include: {
memberPlan: {
select: {
name: true
}
}
}
});
return data.map(({ monthlyAmount, startsAt, paidUntil, paymentPeriodicity, memberPlan: { name: memberPlan } }) => {
(0, assert_1.ok)(paidUntil);
return {
startsAt,
renewsAt: paidUntil,
monthlyAmount,
paymentPeriodicity,
memberPlan
};
});
});
}
newDeactivations(start, end) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const data = yield this.prisma.subscription.findMany({
where: {
deactivation: {
createdAt: {
gte: start,
lt: end
}
}
},
orderBy: {
deactivation: {
createdAt: 'desc'
}
},
include: {
deactivation: true,
memberPlan: {
select: {
name: true
}
}
}
});
return data.map(({ memberPlan: { name: memberPlan }, monthlyAmount, deactivation, startsAt, paymentPeriodicity }) => {
(0, assert_1.ok)(deactivation);
return {
startsAt,
endsAt: deactivation.date,
reasonForDeactivation: deactivation.reason,
deactivationDate: deactivation.createdAt,
paymentPeriodicity,
monthlyAmount,
memberPlan
};
});
});
}
};
exports.DashboardSubscriptionService = DashboardSubscriptionService = tslib_1.__decorate([
(0, common_1.Injectable)(),
tslib_1.__metadata("design:paramtypes", [client_1.PrismaClient])
], DashboardSubscriptionService);
//# sourceMappingURL=dashboard-subscription.service.js.map