From a5e519f63415c764eecbbe0a20fa37f2c17a3988 Mon Sep 17 00:00:00 2001 From: counterweight Date: Wed, 5 Mar 2025 00:48:33 +0100 Subject: [PATCH] service entry --- src/services/offerService.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/services/offerService.js b/src/services/offerService.js index b2d557c..0b746d5 100644 --- a/src/services/offerService.js +++ b/src/services/offerService.js @@ -2,6 +2,9 @@ const uuid = require('uuid'); const OfferCreated = require('../models/OfferCreated'); const OfferDetailsSet = require('../models/OfferDetailsSet'); +const OfferDeleted = require('../models/OfferDeleted'); + +const errors = require('../errors'); async function createOffer(publicKey, offerDetails) { const offerCreated = await OfferCreated.create({ @@ -28,6 +31,25 @@ async function createOffer(publicKey, offerDetails) { }); } +async function deleteOffer(offerUuid) { + const offerExists = Boolean( + await OfferCreated.findOne({ where: { uuid: offerUuid } }) + ); + const offerHasBeenDeleted = Boolean( + await OfferDeleted.findOne({ where: { offer_uuid: offerUuid } }) + ); + + if (!offerExists || offerHasBeenDeleted) { + throw new errors.NotFoundError(`Could not find the offer.`); + } + + return OfferDeleted.create({ + uuid: uuid.v7(), + offer_uuid: offerUuid, + created_at: new Date().toISOString(), + }); +} + async function getOffersByPublicKey(publicKey) { const offers = await OfferCreated.findAll({ where: {