From a2939a7f2ece8870c265aa82b81b48656708f0d7 Mon Sep 17 00:00:00 2001 From: counterweight Date: Thu, 6 Mar 2025 01:28:47 +0100 Subject: [PATCH] profile service --- src/services/index.js | 3 +- src/services/profileService.js | 66 ++++++++++++++++++---------------- 2 files changed, 38 insertions(+), 31 deletions(-) diff --git a/src/services/index.js b/src/services/index.js index 027cb45..e38dc48 100644 --- a/src/services/index.js +++ b/src/services/index.js @@ -6,7 +6,8 @@ class ServicesProvider { const nostrService = require('../services/nostrService'); const loginService = require('../services/loginService'); const sessionService = require('../services/sessionService'); - const profileService = require('../services/profileService'); + const ProfileServiceProvider = require('../services/profileService'); + const profileService = new ProfileServiceProvider().provide(); const OfferServiceProvider = require('../services/offerService'); const offerService = new OfferServiceProvider().provide(); diff --git a/src/services/profileService.js b/src/services/profileService.js index a3013b0..34bcd6f 100644 --- a/src/services/profileService.js +++ b/src/services/profileService.js @@ -2,35 +2,41 @@ const uuid = require('uuid'); const models = require('../models'); -async function setContactDetails(publicKey, encryptedContactDetails) { - return await models.ContactDetailsSet.create({ - uuid: uuid.v7(), - public_key: publicKey, - encrypted_contact_details: encryptedContactDetails, - created_at: new Date().toISOString(), - }); +class ProfileServiceProvider { + provide() { + async function setContactDetails(publicKey, encryptedContactDetails) { + return await models.ContactDetailsSet.create({ + uuid: uuid.v7(), + public_key: publicKey, + encrypted_contact_details: encryptedContactDetails, + created_at: new Date().toISOString(), + }); + } + + async function setNym(publicKey, nym) { + return await models.NymSet.create({ + uuid: uuid.v7(), + public_key: publicKey, + nym: nym, + created_at: new Date().toISOString(), + }); + } + + async function areProfileDetailsComplete(publicKey) { + const isNymSet = await models.NymSet.findOne({ + where: { public_key: publicKey }, + }); + const areContactDetailsSet = await models.ContactDetailsSet.findOne({ + where: { + public_key: publicKey, + }, + }); + + return isNymSet && areContactDetailsSet; + } + + return { setContactDetails, setNym, areProfileDetailsComplete }; + } } -async function setNym(publicKey, nym) { - return await models.NymSet.create({ - uuid: uuid.v7(), - public_key: publicKey, - nym: nym, - created_at: new Date().toISOString(), - }); -} - -async function areProfileDetailsComplete(publicKey) { - const isNymSet = await models.NymSet.findOne({ - where: { public_key: publicKey }, - }); - const areContactDetailsSet = await models.ContactDetailsSet.findOne({ - where: { - public_key: publicKey, - }, - }); - - return isNymSet && areContactDetailsSet; -} - -module.exports = { setContactDetails, setNym, areProfileDetailsComplete }; +module.exports = ProfileServiceProvider;