diff --git a/src/modules/offer/dto/editing/offer-id.input.ts b/src/modules/offer/dto/editing/offer-id.input.ts index 9a4d6104..f2d03e6d 100644 --- a/src/modules/offer/dto/editing/offer-id.input.ts +++ b/src/modules/offer/dto/editing/offer-id.input.ts @@ -2,6 +2,6 @@ import { Field, InputType } from '@nestjs/graphql'; @InputType() export class OfferIdInput { - @Field() + @Field(() => String) offerId: string; } diff --git a/src/modules/offer/dto/editing/offer-request-id.input.ts b/src/modules/offer/dto/editing/offer-request-id.input.ts index 36122e13..cb907878 100644 --- a/src/modules/offer/dto/editing/offer-request-id.input.ts +++ b/src/modules/offer/dto/editing/offer-request-id.input.ts @@ -2,6 +2,6 @@ import { Field, InputType } from '@nestjs/graphql'; @InputType() export class OfferRequestIdInput { - @Field() + @Field(() => String) offerRequestId: string; } diff --git a/src/modules/offer/dto/offers/offers-subsribption.input.ts b/src/modules/offer/dto/offers/offers-subsribption.input.ts index 6c5af929..eebf909c 100644 --- a/src/modules/offer/dto/offers/offers-subsribption.input.ts +++ b/src/modules/offer/dto/offers/offers-subsribption.input.ts @@ -1,9 +1,10 @@ import { Field, InputType } from '@nestjs/graphql'; import { OfferRoleInput } from '../offer/offer-role.input'; +import { MaybeType } from 'src/modules/common/common.types'; @InputType() export class OfferSubscriptionInput extends OfferRoleInput { @Field(() => [String], { nullable: true }) - offerIds?: string[]; + offerIds?: MaybeType; } diff --git a/src/modules/offer/dto/offers/offers.args.ts b/src/modules/offer/dto/offers/offers.args.ts index ac943a6a..21c1c60a 100644 --- a/src/modules/offer/dto/offers/offers.args.ts +++ b/src/modules/offer/dto/offers/offers.args.ts @@ -16,5 +16,5 @@ export class OfferArgs extends IntersectionType( filter?: MaybeType; @Field(() => [OffersOrderInput], { nullable: true }) - ordersBy?: OffersOrderInput[]; + ordersBy?: MaybeType; } diff --git a/src/modules/offer/offer.utils/prepopulate-offer.util.ts b/src/modules/offer/offer.utils/hydrate-offer.util.ts similarity index 100% rename from src/modules/offer/offer.utils/prepopulate-offer.util.ts rename to src/modules/offer/offer.utils/hydrate-offer.util.ts diff --git a/src/modules/offer/services/buyer-offer.service.ts b/src/modules/offer/services/buyer-offer.service.ts index 7b03bae2..a18dbb7b 100644 --- a/src/modules/offer/services/buyer-offer.service.ts +++ b/src/modules/offer/services/buyer-offer.service.ts @@ -5,6 +5,7 @@ import { FirebaseService } from 'src/modules/firebase/firebase.service'; import { OfferService } from './offer.service'; import { OfferIdInput } from '../dto/editing/offer-id.input'; +import { OfferStatus } from '../dto/offer/offer-status.enum'; @Injectable() export class BuyerOfferService { @@ -61,7 +62,7 @@ export class BuyerOfferService { const offerRef = database.ref(FirebaseDatabasePath.OFFERS).child(offerId); - await offerRef.child('status').set('accepted'); + await offerRef.child('status').set(OfferStatus.ACCEPTED); return true; } diff --git a/src/modules/offer/services/offer.service.ts b/src/modules/offer/services/offer.service.ts index dbe3bdd7..7433daa2 100644 --- a/src/modules/offer/services/offer.service.ts +++ b/src/modules/offer/services/offer.service.ts @@ -146,7 +146,10 @@ export class OfferService { // * we don't need to filter by id, as we did it in forEach loop above nodes = filterOffers({ offers: nodes, filter }); - nodes = this.offerSorter.sort(nodes, ordersBy, null); + + if (ordersBy) { + nodes = this.offerSorter.sort(nodes, ordersBy, null); + } const total = nodes.length; nodes = paginate({ nodes, limit, offset }); diff --git a/src/modules/offer/services/seller-offer.service.ts b/src/modules/offer/services/seller-offer.service.ts index 1573d4d2..909783fa 100644 --- a/src/modules/offer/services/seller-offer.service.ts +++ b/src/modules/offer/services/seller-offer.service.ts @@ -1,4 +1,5 @@ import { Injectable } from '@nestjs/common'; +import omit from 'lodash/omit'; import { FirebaseDatabasePath } from 'src/modules/firebase/firebase.constants'; import { FirebaseService } from 'src/modules/firebase/firebase.service'; @@ -13,7 +14,7 @@ import { WorkTimeDto } from '../dto/offer/work-time.dto'; import { OfferService } from './offer.service'; import { OfferDto } from '../dto/offer/offer.dto'; import { OfferInput } from '../dto/creation/offer.input'; -import { hydrateOffer } from '../offer.utils/prepopulate-offer.util'; +import { hydrateOffer } from '../offer.utils/hydrate-offer.util'; import { AcceptanceGuardInput } from '../dto/creation/acceptance-guard.input'; import { getChangedQuestions } from '../offer.utils/get-changes.util'; import { unpauseJob } from '../offer.utils/unpause-job.uitl'; @@ -273,7 +274,12 @@ export class SellerOfferService { id: createdOfferRef.key, }); - await createdOfferRef.set(OfferDto.adapter.toInternal(offerHydrated)); + const offerWithoutId = omit( + OfferDto.adapter.toInternal(offerHydrated), + 'id', + ); + + await createdOfferRef.set(offerWithoutId); return offerHydrated; }