From e3e543adf955cfca153b2a5f58c576e932bcffb5 Mon Sep 17 00:00:00 2001 From: Pavel Brui Date: Thu, 18 Apr 2024 11:46:27 +0200 Subject: [PATCH] unbookServises --- packages/integrations/gei-bookings/package.json | 2 +- .../gei-bookings/src/PublicQuery/listServices.ts | 2 +- .../src/UserMutation/respondOnServiceRequest.ts | 12 +++++++++--- .../src/UserQuery/getBookingsForService.ts | 2 +- .../gei-bookings/src/UserQuery/getSelfBooks.ts | 2 +- .../gei-bookings/src/UserQuery/getSelfServices.ts | 2 +- 6 files changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/integrations/gei-bookings/package.json b/packages/integrations/gei-bookings/package.json index a861b10..7d6464c 100644 --- a/packages/integrations/gei-bookings/package.json +++ b/packages/integrations/gei-bookings/package.json @@ -1,6 +1,6 @@ { "name": "gei-bookings", - "version": "0.2.5", + "version": "0.2.6", "description": "Automatically generated by graphql-editor-cli", "main": "lib/index.js", "scripts": { diff --git a/packages/integrations/gei-bookings/src/PublicQuery/listServices.ts b/packages/integrations/gei-bookings/src/PublicQuery/listServices.ts index 4216ced..4006831 100644 --- a/packages/integrations/gei-bookings/src/PublicQuery/listServices.ts +++ b/packages/integrations/gei-bookings/src/PublicQuery/listServices.ts @@ -9,7 +9,7 @@ export const listServices = async (input: FieldResolveInput) => resolverFor('PublicQuery', 'listServices', async (args) => errMiddleware(async () => { const po = preparePageOptions(args?.input?.page); - const inputFilters = inputServiceFiltersSet(args.input?.filters) + const inputFilters = inputServiceFiltersSet(args?.input?.filters) return { services: convertDateObjToStringForArray(await MongoOrb(ServicesCollection) .collection.find({ diff --git a/packages/integrations/gei-bookings/src/UserMutation/respondOnServiceRequest.ts b/packages/integrations/gei-bookings/src/UserMutation/respondOnServiceRequest.ts index 247badd..9cb2ab0 100644 --- a/packages/integrations/gei-bookings/src/UserMutation/respondOnServiceRequest.ts +++ b/packages/integrations/gei-bookings/src/UserMutation/respondOnServiceRequest.ts @@ -7,23 +7,29 @@ export const respondOnServiceRequest = async (input: FieldResolveInput) => resolverFor('UserMutation', 'respondOnServiceRequest', async (args, src) => errMiddleware(async () => { sourceContainUserIdOrThrow(src); - if (args.input?.answer === BookStatus.PENDING) { + if (args?.input?.answer === BookStatus.PENDING) { throw new GlobalError('answer cannot be pending', import.meta.url); } - MongoOrb('Bookings') + await MongoOrb('Bookings') .collection.find({ _id: { $in: args.input.bookIds }, answeredAt: { $exists: false } }).toArray() .then(async (books) => { if (!books || books.length < 1) { throw new GlobalError(`cannot find anyone books for id: ${ args.input.bookIds }`, import.meta.url); } - MongoOrb('Services') + await MongoOrb('Services') .collection.find({ _id: { $in: books.map((b)=> b.services ).flatMap(innerArray => innerArray) }, ownerId: src.userId || src._id}) .toArray().then((r) => { if (!r || r.length < 1) { throw new GlobalError('you can answer only on yours services', import.meta.url); } }); + if (args?.input?.answer === BookStatus.DECLINED) { + MongoOrb('Services') + .collection.updateMany({ _id: { $in: books.map((b)=> b.services ).flatMap(innerArray => innerArray) }, ownerId: src.userId || src._id}, {$set: { taken: false} }) + }; }); + + return MongoOrb('Bookings') .collection.updateMany( { _id: { $in: args.input.bookIds} }, diff --git a/packages/integrations/gei-bookings/src/UserQuery/getBookingsForService.ts b/packages/integrations/gei-bookings/src/UserQuery/getBookingsForService.ts index a691298..48fcabb 100644 --- a/packages/integrations/gei-bookings/src/UserQuery/getBookingsForService.ts +++ b/packages/integrations/gei-bookings/src/UserQuery/getBookingsForService.ts @@ -9,7 +9,7 @@ export const getBookingsForService = async (input: FieldResolveInput) => errMiddleware(async () => { sourceContainUserIdOrThrow(src); const po = preparePageOptions(args?.input?.page); - const inputFilters = inputBooksFiltersSet(args.input?.filters) + const inputFilters = inputBooksFiltersSet(args?.input?.filters) const ownedServices = await MongoOrb('Services') diff --git a/packages/integrations/gei-bookings/src/UserQuery/getSelfBooks.ts b/packages/integrations/gei-bookings/src/UserQuery/getSelfBooks.ts index 6925dc7..ef06ba4 100644 --- a/packages/integrations/gei-bookings/src/UserQuery/getSelfBooks.ts +++ b/packages/integrations/gei-bookings/src/UserQuery/getSelfBooks.ts @@ -8,7 +8,7 @@ export const getSelfBooks = async (input: FieldResolveInput) => errMiddleware(async () => { sourceContainUserIdOrThrow(src); const po = preparePageOptions(args?.input?.page); - const inputFilters = inputBooksFiltersSet(args.input?.filters) + const inputFilters = inputBooksFiltersSet(args?.input?.filters) return { books: convertDateObjToStringForArray(await MongoOrb('Bookings') diff --git a/packages/integrations/gei-bookings/src/UserQuery/getSelfServices.ts b/packages/integrations/gei-bookings/src/UserQuery/getSelfServices.ts index 330503b..1799842 100644 --- a/packages/integrations/gei-bookings/src/UserQuery/getSelfServices.ts +++ b/packages/integrations/gei-bookings/src/UserQuery/getSelfServices.ts @@ -13,7 +13,7 @@ export const getSelfServices = async (input: FieldResolveInput) => sourceContainUserIdOrThrow(src); const po = preparePageOptions(args?.input?.page); - const inputFilters = inputServiceFiltersSet(args.input?.filters) + const inputFilters = inputServiceFiltersSet(args?.input?.filters) const selfServices = await MongoOrb(ServicesCollection) .collection.find({