24 lines
1.2 KiB
TypeScript
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;
|
|
};
|