UNPKG

@wepublish/api

Version:
87 lines 3.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getMemberPlans = exports.createMemberPlanFilter = exports.createMemberPlanOrder = void 0; const tslib_1 = require("tslib"); const memberPlan_1 = require("../../db/memberPlan"); const api_1 = require("../../../../utils-api/src"); const createMemberPlanOrder = (field, sortOrder) => { switch (field) { case memberPlan_1.MemberPlanSort.CreatedAt: return { createdAt: (0, api_1.graphQLSortOrderToPrisma)(sortOrder) }; case memberPlan_1.MemberPlanSort.ModifiedAt: return { modifiedAt: (0, api_1.graphQLSortOrderToPrisma)(sortOrder) }; } }; exports.createMemberPlanOrder = createMemberPlanOrder; const createNameFilter = (filter) => { if (filter === null || filter === void 0 ? void 0 : filter.name) { return { name: filter.name }; } return {}; }; const createActiveFilter = (filter) => { if ((filter === null || filter === void 0 ? void 0 : filter.active) != null) { return { active: filter.active }; } return {}; }; const createTagsFilter = (filter) => { var _a; if ((_a = filter === null || filter === void 0 ? void 0 : filter.tags) === null || _a === void 0 ? void 0 : _a.length) { return { tags: { hasSome: filter.tags } }; } return {}; }; const createMemberPlanFilter = (filter) => ({ AND: [createNameFilter(filter), createActiveFilter(filter), createTagsFilter(filter)] }); exports.createMemberPlanFilter = createMemberPlanFilter; const getMemberPlans = (filter, sortedField, order, cursorId, skip, take, memberPlan) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const orderBy = (0, exports.createMemberPlanOrder)(sortedField, order); const where = (0, exports.createMemberPlanFilter)(filter); const [totalCount, memberplans] = yield Promise.all([ memberPlan.count({ where, orderBy }), memberPlan.findMany({ where, skip, take: (0, api_1.getMaxTake)(take) + 1, orderBy, cursor: cursorId ? { id: cursorId } : undefined, include: { availablePaymentMethods: true } }) ]); const nodes = memberplans.slice(0, take); const firstMemberPlan = nodes[0]; const lastMemberPlan = nodes[nodes.length - 1]; const hasPreviousPage = Boolean(skip); const hasNextPage = memberplans.length > nodes.length; return { nodes, totalCount, pageInfo: { hasPreviousPage, hasNextPage, startCursor: firstMemberPlan === null || firstMemberPlan === void 0 ? void 0 : firstMemberPlan.id, endCursor: lastMemberPlan === null || lastMemberPlan === void 0 ? void 0 : lastMemberPlan.id } }; }); exports.getMemberPlans = getMemberPlans; //# sourceMappingURL=member-plan.queries.js.map