2025-05-14 21:45:16 +02:00

24 lines
1.2 KiB
TypeScript

import { ApolloContext } from '@lib/seed/interfaces/context';
import { OrderBusinessStatusEnum } from '@services/module-payments/components/components.orders';
import { ApolloError } from 'apollo-server-lambda';
import _ from 'lodash';
import OrderEngineModel from '../../order.model';
import { ProviderSchema } from '../../schemas/provider.schema';
export const updateBusinessOrderStatus = async (id: string, newStatus: OrderBusinessStatusEnum, ctx: ApolloContext): Promise<ProviderSchema> => {
const organisationId = ctx.ctx.organisationId;
const orderModel = new OrderEngineModel();
const order = await orderModel.getOne({ query: { 'providerOrderItems.organisationId': organisationId, 'providerOrderItems._id': id } });
const providerOrderItem = _.find(order.providerOrderItems, { _id: id });
if (!providerOrderItem) throw new ApolloError('notfound', '400');
providerOrderItem.orderStatus = newStatus;
await (await orderModel.db()).updateOne(
{ 'providerOrderItems.organisationId': organisationId, 'providerOrderItems._id': id },
{ $set: { 'providerOrderItems.$': providerOrderItem } },
);
return providerOrderItem;
};