diff --git a/src/front/pages/offers.js b/src/front/pages/offers.js index b6cc7cc..3c639dd 100644 --- a/src/front/pages/offers.js +++ b/src/front/pages/offers.js @@ -10,13 +10,16 @@ const TrustCheckboxes = require('../components/TrustCheckboxes'); const BigNotesCheckbox = require('../components/BigNotesCheckbox'); const PopupNotification = require('../components/PopupNotification'); +const offerService = require('../services/offerService'); + class CreateOfferModal { // Actual creation logic to be provided by a service // Stop relying on IDs - constructor({ parentElement, onCreationCallback }) { + constructor({ parentElement, onCreationCallback, offerService }) { this.element = null; this.parentElement = parentElement; this.onCreationCallback = onCreationCallback; + this.offerService = offerService; this.publishOfferButton = null; this.buyOrSellButtonGroup = null; @@ -230,13 +233,7 @@ class CreateOfferModal { are_big_notes_accepted, }; - await fetch('/api/offer', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ offerDetails }), - }); + await this.offerService.createOffer(offerDetails); this.toggle(); } @@ -262,6 +259,7 @@ function offersPage() { await myOffers.render(); offerCreatedPopup.displayTemporarily(3000); }, + offerService: offerService, }); createOfferModal.render(); // ----------- diff --git a/src/front/services/offerService.js b/src/front/services/offerService.js new file mode 100644 index 0000000..65b1c44 --- /dev/null +++ b/src/front/services/offerService.js @@ -0,0 +1,13 @@ +const createOffer = async (offerDetails) => { + await fetch('/api/offer', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ offerDetails }), + }); +}; + +module.exports = { + createOffer, +}; diff --git a/src/views/offers.ejs b/src/views/offers.ejs index 3194059..6fa2e9f 100644 --- a/src/views/offers.ejs +++ b/src/views/offers.ejs @@ -31,7 +31,7 @@

Vaya, no hay nada por aquĆ­...

- +