From be7ec9b43fc1f74d01fbb465e18b10ef03dc8cc1 Mon Sep 17 00:00:00 2001 From: counterweight Date: Sat, 8 Mar 2025 00:25:56 +0100 Subject: [PATCH] mass refactor of models --- src/dependencies.js | 4 +- src/models/AppInviteCreated.js | 57 ++++++---- src/models/ContactDetailsSet.js | 65 ++++++----- src/models/LoginChallengeCompleted.js | 65 ++++++----- src/models/LoginChallengeCreated.js | 57 ++++++---- src/models/NostrChallengeCompleted.js | 73 ++++++------ src/models/NostrChallengeCreated.js | 65 ++++++----- src/models/NymSet.js | 65 ++++++----- src/models/OfferCreated.js | 57 ++++++---- src/models/OfferDeleted.js | 57 ++++++---- src/models/OfferDetailsSet.js | 145 +++++++++++++----------- src/models/SessionCreated.js | 57 ++++++---- src/models/SessionRelatedToPublickey.js | 64 ++++++----- src/models/SignUpChallengeCompleted.js | 73 ++++++------ src/models/SignUpChallengeCreated.js | 66 ++++++----- src/models/index.js | 122 +++++++++++++++----- 16 files changed, 627 insertions(+), 465 deletions(-) diff --git a/src/dependencies.js b/src/dependencies.js index fa7afeb..8b4eef3 100644 --- a/src/dependencies.js +++ b/src/dependencies.js @@ -4,7 +4,9 @@ function buildDependencies() { const dependencies = {}; const errors = require('./errors'); const constants = require('./constants'); - const models = require('./models'); + + const ModelsProvider = require('./models'); + const models = new ModelsProvider().provide(); const ServicesProvider = require('./services'); const services = new ServicesProvider({ diff --git a/src/models/AppInviteCreated.js b/src/models/AppInviteCreated.js index 49967b3..4062fb5 100644 --- a/src/models/AppInviteCreated.js +++ b/src/models/AppInviteCreated.js @@ -1,27 +1,34 @@ -const { DataTypes } = require('sequelize'); -const sequelize = require('../database'); - -const AppInviteCreated = sequelize.define( - 'AppInviteCreated', - { - uuid: { - type: DataTypes.UUID, - allowNull: false, - unique: true, - primaryKey: true, - }, - inviter_pub_key: { - type: DataTypes.STRING, - allowNull: false, - }, - created_at: { - type: DataTypes.DATE, - allowNull: false, - }, - }, - { - tableName: 'app_invite_created', +class AppInviteCreatedProvider { + constructor({ sequelize, DataTypes }) { + this.sequelize = sequelize; + this.DataTypes = DataTypes; } -); -module.exports = AppInviteCreated; + provide() { + const AppInviteCreated = this.sequelize.define( + 'AppInviteCreated', + { + uuid: { + type: this.DataTypes.UUID, + allowNull: false, + unique: true, + primaryKey: true, + }, + inviter_pub_key: { + type: this.DataTypes.STRING, + allowNull: false, + }, + created_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + }, + { + tableName: 'app_invite_created', + } + ); + return AppInviteCreated; + } +} + +module.exports = AppInviteCreatedProvider; diff --git a/src/models/ContactDetailsSet.js b/src/models/ContactDetailsSet.js index 8722e89..4a1a6a1 100644 --- a/src/models/ContactDetailsSet.js +++ b/src/models/ContactDetailsSet.js @@ -1,31 +1,38 @@ -const { DataTypes } = require('sequelize'); -const sequelize = require('../database'); - -const ContactDetailsSet = sequelize.define( - 'ContactDetailsSet', - { - uuid: { - type: DataTypes.UUID, - allowNull: false, - unique: true, - primaryKey: true, - }, - public_key: { - type: DataTypes.STRING, - allowNull: false, - }, - encrypted_contact_details: { - type: DataTypes.TEXT, - allowNull: false, - }, - created_at: { - type: DataTypes.DATE, - allowNull: false, - }, - }, - { - tableName: 'contact_details_set', +class ContactDetailsSetProvider { + constructor({ sequelize, DataTypes }) { + this.sequelize = sequelize; + this.DataTypes = DataTypes; } -); -module.exports = ContactDetailsSet; + provide() { + const ContactDetailsSet = this.sequelize.define( + 'ContactDetailsSet', + { + uuid: { + type: this.DataTypes.UUID, + allowNull: false, + unique: true, + primaryKey: true, + }, + public_key: { + type: this.DataTypes.STRING, + allowNull: false, + }, + encrypted_contact_details: { + type: this.DataTypes.TEXT, + allowNull: false, + }, + created_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + }, + { + tableName: 'contact_details_set', + } + ); + return ContactDetailsSet; + } +} + +module.exports = ContactDetailsSetProvider; diff --git a/src/models/LoginChallengeCompleted.js b/src/models/LoginChallengeCompleted.js index b4774bb..bce56e8 100644 --- a/src/models/LoginChallengeCompleted.js +++ b/src/models/LoginChallengeCompleted.js @@ -1,31 +1,38 @@ -const { DataTypes } = require('sequelize'); -const sequelize = require('../database'); - -const LoginChallengeCompleted = sequelize.define( - 'LoginChallengeCompleted', - { - uuid: { - type: DataTypes.UUID, - allowNull: false, - unique: true, - primaryKey: true, - }, - nostr_challenge_completed_uuid: { - type: DataTypes.UUID, - allowNull: false, - }, - public_key: { - type: DataTypes.STRING, - allowNull: false, - }, - created_at: { - type: DataTypes.DATE, - allowNull: false, - }, - }, - { - tableName: 'login_challenge_completed', +class LoginChallengeCompletedProvider { + constructor({ sequelize, DataTypes }) { + this.sequelize = sequelize; + this.DataTypes = DataTypes; } -); -module.exports = LoginChallengeCompleted; + provide() { + const LoginChallengeCompleted = this.sequelize.define( + 'LoginChallengeCompleted', + { + uuid: { + type: this.DataTypes.UUID, + allowNull: false, + unique: true, + primaryKey: true, + }, + nostr_challenge_completed_uuid: { + type: this.DataTypes.UUID, + allowNull: false, + }, + public_key: { + type: this.DataTypes.STRING, + allowNull: false, + }, + created_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + }, + { + tableName: 'login_challenge_completed', + } + ); + return LoginChallengeCompleted; + } +} + +module.exports = LoginChallengeCompletedProvider; diff --git a/src/models/LoginChallengeCreated.js b/src/models/LoginChallengeCreated.js index c1c1792..3d29c16 100644 --- a/src/models/LoginChallengeCreated.js +++ b/src/models/LoginChallengeCreated.js @@ -1,27 +1,34 @@ -const { DataTypes } = require('sequelize'); -const sequelize = require('../database'); - -const LoginChallengeCreated = sequelize.define( - 'LoginChallengeCreated', - { - uuid: { - type: DataTypes.UUID, - allowNull: false, - unique: true, - primaryKey: true, - }, - nostr_challenge_uuid: { - type: DataTypes.UUID, - allowNull: false, - }, - created_at: { - type: DataTypes.DATE, - allowNull: false, - }, - }, - { - tableName: 'login_challenge_created', +class LoginChallengeCreatedProvider { + constructor({ sequelize, DataTypes }) { + this.sequelize = sequelize; + this.DataTypes = DataTypes; } -); -module.exports = LoginChallengeCreated; + provide() { + const LoginChallengeCreated = this.sequelize.define( + 'LoginChallengeCreated', + { + uuid: { + type: this.DataTypes.UUID, + allowNull: false, + unique: true, + primaryKey: true, + }, + nostr_challenge_uuid: { + type: this.DataTypes.UUID, + allowNull: false, + }, + created_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + }, + { + tableName: 'login_challenge_created', + } + ); + return LoginChallengeCreated; + } +} + +module.exports = LoginChallengeCreatedProvider; diff --git a/src/models/NostrChallengeCompleted.js b/src/models/NostrChallengeCompleted.js index a656edd..b57196b 100644 --- a/src/models/NostrChallengeCompleted.js +++ b/src/models/NostrChallengeCompleted.js @@ -1,35 +1,42 @@ -const { DataTypes } = require('sequelize'); -const sequelize = require('../database'); - -const NostrChallengeCompleted = sequelize.define( - 'NostrChallengeCompleted', - { - uuid: { - type: DataTypes.UUID, - allowNull: false, - unique: true, - primaryKey: true, - }, - challenge: { - type: DataTypes.STRING, - allowNull: false, - }, - signed_event: { - type: DataTypes.JSONB, - allowNull: false, - }, - public_key: { - type: DataTypes.STRING, - allowNull: false, - }, - created_at: { - type: DataTypes.DATE, - allowNull: false, - }, - }, - { - tableName: 'nostr_challenge_completed', +class NostrChallengeCompletedProvider { + constructor({ sequelize, DataTypes }) { + this.sequelize = sequelize; + this.DataTypes = DataTypes; } -); -module.exports = NostrChallengeCompleted; + provide() { + const NostrChallengeCompleted = this.sequelize.define( + 'NostrChallengeCompleted', + { + uuid: { + type: this.DataTypes.UUID, + allowNull: false, + unique: true, + primaryKey: true, + }, + challenge: { + type: this.DataTypes.STRING, + allowNull: false, + }, + signed_event: { + type: this.DataTypes.JSONB, + allowNull: false, + }, + public_key: { + type: this.DataTypes.STRING, + allowNull: false, + }, + created_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + }, + { + tableName: 'nostr_challenge_completed', + } + ); + return NostrChallengeCompleted; + } +} + +module.exports = NostrChallengeCompletedProvider; diff --git a/src/models/NostrChallengeCreated.js b/src/models/NostrChallengeCreated.js index 97a4c64..f0f0e91 100644 --- a/src/models/NostrChallengeCreated.js +++ b/src/models/NostrChallengeCreated.js @@ -1,31 +1,38 @@ -const { DataTypes } = require('sequelize'); -const sequelize = require('../database'); - -const NostrChallengeCreated = sequelize.define( - 'NostrChallengeCreated', - { - uuid: { - type: DataTypes.UUID, - allowNull: false, - unique: true, - primaryKey: true, - }, - challenge: { - type: DataTypes.STRING, - allowNull: false, - }, - expires_at: { - type: DataTypes.DATE, - allowNull: false, - }, - created_at: { - type: DataTypes.DATE, - allowNull: false, - }, - }, - { - tableName: 'nostr_challenge_created', +class NostrChallengeCreatedProvider { + constructor({ sequelize, DataTypes }) { + this.sequelize = sequelize; + this.DataTypes = DataTypes; } -); -module.exports = NostrChallengeCreated; + provide() { + const NostrChallengeCreated = this.sequelize.define( + 'NostrChallengeCreated', + { + uuid: { + type: this.DataTypes.UUID, + allowNull: false, + unique: true, + primaryKey: true, + }, + challenge: { + type: this.DataTypes.STRING, + allowNull: false, + }, + expires_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + created_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + }, + { + tableName: 'nostr_challenge_created', + } + ); + return NostrChallengeCreated; + } +} + +module.exports = NostrChallengeCreatedProvider; diff --git a/src/models/NymSet.js b/src/models/NymSet.js index d59a310..4a9f26e 100644 --- a/src/models/NymSet.js +++ b/src/models/NymSet.js @@ -1,31 +1,38 @@ -const { DataTypes } = require('sequelize'); -const sequelize = require('../database'); - -const NymSet = sequelize.define( - 'NymSet', - { - uuid: { - type: DataTypes.UUID, - allowNull: false, - unique: true, - primaryKey: true, - }, - public_key: { - type: DataTypes.STRING, - allowNull: false, - }, - nym: { - type: DataTypes.TEXT, - allowNull: false, - }, - created_at: { - type: DataTypes.DATE, - allowNull: false, - }, - }, - { - tableName: 'nym_set', +class NymSetProvider { + constructor({ sequelize, DataTypes }) { + this.sequelize = sequelize; + this.DataTypes = DataTypes; } -); -module.exports = NymSet; + provide() { + const NymSet = this.sequelize.define( + 'NymSet', + { + uuid: { + type: this.DataTypes.UUID, + allowNull: false, + unique: true, + primaryKey: true, + }, + public_key: { + type: this.DataTypes.STRING, + allowNull: false, + }, + nym: { + type: this.DataTypes.TEXT, + allowNull: false, + }, + created_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + }, + { + tableName: 'nym_set', + } + ); + return NymSet; + } +} + +module.exports = NymSetProvider; diff --git a/src/models/OfferCreated.js b/src/models/OfferCreated.js index fd67249..13eeb54 100644 --- a/src/models/OfferCreated.js +++ b/src/models/OfferCreated.js @@ -1,27 +1,34 @@ -const { DataTypes } = require('sequelize'); -const sequelize = require('../database'); - -const OfferCreated = sequelize.define( - 'OfferCreated', - { - uuid: { - type: DataTypes.UUID, - allowNull: false, - unique: true, - primaryKey: true, - }, - public_key: { - type: DataTypes.STRING, - allowNull: false, - }, - created_at: { - type: DataTypes.DATE, - allowNull: false, - }, - }, - { - tableName: 'offer_created', +class OfferCreatedProvider { + constructor({ sequelize, DataTypes }) { + this.sequelize = sequelize; + this.DataTypes = DataTypes; } -); -module.exports = OfferCreated; + provide() { + const OfferCreated = this.sequelize.define( + 'OfferCreated', + { + uuid: { + type: this.DataTypes.UUID, + allowNull: false, + unique: true, + primaryKey: true, + }, + public_key: { + type: this.DataTypes.STRING, + allowNull: false, + }, + created_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + }, + { + tableName: 'offer_created', + } + ); + return OfferCreated; + } +} + +module.exports = OfferCreatedProvider; diff --git a/src/models/OfferDeleted.js b/src/models/OfferDeleted.js index aa1b71a..6324583 100644 --- a/src/models/OfferDeleted.js +++ b/src/models/OfferDeleted.js @@ -1,27 +1,34 @@ -const { DataTypes } = require('sequelize'); -const sequelize = require('../database'); - -const OfferDeleted = sequelize.define( - 'OfferDeleted', - { - uuid: { - type: DataTypes.UUID, - allowNull: false, - unique: true, - primaryKey: true, - }, - offer_uuid: { - type: DataTypes.STRING, - allowNull: false, - }, - created_at: { - type: DataTypes.DATE, - allowNull: false, - }, - }, - { - tableName: 'offer_deleted', +class OfferDeletedProvider { + constructor({ sequelize, DataTypes }) { + this.sequelize = sequelize; + this.DataTypes = DataTypes; } -); -module.exports = OfferDeleted; + provide() { + const OfferDeleted = this.sequelize.define( + 'OfferDeleted', + { + uuid: { + type: this.DataTypes.UUID, + allowNull: false, + unique: true, + primaryKey: true, + }, + offer_uuid: { + type: this.DataTypes.STRING, + allowNull: false, + }, + created_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + }, + { + tableName: 'offer_deleted', + } + ); + return OfferDeleted; + } +} + +module.exports = OfferDeletedProvider; diff --git a/src/models/OfferDetailsSet.js b/src/models/OfferDetailsSet.js index 20ac456..766f148 100644 --- a/src/models/OfferDetailsSet.js +++ b/src/models/OfferDetailsSet.js @@ -1,71 +1,78 @@ -const { DataTypes } = require('sequelize'); -const sequelize = require('../database'); - -const OfferDetailsSet = sequelize.define( - 'OfferDetailsSet', - { - uuid: { - type: DataTypes.UUID, - allowNull: false, - unique: true, - primaryKey: true, - }, - offer_uuid: { - type: DataTypes.STRING, - allowNull: false, - }, - wants: { - type: DataTypes.STRING, - allowNull: false, - }, - premium: { - type: DataTypes.DECIMAL(5, 2), - allowNull: false, - }, - trade_amount_eur: { - type: DataTypes.INTEGER, - allowNull: false, - }, - location_details: { - type: DataTypes.TEXT, - allowNull: false, - }, - time_availability_details: { - type: DataTypes.TEXT, - allowNull: false, - }, - show_offer_to_trusted: { - type: DataTypes.BOOLEAN, - allowNull: false, - }, - show_offer_to_trusted_trusted: { - type: DataTypes.BOOLEAN, - allowNull: false, - }, - show_offer_to_all_members: { - type: DataTypes.BOOLEAN, - allowNull: false, - }, - is_onchain_accepted: { - type: DataTypes.BOOLEAN, - allowNull: false, - }, - is_lightning_accepted: { - type: DataTypes.BOOLEAN, - allowNull: false, - }, - are_big_notes_accepted: { - type: DataTypes.BOOLEAN, - allowNull: false, - }, - created_at: { - type: DataTypes.DATE, - allowNull: false, - }, - }, - { - tableName: 'offer_details_set', +class OfferDetailsSetProvider { + constructor({ sequelize, DataTypes }) { + this.sequelize = sequelize; + this.DataTypes = DataTypes; } -); -module.exports = OfferDetailsSet; + provide() { + const OfferDetailsSet = this.sequelize.define( + 'OfferDetailsSet', + { + uuid: { + type: this.DataTypes.UUID, + allowNull: false, + unique: true, + primaryKey: true, + }, + offer_uuid: { + type: this.DataTypes.STRING, + allowNull: false, + }, + wants: { + type: this.DataTypes.STRING, + allowNull: false, + }, + premium: { + type: this.DataTypes.DECIMAL(5, 2), + allowNull: false, + }, + trade_amount_eur: { + type: this.DataTypes.INTEGER, + allowNull: false, + }, + location_details: { + type: this.DataTypes.TEXT, + allowNull: false, + }, + time_availability_details: { + type: this.DataTypes.TEXT, + allowNull: false, + }, + show_offer_to_trusted: { + type: this.DataTypes.BOOLEAN, + allowNull: false, + }, + show_offer_to_trusted_trusted: { + type: this.DataTypes.BOOLEAN, + allowNull: false, + }, + show_offer_to_all_members: { + type: this.DataTypes.BOOLEAN, + allowNull: false, + }, + is_onchain_accepted: { + type: this.DataTypes.BOOLEAN, + allowNull: false, + }, + is_lightning_accepted: { + type: this.DataTypes.BOOLEAN, + allowNull: false, + }, + are_big_notes_accepted: { + type: this.DataTypes.BOOLEAN, + allowNull: false, + }, + created_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + }, + { + tableName: 'offer_details_set', + } + ); + return OfferDetailsSet; + } +} + +module.exports = OfferDetailsSetProvider; diff --git a/src/models/SessionCreated.js b/src/models/SessionCreated.js index 8d0de50..a97c1fb 100644 --- a/src/models/SessionCreated.js +++ b/src/models/SessionCreated.js @@ -1,27 +1,34 @@ -const { DataTypes } = require('sequelize'); -const sequelize = require('../database'); - -const SessionCreated = sequelize.define( - 'SessionCreated', - { - uuid: { - type: DataTypes.UUID, - allowNull: false, - unique: true, - primaryKey: true, - }, - created_at: { - type: DataTypes.DATE, - allowNull: false, - }, - expires_at: { - type: DataTypes.DATE, - allowNull: false, - }, - }, - { - tableName: 'session_created', +class SessionCreatedProvider { + constructor({ sequelize, DataTypes }) { + this.sequelize = sequelize; + this.DataTypes = DataTypes; } -); -module.exports = SessionCreated; + provide() { + const SessionCreated = this.sequelize.define( + 'SessionCreated', + { + uuid: { + type: this.DataTypes.UUID, + allowNull: false, + unique: true, + primaryKey: true, + }, + created_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + expires_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + }, + { + tableName: 'session_created', + } + ); + return SessionCreated; + } +} + +module.exports = SessionCreatedProvider; diff --git a/src/models/SessionRelatedToPublickey.js b/src/models/SessionRelatedToPublickey.js index 4802267..321da32 100644 --- a/src/models/SessionRelatedToPublickey.js +++ b/src/models/SessionRelatedToPublickey.js @@ -1,31 +1,37 @@ -const { DataTypes } = require('sequelize'); -const sequelize = require('../database'); - -const SessionRelatedToPublickey = sequelize.define( - 'SessionRelatedToPublickey', - { - uuid: { - type: DataTypes.UUID, - allowNull: false, - unique: true, - primaryKey: true, - }, - session_uuid: { - type: DataTypes.UUID, - allowNull: false, - }, - public_key: { - type: DataTypes.STRING, - allowNull: false, - }, - created_at: { - type: DataTypes.DATE, - allowNull: false, - }, - }, - { - tableName: 'session_related_to_public_key', +class SessionRelatedToPublickeyProvider { + constructor({ sequelize, DataTypes }) { + this.sequelize = sequelize; + this.DataTypes = DataTypes; } -); -module.exports = SessionRelatedToPublickey; + provide() { + const SessionRelatedToPublickey = this.sequelize.define( + 'SessionRelatedToPublickey', + { + uuid: { + type: this.DataTypes.UUID, + allowNull: false, + unique: true, + primaryKey: true, + }, + session_uuid: { + type: this.DataTypes.UUID, + allowNull: false, + }, + public_key: { + type: this.DataTypes.STRING, + allowNull: false, + }, + created_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + }, + { + tableName: 'session_related_to_public_key', + } + ); + return SessionRelatedToPublickey; + } +} +module.exports = SessionRelatedToPublickeyProvider; diff --git a/src/models/SignUpChallengeCompleted.js b/src/models/SignUpChallengeCompleted.js index 2960421..afd65f2 100644 --- a/src/models/SignUpChallengeCompleted.js +++ b/src/models/SignUpChallengeCompleted.js @@ -1,35 +1,42 @@ -const { DataTypes } = require('sequelize'); -const sequelize = require('../database'); - -const SignUpChallengeCompleted = sequelize.define( - 'SignUpChallengeCompleted', - { - uuid: { - type: DataTypes.UUID, - allowNull: false, - unique: true, - primaryKey: true, - }, - nostr_challenge_completed_uuid: { - type: DataTypes.UUID, - allowNull: false, - }, - app_invite_uuid: { - type: DataTypes.UUID, - allowNull: false, - }, - public_key: { - type: DataTypes.STRING, - allowNull: false, - }, - created_at: { - type: DataTypes.DATE, - allowNull: false, - }, - }, - { - tableName: 'sign_up_challenge_completed', +class SignUpChallengeCompletedProvider { + constructor({ sequelize, DataTypes }) { + this.sequelize = sequelize; + this.DataTypes = DataTypes; } -); -module.exports = SignUpChallengeCompleted; + provide() { + const SignUpChallengeCompleted = this.sequelize.define( + 'SignUpChallengeCompleted', + { + uuid: { + type: this.DataTypes.UUID, + allowNull: false, + unique: true, + primaryKey: true, + }, + nostr_challenge_completed_uuid: { + type: this.DataTypes.UUID, + allowNull: false, + }, + app_invite_uuid: { + type: this.DataTypes.UUID, + allowNull: false, + }, + public_key: { + type: this.DataTypes.STRING, + allowNull: false, + }, + created_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + }, + { + tableName: 'sign_up_challenge_completed', + } + ); + return SignUpChallengeCompleted; + } +} + +module.exports = SignUpChallengeCompletedProvider; diff --git a/src/models/SignUpChallengeCreated.js b/src/models/SignUpChallengeCreated.js index 1d3e22e..3da9ec4 100644 --- a/src/models/SignUpChallengeCreated.js +++ b/src/models/SignUpChallengeCreated.js @@ -1,31 +1,39 @@ -const { DataTypes } = require('sequelize'); -const sequelize = require('../database'); - -const SignUpChallengeCreated = sequelize.define( - 'SignUpChallengeCreated', - { - uuid: { - type: DataTypes.UUID, - allowNull: false, - unique: true, - primaryKey: true, - }, - nostr_challenge_uuid: { - type: DataTypes.UUID, - allowNull: false, - }, - app_invite_uuid: { - type: DataTypes.UUID, - allowNull: false, - }, - created_at: { - type: DataTypes.DATE, - allowNull: false, - }, - }, - { - tableName: 'sign_up_challenge_created', +class SignUpChallengeCreatedProvider { + constructor({ sequelize, DataTypes }) { + this.sequelize = sequelize; + this.DataTypes = DataTypes; } -); -module.exports = SignUpChallengeCreated; + provide() { + const SignUpChallengeCreated = this.sequelize.define( + 'SignUpChallengeCreated', + { + uuid: { + type: this.DataTypes.UUID, + allowNull: false, + unique: true, + primaryKey: true, + }, + nostr_challenge_uuid: { + type: this.DataTypes.UUID, + allowNull: false, + }, + app_invite_uuid: { + type: this.DataTypes.UUID, + allowNull: false, + }, + created_at: { + type: this.DataTypes.DATE, + allowNull: false, + }, + }, + { + tableName: 'sign_up_challenge_created', + } + ); + + return SignUpChallengeCreated; + } +} + +module.exports = SignUpChallengeCreatedProvider; diff --git a/src/models/index.js b/src/models/index.js index ed7ed30..1d3da51 100644 --- a/src/models/index.js +++ b/src/models/index.js @@ -1,31 +1,93 @@ -const AppInviteCreated = require('./AppInviteCreated'); -const ContactDetailsSet = require('./ContactDetailsSet'); -const LoginChallengeCompleted = require('./LoginChallengeCompleted'); -const LoginChallengeCreated = require('./LoginChallengeCreated'); -const NostrChallengeCompleted = require('./NostrChallengeCompleted'); -const NostrChallengeCreated = require('./NostrChallengeCreated'); -const NymSet = require('./NymSet'); -const OfferCreated = require('./OfferCreated'); -const OfferDeleted = require('./OfferDeleted'); -const OfferDetailsSet = require('./OfferDetailsSet'); -const SessionCreated = require('./SessionCreated'); -const SessionRelatedToPublickey = require('./SessionRelatedToPublickey'); -const SignUpChallengeCompleted = require('./SignUpChallengeCompleted'); -const SignUpChallengeCreated = require('./SignUpChallengeCreated'); +const sequelize = require('../database'); +const { DataTypes } = require('sequelize'); -module.exports = { - SignUpChallengeCreated, - SignUpChallengeCompleted, - SessionRelatedToPublickey, - SessionCreated, - OfferDeleted, - OfferDetailsSet, - OfferCreated, - NymSet, - NostrChallengeCreated, - NostrChallengeCompleted, - LoginChallengeCompleted, - LoginChallengeCreated, - ContactDetailsSet, - AppInviteCreated, -}; +const AppInviteCreatedProvider = require('./AppInviteCreated'); +const AppInviteCreated = new AppInviteCreatedProvider({ + sequelize, + DataTypes, +}).provide(); +const ContactDetailsSetProvider = require('./ContactDetailsSet'); +const ContactDetailsSet = new ContactDetailsSetProvider({ + sequelize, + DataTypes, +}).provide(); +const LoginChallengeCompletedProvider = require('./LoginChallengeCompleted'); +const LoginChallengeCompleted = new LoginChallengeCompletedProvider({ + sequelize, + DataTypes, +}).provide(); +const LoginChallengeCreatedProvider = require('./LoginChallengeCreated'); +const LoginChallengeCreated = new LoginChallengeCreatedProvider({ + sequelize, + DataTypes, +}).provide(); +const NostrChallengeCompletedProvider = require('./NostrChallengeCompleted'); +const NostrChallengeCompleted = new NostrChallengeCompletedProvider({ + sequelize, + DataTypes, +}).provide(); +const NostrChallengeCreatedProvider = require('./NostrChallengeCreated'); +const NostrChallengeCreated = new NostrChallengeCreatedProvider({ + sequelize, + DataTypes, +}).provide(); +const NymSetProvider = require('./NymSet'); +const NymSet = new NymSetProvider({ sequelize, DataTypes }).provide(); +const OfferCreatedProvider = require('./OfferCreated'); +const OfferCreated = new OfferCreatedProvider({ + sequelize, + DataTypes, +}).provide(); +const OfferDeletedProvider = require('./OfferDeleted'); +const OfferDeleted = new OfferDeletedProvider({ + sequelize, + DataTypes, +}).provide(); +const OfferDetailsSetProvider = require('./OfferDetailsSet'); +const OfferDetailsSet = new OfferDetailsSetProvider({ + sequelize, + DataTypes, +}).provide(); +const SessionCreatedProvider = require('./SessionCreated'); +const SessionCreated = new SessionCreatedProvider({ + sequelize, + DataTypes, +}).provide(); +const SessionRelatedToPublickeyProvider = require('./SessionRelatedToPublickey'); +const SessionRelatedToPublickey = new SessionRelatedToPublickeyProvider({ + sequelize, + DataTypes, +}).provide(); +const SignUpChallengeCompletedProvider = require('./SignUpChallengeCompleted'); +const SignUpChallengeCompleted = new SignUpChallengeCompletedProvider({ + sequelize, + DataTypes, +}).provide(); +const SignUpChallengeCreatedProvider = require('./SignUpChallengeCreated'); +const SignUpChallengeCreated = new SignUpChallengeCreatedProvider({ + sequelize, + DataTypes, +}).provide(); + +class ModelsProvider { + provide() { + return { + SignUpChallengeCreated, + SignUpChallengeCompleted, + SessionRelatedToPublickey, + SessionCreated, + OfferDeleted, + OfferDetailsSet, + OfferCreated, + NymSet, + NostrChallengeCreated, + NostrChallengeCompleted, + LoginChallengeCompleted, + LoginChallengeCreated, + ContactDetailsSet, + AppInviteCreated, + }; + } +} + +module.exports = ModelsProvider;