UNPKG

@vendure/core

Version:

A modern, headless ecommerce framework

246 lines 12 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.OrderAdminEntityResolver = exports.OrderEntityResolver = void 0; const graphql_1 = require("@nestjs/graphql"); const generated_types_1 = require("@vendure/common/lib/generated-types"); const utils_1 = require("../../../common/utils"); const order_entity_1 = require("../../../entity/order/order.entity"); const index_1 = require("../../../service/index"); const history_service_1 = require("../../../service/services/history.service"); const order_service_1 = require("../../../service/services/order.service"); const request_context_1 = require("../../common/request-context"); const api_decorator_1 = require("../../decorators/api.decorator"); const request_context_decorator_1 = require("../../decorators/request-context.decorator"); let OrderEntityResolver = class OrderEntityResolver { constructor(orderService, customerService, historyService, translator) { this.orderService = orderService; this.customerService = customerService; this.historyService = historyService; this.translator = translator; } async payments(ctx, order) { if (order.payments) { return order.payments; } return this.orderService.getOrderPayments(ctx, order.id); } async fulfillments(ctx, order) { if (order.fulfillments) { return order.fulfillments; } return this.orderService.getOrderFulfillments(ctx, order); } async surcharges(ctx, order) { if (order.surcharges) { return order.surcharges; } return this.orderService.getOrderSurcharges(ctx, order.id); } async customer(ctx, order) { if (order.customer) { return order.customer; } if (order.customerId) { return this.customerService.findOne(ctx, order.customerId); } } async lines(ctx, order) { if (order.lines) { return order.lines; } const { lines } = await (0, utils_1.assertFound)(this.orderService.findOne(ctx, order.id)); return lines; } async shippingLines(ctx, order) { if (order.shippingLines) { return order.shippingLines; } const { shippingLines } = await (0, utils_1.assertFound)(this.orderService.findOne(ctx, order.id, ['shippingLines.shippingMethod'])); return shippingLines; } async history(ctx, apiType, order, args) { const publicOnly = apiType === 'shop'; const options = Object.assign({}, args.options); if (!options.sort) { options.sort = { createdAt: generated_types_1.SortOrder.ASC }; } return this.historyService.getHistoryForOrder(ctx, order.id, publicOnly, options); } async promotions(ctx, order) { // If the order has been hydrated with the promotions, then we can just return those // as long as they have the translations joined. if (order.promotions && (order.promotions.length === 0 || (order.promotions.length > 0 && order.promotions[0].translations))) { return order.promotions.map(p => this.translator.translate(p, ctx)); } return this.orderService.getOrderPromotions(ctx, order.id); } }; exports.OrderEntityResolver = OrderEntityResolver; __decorate([ (0, graphql_1.ResolveField)(), __param(0, (0, request_context_decorator_1.Ctx)()), __param(1, (0, graphql_1.Parent)()), __metadata("design:type", Function), __metadata("design:paramtypes", [request_context_1.RequestContext, order_entity_1.Order]), __metadata("design:returntype", Promise) ], OrderEntityResolver.prototype, "payments", null); __decorate([ (0, graphql_1.ResolveField)(), __param(0, (0, request_context_decorator_1.Ctx)()), __param(1, (0, graphql_1.Parent)()), __metadata("design:type", Function), __metadata("design:paramtypes", [request_context_1.RequestContext, order_entity_1.Order]), __metadata("design:returntype", Promise) ], OrderEntityResolver.prototype, "fulfillments", null); __decorate([ (0, graphql_1.ResolveField)(), __param(0, (0, request_context_decorator_1.Ctx)()), __param(1, (0, graphql_1.Parent)()), __metadata("design:type", Function), __metadata("design:paramtypes", [request_context_1.RequestContext, order_entity_1.Order]), __metadata("design:returntype", Promise) ], OrderEntityResolver.prototype, "surcharges", null); __decorate([ (0, graphql_1.ResolveField)(), __param(0, (0, request_context_decorator_1.Ctx)()), __param(1, (0, graphql_1.Parent)()), __metadata("design:type", Function), __metadata("design:paramtypes", [request_context_1.RequestContext, order_entity_1.Order]), __metadata("design:returntype", Promise) ], OrderEntityResolver.prototype, "customer", null); __decorate([ (0, graphql_1.ResolveField)(), __param(0, (0, request_context_decorator_1.Ctx)()), __param(1, (0, graphql_1.Parent)()), __metadata("design:type", Function), __metadata("design:paramtypes", [request_context_1.RequestContext, order_entity_1.Order]), __metadata("design:returntype", Promise) ], OrderEntityResolver.prototype, "lines", null); __decorate([ (0, graphql_1.ResolveField)(), __param(0, (0, request_context_decorator_1.Ctx)()), __param(1, (0, graphql_1.Parent)()), __metadata("design:type", Function), __metadata("design:paramtypes", [request_context_1.RequestContext, order_entity_1.Order]), __metadata("design:returntype", Promise) ], OrderEntityResolver.prototype, "shippingLines", null); __decorate([ (0, graphql_1.ResolveField)(), __param(0, (0, request_context_decorator_1.Ctx)()), __param(1, (0, api_decorator_1.Api)()), __param(2, (0, graphql_1.Parent)()), __param(3, (0, graphql_1.Args)()), __metadata("design:type", Function), __metadata("design:paramtypes", [request_context_1.RequestContext, String, order_entity_1.Order, Object]), __metadata("design:returntype", Promise) ], OrderEntityResolver.prototype, "history", null); __decorate([ (0, graphql_1.ResolveField)(), __param(0, (0, request_context_decorator_1.Ctx)()), __param(1, (0, graphql_1.Parent)()), __metadata("design:type", Function), __metadata("design:paramtypes", [request_context_1.RequestContext, order_entity_1.Order]), __metadata("design:returntype", Promise) ], OrderEntityResolver.prototype, "promotions", null); exports.OrderEntityResolver = OrderEntityResolver = __decorate([ (0, graphql_1.Resolver)('Order'), __metadata("design:paramtypes", [order_service_1.OrderService, index_1.CustomerService, history_service_1.HistoryService, index_1.TranslatorService]) ], OrderEntityResolver); let OrderAdminEntityResolver = class OrderAdminEntityResolver { constructor(orderService) { this.orderService = orderService; } async channels(ctx, order) { var _a; const channels = (_a = order.channels) !== null && _a !== void 0 ? _a : (await this.orderService.getOrderChannels(ctx, order)); return channels.filter(channel => { var _a, _b; return (_b = (_a = ctx.session) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.channelPermissions.find(cp => (0, utils_1.idsAreEqual)(cp.id, channel.id)); }); } async modifications(ctx, order) { if (order.modifications) { return order.modifications; } return this.orderService.getOrderModifications(ctx, order.id); } async nextStates(order) { return this.orderService.getNextOrderStates(order); } async sellerOrders(ctx, order) { var _a, _b, _c; const sellerOrders = await this.orderService.getSellerOrders(ctx, order); // Only return seller orders on those channels to which the active user has access. const userChannelIds = (_c = (_b = (_a = ctx.session) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.channelPermissions.map(cp => cp.id)) !== null && _c !== void 0 ? _c : []; return sellerOrders.filter(sellerOrder => sellerOrder.channels.find(c => userChannelIds.includes(c.id))); } async aggregateOrder(ctx, order) { var _a, _b, _c; const aggregateOrder = await this.orderService.getAggregateOrder(ctx, order); const userChannelIds = (_c = (_b = (_a = ctx.session) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.channelPermissions.map(cp => cp.id)) !== null && _c !== void 0 ? _c : []; // Only return the aggregate order if the active user has permissions on that channel return aggregateOrder && userChannelIds.find(id => aggregateOrder.channels.find(channel => (0, utils_1.idsAreEqual)(channel.id, id))) ? aggregateOrder : undefined; } }; exports.OrderAdminEntityResolver = OrderAdminEntityResolver; __decorate([ (0, graphql_1.ResolveField)(), __param(0, (0, request_context_decorator_1.Ctx)()), __param(1, (0, graphql_1.Parent)()), __metadata("design:type", Function), __metadata("design:paramtypes", [request_context_1.RequestContext, order_entity_1.Order]), __metadata("design:returntype", Promise) ], OrderAdminEntityResolver.prototype, "channels", null); __decorate([ (0, graphql_1.ResolveField)(), __param(0, (0, request_context_decorator_1.Ctx)()), __param(1, (0, graphql_1.Parent)()), __metadata("design:type", Function), __metadata("design:paramtypes", [request_context_1.RequestContext, order_entity_1.Order]), __metadata("design:returntype", Promise) ], OrderAdminEntityResolver.prototype, "modifications", null); __decorate([ (0, graphql_1.ResolveField)(), __param(0, (0, graphql_1.Parent)()), __metadata("design:type", Function), __metadata("design:paramtypes", [order_entity_1.Order]), __metadata("design:returntype", Promise) ], OrderAdminEntityResolver.prototype, "nextStates", null); __decorate([ (0, graphql_1.ResolveField)(), __param(0, (0, request_context_decorator_1.Ctx)()), __param(1, (0, graphql_1.Parent)()), __metadata("design:type", Function), __metadata("design:paramtypes", [request_context_1.RequestContext, order_entity_1.Order]), __metadata("design:returntype", Promise) ], OrderAdminEntityResolver.prototype, "sellerOrders", null); __decorate([ (0, graphql_1.ResolveField)(), __param(0, (0, request_context_decorator_1.Ctx)()), __param(1, (0, graphql_1.Parent)()), __metadata("design:type", Function), __metadata("design:paramtypes", [request_context_1.RequestContext, order_entity_1.Order]), __metadata("design:returntype", Promise) ], OrderAdminEntityResolver.prototype, "aggregateOrder", null); exports.OrderAdminEntityResolver = OrderAdminEntityResolver = __decorate([ (0, graphql_1.Resolver)('Order'), __metadata("design:paramtypes", [order_service_1.OrderService]) ], OrderAdminEntityResolver); //# sourceMappingURL=order-entity.resolver.js.map