first service
This commit is contained in:
parent
cdc344c528
commit
56aa416751
2 changed files with 89 additions and 80 deletions
|
|
@ -2,6 +2,14 @@ class ServicesProvider {
|
||||||
constructor() {}
|
constructor() {}
|
||||||
|
|
||||||
provide() {
|
provide() {
|
||||||
|
const invitesService = require('../services/invitesService');
|
||||||
|
const nostrService = require('../services/nostrService');
|
||||||
|
const loginService = require('../services/loginService');
|
||||||
|
const sessionService = require('../services/sessionService');
|
||||||
|
const profileService = require('../services/profileService');
|
||||||
|
const OfferServiceProvider = require('../services/offerService');
|
||||||
|
const offerService = new OfferServiceProvider().provide();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
invitesService,
|
invitesService,
|
||||||
nostrService,
|
nostrService,
|
||||||
|
|
@ -13,11 +21,4 @@ class ServicesProvider {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const invitesService = require('../services/invitesService');
|
|
||||||
const nostrService = require('../services/nostrService');
|
|
||||||
const loginService = require('../services/loginService');
|
|
||||||
const sessionService = require('../services/sessionService');
|
|
||||||
const profileService = require('../services/profileService');
|
|
||||||
const offerService = require('../services/offerService');
|
|
||||||
|
|
||||||
module.exports = ServicesProvider;
|
module.exports = ServicesProvider;
|
||||||
|
|
|
||||||
|
|
@ -4,76 +4,18 @@ const models = require('../models');
|
||||||
|
|
||||||
const errors = require('../errors');
|
const errors = require('../errors');
|
||||||
|
|
||||||
async function createOffer(publicKey, offerDetails) {
|
class OfferServiceProvider {
|
||||||
const offerCreated = await models.OfferCreated.create({
|
provide() {
|
||||||
uuid: uuid.v7(),
|
async function createOffer(publicKey, offerDetails) {
|
||||||
public_key: publicKey,
|
const offerCreated = await models.OfferCreated.create({
|
||||||
created_at: new Date().toISOString(),
|
uuid: uuid.v7(),
|
||||||
});
|
public_key: publicKey,
|
||||||
|
created_at: new Date().toISOString(),
|
||||||
await models.OfferDetailsSet.create({
|
|
||||||
uuid: uuid.v7(),
|
|
||||||
offer_uuid: offerCreated.uuid,
|
|
||||||
wants: offerDetails.wants,
|
|
||||||
premium: offerDetails.premium,
|
|
||||||
trade_amount_eur: offerDetails.trade_amount_eur,
|
|
||||||
location_details: offerDetails.location_details,
|
|
||||||
time_availability_details: offerDetails.time_availability_details,
|
|
||||||
show_offer_to_trusted: offerDetails.show_offer_to_trusted,
|
|
||||||
show_offer_to_trusted_trusted: offerDetails.show_offer_to_trusted_trusted,
|
|
||||||
show_offer_to_all_members: offerDetails.show_offer_to_all_members,
|
|
||||||
is_onchain_accepted: offerDetails.is_onchain_accepted,
|
|
||||||
is_lightning_accepted: offerDetails.is_lightning_accepted,
|
|
||||||
are_big_notes_accepted: offerDetails.are_big_notes_accepted,
|
|
||||||
created_at: new Date().toISOString(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
async function deleteOffer(offerUuid) {
|
|
||||||
const offerExists = Boolean(
|
|
||||||
await models.OfferCreated.findOne({ where: { uuid: offerUuid } })
|
|
||||||
);
|
|
||||||
const offerHasBeenDeleted = Boolean(
|
|
||||||
await models.OfferDeleted.findOne({ where: { offer_uuid: offerUuid } })
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!offerExists || offerHasBeenDeleted) {
|
|
||||||
throw new errors.NotFoundError(`Could not find the offer.`);
|
|
||||||
}
|
|
||||||
|
|
||||||
return models.OfferDeleted.create({
|
|
||||||
uuid: uuid.v7(),
|
|
||||||
offer_uuid: offerUuid,
|
|
||||||
created_at: new Date().toISOString(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getOffersByPublicKey(publicKey) {
|
|
||||||
const offers = await models.OfferCreated.findAll({
|
|
||||||
where: {
|
|
||||||
public_key: publicKey,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log(offers);
|
|
||||||
|
|
||||||
if (!offers) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
const offersToReturn = [];
|
|
||||||
if (offers) {
|
|
||||||
for (const someOffer of offers) {
|
|
||||||
const offerDetails = await models.OfferDetailsSet.findOne({
|
|
||||||
where: {
|
|
||||||
offer_uuid: someOffer.uuid,
|
|
||||||
},
|
|
||||||
order: [['created_at', 'DESC']],
|
|
||||||
});
|
});
|
||||||
|
|
||||||
offersToReturn.push({
|
await models.OfferDetailsSet.create({
|
||||||
uuid: someOffer.uuid,
|
uuid: uuid.v7(),
|
||||||
public_key: someOffer.public_key,
|
offer_uuid: offerCreated.uuid,
|
||||||
wants: offerDetails.wants,
|
wants: offerDetails.wants,
|
||||||
premium: offerDetails.premium,
|
premium: offerDetails.premium,
|
||||||
trade_amount_eur: offerDetails.trade_amount_eur,
|
trade_amount_eur: offerDetails.trade_amount_eur,
|
||||||
|
|
@ -86,12 +28,78 @@ async function getOffersByPublicKey(publicKey) {
|
||||||
is_onchain_accepted: offerDetails.is_onchain_accepted,
|
is_onchain_accepted: offerDetails.is_onchain_accepted,
|
||||||
is_lightning_accepted: offerDetails.is_lightning_accepted,
|
is_lightning_accepted: offerDetails.is_lightning_accepted,
|
||||||
are_big_notes_accepted: offerDetails.are_big_notes_accepted,
|
are_big_notes_accepted: offerDetails.are_big_notes_accepted,
|
||||||
created_at: someOffer.created_at,
|
created_at: new Date().toISOString(),
|
||||||
last_updated_at: offerDetails.created_at,
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return offersToReturn;
|
async function deleteOffer(offerUuid) {
|
||||||
|
const offerExists = Boolean(
|
||||||
|
await models.OfferCreated.findOne({ where: { uuid: offerUuid } })
|
||||||
|
);
|
||||||
|
const offerHasBeenDeleted = Boolean(
|
||||||
|
await models.OfferDeleted.findOne({ where: { offer_uuid: offerUuid } })
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!offerExists || offerHasBeenDeleted) {
|
||||||
|
throw new errors.NotFoundError(`Could not find the offer.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return models.OfferDeleted.create({
|
||||||
|
uuid: uuid.v7(),
|
||||||
|
offer_uuid: offerUuid,
|
||||||
|
created_at: new Date().toISOString(),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getOffersByPublicKey(publicKey) {
|
||||||
|
const offers = await models.OfferCreated.findAll({
|
||||||
|
where: {
|
||||||
|
public_key: publicKey,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(offers);
|
||||||
|
|
||||||
|
if (!offers) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
const offersToReturn = [];
|
||||||
|
if (offers) {
|
||||||
|
for (const someOffer of offers) {
|
||||||
|
const offerDetails = await models.OfferDetailsSet.findOne({
|
||||||
|
where: {
|
||||||
|
offer_uuid: someOffer.uuid,
|
||||||
|
},
|
||||||
|
order: [['created_at', 'DESC']],
|
||||||
|
});
|
||||||
|
|
||||||
|
offersToReturn.push({
|
||||||
|
uuid: someOffer.uuid,
|
||||||
|
public_key: someOffer.public_key,
|
||||||
|
wants: offerDetails.wants,
|
||||||
|
premium: offerDetails.premium,
|
||||||
|
trade_amount_eur: offerDetails.trade_amount_eur,
|
||||||
|
location_details: offerDetails.location_details,
|
||||||
|
time_availability_details: offerDetails.time_availability_details,
|
||||||
|
show_offer_to_trusted: offerDetails.show_offer_to_trusted,
|
||||||
|
show_offer_to_trusted_trusted:
|
||||||
|
offerDetails.show_offer_to_trusted_trusted,
|
||||||
|
show_offer_to_all_members: offerDetails.show_offer_to_all_members,
|
||||||
|
is_onchain_accepted: offerDetails.is_onchain_accepted,
|
||||||
|
is_lightning_accepted: offerDetails.is_lightning_accepted,
|
||||||
|
are_big_notes_accepted: offerDetails.are_big_notes_accepted,
|
||||||
|
created_at: someOffer.created_at,
|
||||||
|
last_updated_at: offerDetails.created_at,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return offersToReturn;
|
||||||
|
}
|
||||||
|
|
||||||
|
return { createOffer, getOffersByPublicKey, deleteOffer };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
module.exports = { createOffer, getOffersByPublicKey, deleteOffer };
|
|
||||||
|
module.exports = OfferServiceProvider;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue