From 8c662b5cbb8d6e8bd135ed151b9ea12be19b1ae3 Mon Sep 17 00:00:00 2001 From: Rafael-er-byte Date: Sun, 21 Jun 2026 17:58:20 -0600 Subject: [PATCH 1/6] feat: add more test validation to project domain --- .../modules/project/core/model/Project.test.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/backend/tests/modules/project/core/model/Project.test.ts b/backend/tests/modules/project/core/model/Project.test.ts index 505a25e6..83548917 100644 --- a/backend/tests/modules/project/core/model/Project.test.ts +++ b/backend/tests/modules/project/core/model/Project.test.ts @@ -13,6 +13,8 @@ import ProjectStatus from "../../../../../src/modules/project/core/objects/Proje import { AllowedBackgroundType } from "../../../../../src/modules/project/core/types/AllowedBackgroundType"; import { AllowedProjectSetting } from "../../../../../src/modules/project/core/types/AllowedProjectSetting"; import { AllowedProjectStatus } from "../../../../../src/modules/project/core/types/AllowedProjectStatus"; +import ConflictDuplicateResource from "../../../../../src/modules/shared/core/errors/ConflictDuplicatedResource"; +import ResourceNotFound from "../../../../../src/modules/shared/core/errors/ResourceNotFound"; import Attachment from "../../../../../src/modules/shared/core/objects/Attachment"; import ID from "../../../../../src/modules/shared/core/objects/ID"; import IdEntity from "../../../../../src/modules/shared/core/objects/IdEntity"; @@ -257,4 +259,20 @@ describe("Project tests", () => { expect(listsOrder).toStrictEqual(expectedOrder); expect(listIdsOrder).toStrictEqual(idsExpectedOrder); }); + + it("Should throw when the list to remove doesnt exists", () => { + const params = buildParams(); + project = Project.fromPrimitives(params); + const list1 = buildList(); + expect(() => project!.removeList(list1.idList)).toThrow(ResourceNotFound); + }); + + it("Shouldnt allow repeated lists", () => { + const params = buildParams(); + project = Project.fromPrimitives(params); + const list1 = buildList(); + project.addList(list1); + expect(project.getlists()).toHaveLength(1); + expect(() => project!.addList(list1)).toThrow(ConflictDuplicateResource); + }); }); From 61a7296dfbf748b261c8cc14a8cbac0fef8d524a Mon Sep 17 00:00:00 2001 From: Rafael-er-byte Date: Wed, 24 Jun 2026 20:56:39 -0600 Subject: [PATCH 2/6] feat: Module User, account and user settings added and tested a little --- .agents/Backend.md | 24 ++++- .../core/errors/AccountAlreadyExists.d.ts | 5 + .../core/errors/AccountAlreadyExists.d.ts.map | 1 + .../core/errors/AccountAlreadyExists.js | 8 ++ .../core/errors/AccountAlreadyExists.js.map | 1 + .../account/core/errors/InvalidAccount.d.ts | 5 + .../core/errors/InvalidAccount.d.ts.map | 1 + .../account/core/errors/InvalidAccount.js | 8 ++ .../account/core/errors/InvalidAccount.js.map | 1 + .../account/core/events/AccountCreated.d.ts | 8 ++ .../core/events/AccountCreated.d.ts.map | 1 + .../account/core/events/AccountCreated.js | 7 ++ .../account/core/events/AccountCreated.js.map | 1 + .../core/interfaces/AccountParams.d.ts | 11 +++ .../core/interfaces/AccountParams.d.ts.map | 1 + .../account/core/interfaces/AccountParams.js | 2 + .../core/interfaces/AccountParams.js.map | 1 + .../modules/account/core/model/Account.d.ts | 28 +++++- .../account/core/model/Account.d.ts.map | 2 +- .../modules/account/core/model/Account.js | 62 +++++++++++- .../modules/account/core/model/Account.js.map | 2 +- .../account/core/objects/AccountName.d.ts | 8 ++ .../account/core/objects/AccountName.d.ts.map | 1 + .../account/core/objects/AccountName.js | 15 +++ .../account/core/objects/AccountName.js.map | 1 + .../account/core/objects/IdAccount.d.ts | 5 + .../account/core/objects/IdAccount.d.ts.map | 1 + .../modules/account/core/objects/IdAccount.js | 7 ++ .../account/core/objects/IdAccount.js.map | 1 + .../modules/account/core/types/Account.d.ts | 3 + .../account/core/types/Account.d.ts.map | 1 + .../modules/account/core/types/Account.js | 2 + .../modules/account/core/types/Account.js.map | 1 + .../modules/project/core/model/Project.d.ts | 2 +- .../project/core/model/Project.d.ts.map | 2 +- .../modules/project/core/model/Project.js | 7 +- .../modules/project/core/model/Project.js.map | 2 +- .../user/core/errors/AccountDoesntExist.d.ts | 5 + .../core/errors/AccountDoesntExist.d.ts.map | 1 + .../user/core/errors/AccountDoesntExist.js | 8 ++ .../core/errors/AccountDoesntExist.js.map | 1 + .../user/core/errors/DuplicateAccount.d.ts | 5 + .../core/errors/DuplicateAccount.d.ts.map | 1 + .../user/core/errors/DuplicateAccount.js | 8 ++ .../user/core/errors/DuplicateAccount.js.map | 1 + .../user/core/errors/InvalidTimezone.d.ts | 5 + .../user/core/errors/InvalidTimezone.d.ts.map | 1 + .../user/core/errors/InvalidTimezone.js | 8 ++ .../user/core/errors/InvalidTimezone.js.map | 1 + .../user/core/errors/UnsupportedLanguage.d.ts | 5 + .../core/errors/UnsupportedLanguage.d.ts.map | 1 + .../user/core/errors/UnsupportedLanguage.js | 8 ++ .../core/errors/UnsupportedLanguage.js.map | 1 + .../user/core/errors/UnsupportedTheme.d.ts | 5 + .../core/errors/UnsupportedTheme.d.ts.map | 1 + .../user/core/errors/UnsupportedTheme.js | 8 ++ .../user/core/errors/UnsupportedTheme.js.map | 1 + .../user/core/events/AccountChanged.d.ts | 7 ++ .../user/core/events/AccountChanged.d.ts.map | 1 + .../user/core/events/AccountChanged.js | 7 ++ .../user/core/events/AccountChanged.js.map | 1 + .../user/core/interfaces/UserParams.d.ts | 6 ++ .../user/core/interfaces/UserParams.d.ts.map | 1 + .../user/core/interfaces/UserParams.js | 2 + .../user/core/interfaces/UserParams.js.map | 1 + .../dist/modules/user/core/model/User.d.ts | 16 +++ .../modules/user/core/model/User.d.ts.map | 1 + backend/dist/modules/user/core/model/User.js | 62 ++++++++++++ .../dist/modules/user/core/model/User.js.map | 1 + .../modules/user/core/objects/Language.d.ts | 12 +++ .../user/core/objects/Language.d.ts.map | 1 + .../modules/user/core/objects/Language.js | 27 +++++ .../modules/user/core/objects/Language.js.map | 1 + .../core/objects/NotificationSettings.d.ts | 18 ++++ .../objects/NotificationSettings.d.ts.map | 1 + .../user/core/objects/NotificationSettings.js | 33 +++++++ .../core/objects/NotificationSettings.js.map | 1 + .../dist/modules/user/core/objects/Theme.d.ts | 12 +++ .../modules/user/core/objects/Theme.d.ts.map | 1 + .../dist/modules/user/core/objects/Theme.js | 27 +++++ .../modules/user/core/objects/Theme.js.map | 1 + .../modules/user/core/objects/Timezone.d.ts | 9 ++ .../user/core/objects/Timezone.d.ts.map | 1 + .../modules/user/core/objects/Timezone.js | 18 ++++ .../modules/user/core/objects/Timezone.js.map | 1 + .../user/core/objects/UserSettings.d.ts | 25 +++++ .../user/core/objects/UserSettings.d.ts.map | 1 + .../modules/user/core/objects/UserSettings.js | 26 +++++ .../user/core/objects/UserSettings.js.map | 1 + .../modules/user/core/types/Language.d.ts | 6 ++ .../modules/user/core/types/Language.d.ts.map | 1 + .../dist/modules/user/core/types/Language.js | 7 ++ .../modules/user/core/types/Language.js.map | 1 + .../user/core/types/NotificationSettings.d.ts | 19 ++++ .../core/types/NotificationSettings.d.ts.map | 1 + .../user/core/types/NotificationSettings.js | 22 +++++ .../core/types/NotificationSettings.js.map | 1 + .../dist/modules/user/core/types/Theme.d.ts | 6 ++ .../modules/user/core/types/Theme.d.ts.map | 1 + backend/dist/modules/user/core/types/Theme.js | 7 ++ .../dist/modules/user/core/types/Theme.js.map | 1 + .../core/errors/InvalidTimezone.d.ts | 5 + .../core/errors/InvalidTimezone.d.ts.map | 1 + .../core/errors/InvalidTimezone.js | 8 ++ .../core/errors/InvalidTimezone.js.map | 1 + .../core/errors/InvalidUserSettingsKey.d.ts | 5 + .../errors/InvalidUserSettingsKey.d.ts.map | 1 + .../core/errors/InvalidUserSettingsKey.js | 8 ++ .../core/errors/InvalidUserSettingsKey.js.map | 1 + .../core/errors/InvalidUserSettingsValue.d.ts | 5 + .../errors/InvalidUserSettingsValue.d.ts.map | 1 + .../core/errors/InvalidUserSettingsValue.js | 8 ++ .../errors/InvalidUserSettingsValue.js.map | 1 + .../core/errors/UnsupportedLanguage.d.ts | 5 + .../core/errors/UnsupportedLanguage.d.ts.map | 1 + .../core/errors/UnsupportedLanguage.js | 8 ++ .../core/errors/UnsupportedLanguage.js.map | 1 + .../core/errors/UnsupportedTheme.d.ts | 5 + .../core/errors/UnsupportedTheme.d.ts.map | 1 + .../core/errors/UnsupportedTheme.js | 8 ++ .../core/errors/UnsupportedTheme.js.map | 1 + .../core/interfaces/UserSettingsParams.d.ts | 17 ++++ .../interfaces/UserSettingsParams.d.ts.map | 1 + .../core/interfaces/UserSettingsParams.js | 2 + .../core/interfaces/UserSettingsParams.js.map | 1 + .../userSettings/core/model/UserSettings.d.ts | 43 ++++++++ .../core/model/UserSettings.d.ts.map | 1 + .../userSettings/core/model/UserSettings.js | 96 ++++++++++++++++++ .../core/model/UserSettings.js.map | 1 + .../userSettings/core/objects/Language.d.ts | 12 +++ .../core/objects/Language.d.ts.map | 1 + .../userSettings/core/objects/Language.js | 27 +++++ .../userSettings/core/objects/Language.js.map | 1 + .../core/objects/NotificationSettings.d.ts | 18 ++++ .../objects/NotificationSettings.d.ts.map | 1 + .../core/objects/NotificationSettings.js | 33 +++++++ .../core/objects/NotificationSettings.js.map | 1 + .../userSettings/core/objects/Theme.d.ts | 12 +++ .../userSettings/core/objects/Theme.d.ts.map | 1 + .../userSettings/core/objects/Theme.js | 27 +++++ .../userSettings/core/objects/Theme.js.map | 1 + .../userSettings/core/objects/Timezone.d.ts | 9 ++ .../core/objects/Timezone.d.ts.map | 1 + .../userSettings/core/objects/Timezone.js | 18 ++++ .../userSettings/core/objects/Timezone.js.map | 1 + .../userSettings/core/types/Language.d.ts | 6 ++ .../userSettings/core/types/Language.d.ts.map | 1 + .../userSettings/core/types/Language.js | 7 ++ .../userSettings/core/types/Language.js.map | 1 + .../core/types/NotificationSettings.d.ts | 19 ++++ .../core/types/NotificationSettings.d.ts.map | 1 + .../core/types/NotificationSettings.js | 22 +++++ .../core/types/NotificationSettings.js.map | 1 + .../userSettings/core/types/Theme.d.ts | 6 ++ .../userSettings/core/types/Theme.d.ts.map | 1 + .../modules/userSettings/core/types/Theme.js | 7 ++ .../userSettings/core/types/Theme.js.map | 1 + .../core/errors/AccountAlreadyExists.ts | 8 ++ .../account/core/errors/InvalidAccount.ts | 8 ++ .../account/core/events/AccountCreated.ts | 10 ++ .../account/core/interfaces/AccountParams.ts | 10 ++ .../src/modules/account/core/model/Account.ts | 98 ++++++++++++++++++- .../account/core/objects/AccountName.ts | 19 ++++ .../modules/account/core/objects/IdAccount.ts | 7 ++ .../user/core/errors/AccountDoesntExist.ts | 8 ++ .../user/core/errors/DuplicateAccount.ts | 8 ++ .../user/core/events/AccountChanged.ts | 16 +++ .../user/core/interfaces/UserParams.ts | 5 + backend/src/modules/user/core/model/User.ts | 73 ++++++++++++++ .../core/errors/InvalidTimezone.ts | 8 ++ .../core/errors/InvalidUserSettingsKey.ts | 8 ++ .../core/errors/InvalidUserSettingsValue.ts | 8 ++ .../core/errors/UnsupportedLanguage.ts | 8 ++ .../core/errors/UnsupportedTheme.ts | 8 ++ .../core/interfaces/UserSettingsParams.ts | 17 ++++ .../userSettings/core/model/UserSettings.ts | 94 ++++++++++++++++++ .../userSettings/core/objects/Language.ts | 17 ++++ .../core/objects/NotificationSettings.ts | 48 +++++++++ .../userSettings/core/objects/Theme.ts | 17 ++++ .../userSettings/core/objects/Timezone.ts | 17 ++++ .../userSettings/core/types/Language.ts | 6 ++ .../core/types/NotificationSettings.ts | 20 ++++ .../modules/userSettings/core/types/Theme.ts | 6 ++ .../account/core/model/Account.test.ts | 35 +++++++ .../account/core/objects/AccountName.test.ts | 12 +++ .../modules/user/core/model/User.test.ts | 50 ++++++++++ .../user/core/objects/Language.test.ts | 16 +++ .../core/objects/NotificationSettings.test.ts | 22 +++++ .../modules/user/core/objects/Theme.test.ts | 16 +++ .../user/core/objects/Timezone.test.ts | 15 +++ .../core/model/UserSettings.test.ts | 79 +++++++++++++++ 191 files changed, 1969 insertions(+), 12 deletions(-) create mode 100644 backend/dist/modules/account/core/errors/AccountAlreadyExists.d.ts create mode 100644 backend/dist/modules/account/core/errors/AccountAlreadyExists.d.ts.map create mode 100644 backend/dist/modules/account/core/errors/AccountAlreadyExists.js create mode 100644 backend/dist/modules/account/core/errors/AccountAlreadyExists.js.map create mode 100644 backend/dist/modules/account/core/errors/InvalidAccount.d.ts create mode 100644 backend/dist/modules/account/core/errors/InvalidAccount.d.ts.map create mode 100644 backend/dist/modules/account/core/errors/InvalidAccount.js create mode 100644 backend/dist/modules/account/core/errors/InvalidAccount.js.map create mode 100644 backend/dist/modules/account/core/events/AccountCreated.d.ts create mode 100644 backend/dist/modules/account/core/events/AccountCreated.d.ts.map create mode 100644 backend/dist/modules/account/core/events/AccountCreated.js create mode 100644 backend/dist/modules/account/core/events/AccountCreated.js.map create mode 100644 backend/dist/modules/account/core/interfaces/AccountParams.d.ts create mode 100644 backend/dist/modules/account/core/interfaces/AccountParams.d.ts.map create mode 100644 backend/dist/modules/account/core/interfaces/AccountParams.js create mode 100644 backend/dist/modules/account/core/interfaces/AccountParams.js.map create mode 100644 backend/dist/modules/account/core/objects/AccountName.d.ts create mode 100644 backend/dist/modules/account/core/objects/AccountName.d.ts.map create mode 100644 backend/dist/modules/account/core/objects/AccountName.js create mode 100644 backend/dist/modules/account/core/objects/AccountName.js.map create mode 100644 backend/dist/modules/account/core/objects/IdAccount.d.ts create mode 100644 backend/dist/modules/account/core/objects/IdAccount.d.ts.map create mode 100644 backend/dist/modules/account/core/objects/IdAccount.js create mode 100644 backend/dist/modules/account/core/objects/IdAccount.js.map create mode 100644 backend/dist/modules/account/core/types/Account.d.ts create mode 100644 backend/dist/modules/account/core/types/Account.d.ts.map create mode 100644 backend/dist/modules/account/core/types/Account.js create mode 100644 backend/dist/modules/account/core/types/Account.js.map create mode 100644 backend/dist/modules/user/core/errors/AccountDoesntExist.d.ts create mode 100644 backend/dist/modules/user/core/errors/AccountDoesntExist.d.ts.map create mode 100644 backend/dist/modules/user/core/errors/AccountDoesntExist.js create mode 100644 backend/dist/modules/user/core/errors/AccountDoesntExist.js.map create mode 100644 backend/dist/modules/user/core/errors/DuplicateAccount.d.ts create mode 100644 backend/dist/modules/user/core/errors/DuplicateAccount.d.ts.map create mode 100644 backend/dist/modules/user/core/errors/DuplicateAccount.js create mode 100644 backend/dist/modules/user/core/errors/DuplicateAccount.js.map create mode 100644 backend/dist/modules/user/core/errors/InvalidTimezone.d.ts create mode 100644 backend/dist/modules/user/core/errors/InvalidTimezone.d.ts.map create mode 100644 backend/dist/modules/user/core/errors/InvalidTimezone.js create mode 100644 backend/dist/modules/user/core/errors/InvalidTimezone.js.map create mode 100644 backend/dist/modules/user/core/errors/UnsupportedLanguage.d.ts create mode 100644 backend/dist/modules/user/core/errors/UnsupportedLanguage.d.ts.map create mode 100644 backend/dist/modules/user/core/errors/UnsupportedLanguage.js create mode 100644 backend/dist/modules/user/core/errors/UnsupportedLanguage.js.map create mode 100644 backend/dist/modules/user/core/errors/UnsupportedTheme.d.ts create mode 100644 backend/dist/modules/user/core/errors/UnsupportedTheme.d.ts.map create mode 100644 backend/dist/modules/user/core/errors/UnsupportedTheme.js create mode 100644 backend/dist/modules/user/core/errors/UnsupportedTheme.js.map create mode 100644 backend/dist/modules/user/core/events/AccountChanged.d.ts create mode 100644 backend/dist/modules/user/core/events/AccountChanged.d.ts.map create mode 100644 backend/dist/modules/user/core/events/AccountChanged.js create mode 100644 backend/dist/modules/user/core/events/AccountChanged.js.map create mode 100644 backend/dist/modules/user/core/interfaces/UserParams.d.ts create mode 100644 backend/dist/modules/user/core/interfaces/UserParams.d.ts.map create mode 100644 backend/dist/modules/user/core/interfaces/UserParams.js create mode 100644 backend/dist/modules/user/core/interfaces/UserParams.js.map create mode 100644 backend/dist/modules/user/core/model/User.d.ts create mode 100644 backend/dist/modules/user/core/model/User.d.ts.map create mode 100644 backend/dist/modules/user/core/model/User.js create mode 100644 backend/dist/modules/user/core/model/User.js.map create mode 100644 backend/dist/modules/user/core/objects/Language.d.ts create mode 100644 backend/dist/modules/user/core/objects/Language.d.ts.map create mode 100644 backend/dist/modules/user/core/objects/Language.js create mode 100644 backend/dist/modules/user/core/objects/Language.js.map create mode 100644 backend/dist/modules/user/core/objects/NotificationSettings.d.ts create mode 100644 backend/dist/modules/user/core/objects/NotificationSettings.d.ts.map create mode 100644 backend/dist/modules/user/core/objects/NotificationSettings.js create mode 100644 backend/dist/modules/user/core/objects/NotificationSettings.js.map create mode 100644 backend/dist/modules/user/core/objects/Theme.d.ts create mode 100644 backend/dist/modules/user/core/objects/Theme.d.ts.map create mode 100644 backend/dist/modules/user/core/objects/Theme.js create mode 100644 backend/dist/modules/user/core/objects/Theme.js.map create mode 100644 backend/dist/modules/user/core/objects/Timezone.d.ts create mode 100644 backend/dist/modules/user/core/objects/Timezone.d.ts.map create mode 100644 backend/dist/modules/user/core/objects/Timezone.js create mode 100644 backend/dist/modules/user/core/objects/Timezone.js.map create mode 100644 backend/dist/modules/user/core/objects/UserSettings.d.ts create mode 100644 backend/dist/modules/user/core/objects/UserSettings.d.ts.map create mode 100644 backend/dist/modules/user/core/objects/UserSettings.js create mode 100644 backend/dist/modules/user/core/objects/UserSettings.js.map create mode 100644 backend/dist/modules/user/core/types/Language.d.ts create mode 100644 backend/dist/modules/user/core/types/Language.d.ts.map create mode 100644 backend/dist/modules/user/core/types/Language.js create mode 100644 backend/dist/modules/user/core/types/Language.js.map create mode 100644 backend/dist/modules/user/core/types/NotificationSettings.d.ts create mode 100644 backend/dist/modules/user/core/types/NotificationSettings.d.ts.map create mode 100644 backend/dist/modules/user/core/types/NotificationSettings.js create mode 100644 backend/dist/modules/user/core/types/NotificationSettings.js.map create mode 100644 backend/dist/modules/user/core/types/Theme.d.ts create mode 100644 backend/dist/modules/user/core/types/Theme.d.ts.map create mode 100644 backend/dist/modules/user/core/types/Theme.js create mode 100644 backend/dist/modules/user/core/types/Theme.js.map create mode 100644 backend/dist/modules/userSettings/core/errors/InvalidTimezone.d.ts create mode 100644 backend/dist/modules/userSettings/core/errors/InvalidTimezone.d.ts.map create mode 100644 backend/dist/modules/userSettings/core/errors/InvalidTimezone.js create mode 100644 backend/dist/modules/userSettings/core/errors/InvalidTimezone.js.map create mode 100644 backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.d.ts create mode 100644 backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.d.ts.map create mode 100644 backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.js create mode 100644 backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.js.map create mode 100644 backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.d.ts create mode 100644 backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.d.ts.map create mode 100644 backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.js create mode 100644 backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.js.map create mode 100644 backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.d.ts create mode 100644 backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.d.ts.map create mode 100644 backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.js create mode 100644 backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.js.map create mode 100644 backend/dist/modules/userSettings/core/errors/UnsupportedTheme.d.ts create mode 100644 backend/dist/modules/userSettings/core/errors/UnsupportedTheme.d.ts.map create mode 100644 backend/dist/modules/userSettings/core/errors/UnsupportedTheme.js create mode 100644 backend/dist/modules/userSettings/core/errors/UnsupportedTheme.js.map create mode 100644 backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts create mode 100644 backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts.map create mode 100644 backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.js create mode 100644 backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.js.map create mode 100644 backend/dist/modules/userSettings/core/model/UserSettings.d.ts create mode 100644 backend/dist/modules/userSettings/core/model/UserSettings.d.ts.map create mode 100644 backend/dist/modules/userSettings/core/model/UserSettings.js create mode 100644 backend/dist/modules/userSettings/core/model/UserSettings.js.map create mode 100644 backend/dist/modules/userSettings/core/objects/Language.d.ts create mode 100644 backend/dist/modules/userSettings/core/objects/Language.d.ts.map create mode 100644 backend/dist/modules/userSettings/core/objects/Language.js create mode 100644 backend/dist/modules/userSettings/core/objects/Language.js.map create mode 100644 backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts create mode 100644 backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts.map create mode 100644 backend/dist/modules/userSettings/core/objects/NotificationSettings.js create mode 100644 backend/dist/modules/userSettings/core/objects/NotificationSettings.js.map create mode 100644 backend/dist/modules/userSettings/core/objects/Theme.d.ts create mode 100644 backend/dist/modules/userSettings/core/objects/Theme.d.ts.map create mode 100644 backend/dist/modules/userSettings/core/objects/Theme.js create mode 100644 backend/dist/modules/userSettings/core/objects/Theme.js.map create mode 100644 backend/dist/modules/userSettings/core/objects/Timezone.d.ts create mode 100644 backend/dist/modules/userSettings/core/objects/Timezone.d.ts.map create mode 100644 backend/dist/modules/userSettings/core/objects/Timezone.js create mode 100644 backend/dist/modules/userSettings/core/objects/Timezone.js.map create mode 100644 backend/dist/modules/userSettings/core/types/Language.d.ts create mode 100644 backend/dist/modules/userSettings/core/types/Language.d.ts.map create mode 100644 backend/dist/modules/userSettings/core/types/Language.js create mode 100644 backend/dist/modules/userSettings/core/types/Language.js.map create mode 100644 backend/dist/modules/userSettings/core/types/NotificationSettings.d.ts create mode 100644 backend/dist/modules/userSettings/core/types/NotificationSettings.d.ts.map create mode 100644 backend/dist/modules/userSettings/core/types/NotificationSettings.js create mode 100644 backend/dist/modules/userSettings/core/types/NotificationSettings.js.map create mode 100644 backend/dist/modules/userSettings/core/types/Theme.d.ts create mode 100644 backend/dist/modules/userSettings/core/types/Theme.d.ts.map create mode 100644 backend/dist/modules/userSettings/core/types/Theme.js create mode 100644 backend/dist/modules/userSettings/core/types/Theme.js.map create mode 100644 backend/src/modules/account/core/errors/AccountAlreadyExists.ts create mode 100644 backend/src/modules/account/core/errors/InvalidAccount.ts create mode 100644 backend/src/modules/account/core/events/AccountCreated.ts create mode 100644 backend/src/modules/account/core/interfaces/AccountParams.ts create mode 100644 backend/src/modules/account/core/objects/AccountName.ts create mode 100644 backend/src/modules/account/core/objects/IdAccount.ts create mode 100644 backend/src/modules/user/core/errors/AccountDoesntExist.ts create mode 100644 backend/src/modules/user/core/errors/DuplicateAccount.ts create mode 100644 backend/src/modules/user/core/events/AccountChanged.ts create mode 100644 backend/src/modules/user/core/interfaces/UserParams.ts create mode 100644 backend/src/modules/user/core/model/User.ts create mode 100644 backend/src/modules/userSettings/core/errors/InvalidTimezone.ts create mode 100644 backend/src/modules/userSettings/core/errors/InvalidUserSettingsKey.ts create mode 100644 backend/src/modules/userSettings/core/errors/InvalidUserSettingsValue.ts create mode 100644 backend/src/modules/userSettings/core/errors/UnsupportedLanguage.ts create mode 100644 backend/src/modules/userSettings/core/errors/UnsupportedTheme.ts create mode 100644 backend/src/modules/userSettings/core/interfaces/UserSettingsParams.ts create mode 100644 backend/src/modules/userSettings/core/model/UserSettings.ts create mode 100644 backend/src/modules/userSettings/core/objects/Language.ts create mode 100644 backend/src/modules/userSettings/core/objects/NotificationSettings.ts create mode 100644 backend/src/modules/userSettings/core/objects/Theme.ts create mode 100644 backend/src/modules/userSettings/core/objects/Timezone.ts create mode 100644 backend/src/modules/userSettings/core/types/Language.ts create mode 100644 backend/src/modules/userSettings/core/types/NotificationSettings.ts create mode 100644 backend/src/modules/userSettings/core/types/Theme.ts create mode 100644 backend/tests/modules/account/core/model/Account.test.ts create mode 100644 backend/tests/modules/account/core/objects/AccountName.test.ts create mode 100644 backend/tests/modules/user/core/model/User.test.ts create mode 100644 backend/tests/modules/user/core/objects/Language.test.ts create mode 100644 backend/tests/modules/user/core/objects/NotificationSettings.test.ts create mode 100644 backend/tests/modules/user/core/objects/Theme.test.ts create mode 100644 backend/tests/modules/user/core/objects/Timezone.test.ts create mode 100644 backend/tests/modules/userSettings/core/model/UserSettings.test.ts diff --git a/.agents/Backend.md b/.agents/Backend.md index d16f966a..e862492c 100644 --- a/.agents/Backend.md +++ b/.agents/Backend.md @@ -19,6 +19,24 @@ ## Specifications - Dont use any in backend logic use unknown, use null instead of undefined - Just follow instructions in prompt +- Domain contains logic, application cordinates this logic and infra and infra just provides services + +# Module structure +**Each module contain at least the next structure** +- domain + - interfaces + - model + - repository + - objects + - types + - events + - errors +- application + - services + - Dtos + - helpers +- providers + -provider_name ## Domain specifications - All entities extends from Entity abstract class (Check Entity structure) @@ -55,6 +73,7 @@ - CheckList item can not be bigger than 1000 characters - Attachment name can not be bigger than 1000 characters - Category name can not be bigger than 1000 characters +- If an invitation is accepted but the inviter doesnt have permissions to invite anymore then the invitation is invalid, if the project is closed or deleted also is invalid the invitation - Oncascade actions does not generate an event for each change, generate a global event that describes that was performed, the on cascade actions are move a list or a task to another position and reorganize ## Allowed Attachments @@ -69,4 +88,7 @@ - Member: Can create resources, comment or add member according to project config - Auditor: Just can observe a project - +# Pull request structure +- Title: type header +- Why: explain why is neede this changes +- What was made: Explain what was made at current pull request diff --git a/backend/dist/modules/account/core/errors/AccountAlreadyExists.d.ts b/backend/dist/modules/account/core/errors/AccountAlreadyExists.d.ts new file mode 100644 index 00000000..5c871008 --- /dev/null +++ b/backend/dist/modules/account/core/errors/AccountAlreadyExists.d.ts @@ -0,0 +1,5 @@ +import CoreError from '../../../shared/core/errors/CoreError'; +export default class AccountAlreadyExists extends CoreError { + constructor(info?: unknown); +} +//# sourceMappingURL=AccountAlreadyExists.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/errors/AccountAlreadyExists.d.ts.map b/backend/dist/modules/account/core/errors/AccountAlreadyExists.d.ts.map new file mode 100644 index 00000000..a1684587 --- /dev/null +++ b/backend/dist/modules/account/core/errors/AccountAlreadyExists.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"AccountAlreadyExists.d.ts","sourceRoot":"","sources":["../../../../../src/modules/account/core/errors/AccountAlreadyExists.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,SAAS;gBAC7C,IAAI,CAAC,EAAE,OAAO;CAI3B"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/errors/AccountAlreadyExists.js b/backend/dist/modules/account/core/errors/AccountAlreadyExists.js new file mode 100644 index 00000000..da4cd16d --- /dev/null +++ b/backend/dist/modules/account/core/errors/AccountAlreadyExists.js @@ -0,0 +1,8 @@ +import CoreError from '../../../shared/core/errors/CoreError'; +export default class AccountAlreadyExists extends CoreError { + constructor(info) { + super('Account already exists', info); + Object.setPrototypeOf(this, AccountAlreadyExists.prototype); + } +} +//# sourceMappingURL=AccountAlreadyExists.js.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/errors/AccountAlreadyExists.js.map b/backend/dist/modules/account/core/errors/AccountAlreadyExists.js.map new file mode 100644 index 00000000..b5d92470 --- /dev/null +++ b/backend/dist/modules/account/core/errors/AccountAlreadyExists.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AccountAlreadyExists.js","sourceRoot":"","sources":["../../../../../src/modules/account/core/errors/AccountAlreadyExists.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,SAAS;IACzD,YAAY,IAAc;QACxB,KAAK,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/errors/InvalidAccount.d.ts b/backend/dist/modules/account/core/errors/InvalidAccount.d.ts new file mode 100644 index 00000000..f1ebf4a3 --- /dev/null +++ b/backend/dist/modules/account/core/errors/InvalidAccount.d.ts @@ -0,0 +1,5 @@ +import CoreError from '../../../shared/core/errors/CoreError'; +export default class InvalidAccount extends CoreError { + constructor(info?: unknown); +} +//# sourceMappingURL=InvalidAccount.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/errors/InvalidAccount.d.ts.map b/backend/dist/modules/account/core/errors/InvalidAccount.d.ts.map new file mode 100644 index 00000000..2b639883 --- /dev/null +++ b/backend/dist/modules/account/core/errors/InvalidAccount.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"InvalidAccount.d.ts","sourceRoot":"","sources":["../../../../../src/modules/account/core/errors/InvalidAccount.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,SAAS;gBACvC,IAAI,CAAC,EAAE,OAAO;CAI3B"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/errors/InvalidAccount.js b/backend/dist/modules/account/core/errors/InvalidAccount.js new file mode 100644 index 00000000..23f5fdfe --- /dev/null +++ b/backend/dist/modules/account/core/errors/InvalidAccount.js @@ -0,0 +1,8 @@ +import CoreError from '../../../shared/core/errors/CoreError'; +export default class InvalidAccount extends CoreError { + constructor(info) { + super(typeof info === 'string' ? info : 'Invalid account', info); + Object.setPrototypeOf(this, InvalidAccount.prototype); + } +} +//# sourceMappingURL=InvalidAccount.js.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/errors/InvalidAccount.js.map b/backend/dist/modules/account/core/errors/InvalidAccount.js.map new file mode 100644 index 00000000..a301d67f --- /dev/null +++ b/backend/dist/modules/account/core/errors/InvalidAccount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"InvalidAccount.js","sourceRoot":"","sources":["../../../../../src/modules/account/core/errors/InvalidAccount.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,SAAS;IACnD,YAAY,IAAc;QACxB,KAAK,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/events/AccountCreated.d.ts b/backend/dist/modules/account/core/events/AccountCreated.d.ts new file mode 100644 index 00000000..d9326ead --- /dev/null +++ b/backend/dist/modules/account/core/events/AccountCreated.d.ts @@ -0,0 +1,8 @@ +import DomainEvent from '../../../shared/core/events/DomainEvent'; +import type DateTime from '../../../shared/core/objects/DateTime'; +import type IdEntity from '../../../shared/core/objects/IdEntity'; +import type AccountParams from '../interfaces/AccountParams'; +export default class AccountCreated extends DomainEvent { + constructor(key: string, date: DateTime, actor: IdEntity, ownerId: IdEntity, idEntity: IdEntity, params: AccountParams); +} +//# sourceMappingURL=AccountCreated.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/events/AccountCreated.d.ts.map b/backend/dist/modules/account/core/events/AccountCreated.d.ts.map new file mode 100644 index 00000000..70f926d5 --- /dev/null +++ b/backend/dist/modules/account/core/events/AccountCreated.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"AccountCreated.d.ts","sourceRoot":"","sources":["../../../../../src/modules/account/core/events/AccountCreated.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,yCAAyC,CAAC;AAClE,OAAO,KAAK,QAAQ,MAAM,uCAAuC,CAAC;AAClE,OAAO,KAAK,QAAQ,MAAM,uCAAuC,CAAC;AAClE,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;gBACzC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa;CAGvH"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/events/AccountCreated.js b/backend/dist/modules/account/core/events/AccountCreated.js new file mode 100644 index 00000000..81be4ac7 --- /dev/null +++ b/backend/dist/modules/account/core/events/AccountCreated.js @@ -0,0 +1,7 @@ +import DomainEvent from '../../../shared/core/events/DomainEvent'; +export default class AccountCreated extends DomainEvent { + constructor(key, date, actor, ownerId, idEntity, params) { + super(key, date, actor, ownerId, idEntity, 'ACCOUNT_CREATED', params); + } +} +//# sourceMappingURL=AccountCreated.js.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/events/AccountCreated.js.map b/backend/dist/modules/account/core/events/AccountCreated.js.map new file mode 100644 index 00000000..a9ef565f --- /dev/null +++ b/backend/dist/modules/account/core/events/AccountCreated.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AccountCreated.js","sourceRoot":"","sources":["../../../../../src/modules/account/core/events/AccountCreated.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,yCAAyC,CAAC;AAKlE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,YAAY,GAAW,EAAE,IAAc,EAAE,KAAe,EAAE,OAAiB,EAAE,QAAkB,EAAE,MAAqB;QACpH,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/interfaces/AccountParams.d.ts b/backend/dist/modules/account/core/interfaces/AccountParams.d.ts new file mode 100644 index 00000000..5331602c --- /dev/null +++ b/backend/dist/modules/account/core/interfaces/AccountParams.d.ts @@ -0,0 +1,11 @@ +export default interface AccountParams { + id: string; + email: string; + isPrimary: boolean; + name: string; + provider?: string | null; + profileImage?: string | null; + userId?: string | null; + createdAt?: Date; +} +//# sourceMappingURL=AccountParams.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/interfaces/AccountParams.d.ts.map b/backend/dist/modules/account/core/interfaces/AccountParams.d.ts.map new file mode 100644 index 00000000..df02af92 --- /dev/null +++ b/backend/dist/modules/account/core/interfaces/AccountParams.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"AccountParams.d.ts","sourceRoot":"","sources":["../../../../../src/modules/account/core/interfaces/AccountParams.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,aAAa;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/interfaces/AccountParams.js b/backend/dist/modules/account/core/interfaces/AccountParams.js new file mode 100644 index 00000000..f03a978b --- /dev/null +++ b/backend/dist/modules/account/core/interfaces/AccountParams.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=AccountParams.js.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/interfaces/AccountParams.js.map b/backend/dist/modules/account/core/interfaces/AccountParams.js.map new file mode 100644 index 00000000..b21c4c5e --- /dev/null +++ b/backend/dist/modules/account/core/interfaces/AccountParams.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AccountParams.js","sourceRoot":"","sources":["../../../../../src/modules/account/core/interfaces/AccountParams.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/backend/dist/modules/account/core/model/Account.d.ts b/backend/dist/modules/account/core/model/Account.d.ts index 87e947bc..67fcfb93 100644 --- a/backend/dist/modules/account/core/model/Account.d.ts +++ b/backend/dist/modules/account/core/model/Account.d.ts @@ -1,3 +1,29 @@ -export default class Account { +import Entity from '../../../shared/core/model/Entity'; +import IdAccount from '../objects/IdAccount'; +import IdEntity from '../../../shared/core/objects/IdEntity'; +import type AccountParams from '../interfaces/AccountParams'; +import Email from '../../../shared/core/objects/Email'; +import AccountName from '../objects/AccountName'; +export default class Account extends Entity { + private email; + private name; + private provider; + private profileImage; + private owner; + private isPrimary; + private createdAt; + private constructor(); + static create(key: string, id: IdAccount, actor: IdEntity, params: { + email: Email; + name: AccountName; + provider?: string | null; + profileImage?: string | null; + owner?: IdEntity | null; + isPrimary?: boolean; + }): Account; + static fromPrimitives(params: AccountParams): Account; + toPrimitives(): AccountParams; + getEmail(): Email; + getName(): AccountName; } //# sourceMappingURL=Account.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/model/Account.d.ts.map b/backend/dist/modules/account/core/model/Account.d.ts.map index 84360be0..1bd0445e 100644 --- a/backend/dist/modules/account/core/model/Account.d.ts.map +++ b/backend/dist/modules/account/core/model/Account.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../../../../src/modules/account/core/model/Account.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,OAAO;CAAG"} \ No newline at end of file +{"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../../../../src/modules/account/core/model/Account.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAI7D,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,MAAM,oCAAoC,CAAC;AACvD,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAIjD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IAC1C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO;WAoBO,MAAM,CACnB,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/I,OAAO;WAWI,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAmBrD,YAAY,IAAI,aAAa;IAa7B,QAAQ,IAAI,KAAK;IAIjB,OAAO,IAAI,WAAW;CAG7B"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/model/Account.js b/backend/dist/modules/account/core/model/Account.js index 14ddd3b2..e3adc3d4 100644 --- a/backend/dist/modules/account/core/model/Account.js +++ b/backend/dist/modules/account/core/model/Account.js @@ -1,3 +1,63 @@ -export default class Account { +import Entity from '../../../shared/core/model/Entity'; +import IdAccount from '../objects/IdAccount'; +import IdEntity from '../../../shared/core/objects/IdEntity'; +import DateTime from '../../../shared/core/objects/DateTime'; +import None from '../../../shared/core/objects/None'; +import AccountCreated from '../events/AccountCreated'; +import Email from '../../../shared/core/objects/Email'; +import AccountName from '../objects/AccountName'; +import Url from '../../../shared/core/objects/URL'; +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; +export default class Account extends Entity { + constructor(id, email, isPrimary = false, name, provider, profileImage, owner, createdAt) { + super(id); + this.provider = new None(); + this.profileImage = new None(); + this.owner = new None(); + this.isPrimary = false; + this.email = email; + this.name = name; + this.provider = provider; + this.profileImage = profileImage; + this.owner = owner; + this.isPrimary = isPrimary; + this.createdAt = createdAt; + } + static create(key, id, actor, params) { + const provider = params.provider ? params.provider : new None(); + const profileImage = params.profileImage ? new Url(params.profileImage) : new None(); + const owner = params.owner ? params.owner : new None(); + const createdAt = DateTime.now(); + const account = new Account(id, params.email, params.isPrimary, params.name, provider, profileImage, owner, createdAt); + account.addEvent(new AccountCreated(key, DateTime.now(), actor, actor, id, account.toPrimitives())); + return account; + } + static fromPrimitives(params) { + const provider = params.provider ? params.provider : new None(); + const profileImage = params.profileImage ? new Url(params.profileImage) : new None(); + const owner = params.userId ? new IdEntity(params.userId) : new None(); + if (!params.createdAt) + throw new InvalidParameters("The account must include a creation date"); + const createdAt = DateTime.create(params.createdAt); + return new Account(new IdAccount(params.id), new Email(params.email), params.isPrimary, new AccountName(params.name), provider, profileImage, owner, createdAt); + } + toPrimitives() { + return { + id: super.getID().getID(), + email: this.email.getEmail(), + isPrimary: this.isPrimary, + name: this.name.toPrimitives(), + provider: this.provider instanceof None ? null : this.provider, + profileImage: this.profileImage instanceof None ? null : this.profileImage.getUrl(), + userId: this.owner instanceof None ? null : this.owner.getID(), + createdAt: this.createdAt.getDate() + }; + } + getEmail() { + return this.email; + } + getName() { + return this.name; + } } //# sourceMappingURL=Account.js.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/model/Account.js.map b/backend/dist/modules/account/core/model/Account.js.map index 82877fd9..e1ea8ce0 100644 --- a/backend/dist/modules/account/core/model/Account.js.map +++ b/backend/dist/modules/account/core/model/Account.js.map @@ -1 +1 @@ -{"version":3,"file":"Account.js","sourceRoot":"","sources":["../../../../../src/modules/account/core/model/Account.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,OAAO;CAAG"} \ No newline at end of file +{"version":3,"file":"Account.js","sourceRoot":"","sources":["../../../../../src/modules/account/core/model/Account.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/objects/AccountName.d.ts b/backend/dist/modules/account/core/objects/AccountName.d.ts new file mode 100644 index 00000000..d52917d5 --- /dev/null +++ b/backend/dist/modules/account/core/objects/AccountName.d.ts @@ -0,0 +1,8 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +export default class AccountName extends ValueObject { + private readonly name; + constructor(name: string); + getName(): string; + toPrimitives(): string; +} +//# sourceMappingURL=AccountName.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/objects/AccountName.d.ts.map b/backend/dist/modules/account/core/objects/AccountName.d.ts.map new file mode 100644 index 00000000..e3678c9c --- /dev/null +++ b/backend/dist/modules/account/core/objects/AccountName.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"AccountName.d.ts","sourceRoot":"","sources":["../../../../../src/modules/account/core/objects/AccountName.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAGnE,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;gBAEhB,IAAI,EAAE,MAAM;IAKjB,OAAO,IAAI,MAAM;IAIjB,YAAY,IAAI,MAAM;CAG9B"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/objects/AccountName.js b/backend/dist/modules/account/core/objects/AccountName.js new file mode 100644 index 00000000..1fc154fb --- /dev/null +++ b/backend/dist/modules/account/core/objects/AccountName.js @@ -0,0 +1,15 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import Text from '../../../shared/core/objects/Text'; +export default class AccountName extends ValueObject { + constructor(name) { + super(); + this.name = new Text(name); + } + getName() { + return this.name.getText(); + } + toPrimitives() { + return this.name.getText(); + } +} +//# sourceMappingURL=AccountName.js.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/objects/AccountName.js.map b/backend/dist/modules/account/core/objects/AccountName.js.map new file mode 100644 index 00000000..5e06d291 --- /dev/null +++ b/backend/dist/modules/account/core/objects/AccountName.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AccountName.js","sourceRoot":"","sources":["../../../../../src/modules/account/core/objects/AccountName.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,IAAI,MAAM,mCAAmC,CAAC;AAErD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAGlD,YAAY,IAAY;QACtB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/objects/IdAccount.d.ts b/backend/dist/modules/account/core/objects/IdAccount.d.ts new file mode 100644 index 00000000..c7e5177d --- /dev/null +++ b/backend/dist/modules/account/core/objects/IdAccount.d.ts @@ -0,0 +1,5 @@ +import IdEntity from '../../../shared/core/objects/IdEntity'; +export default class IdAccount extends IdEntity { + constructor(id: string); +} +//# sourceMappingURL=IdAccount.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/objects/IdAccount.d.ts.map b/backend/dist/modules/account/core/objects/IdAccount.d.ts.map new file mode 100644 index 00000000..613a5bb4 --- /dev/null +++ b/backend/dist/modules/account/core/objects/IdAccount.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"IdAccount.d.ts","sourceRoot":"","sources":["../../../../../src/modules/account/core/objects/IdAccount.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,QAAQ;gBACjC,EAAE,EAAE,MAAM;CAGvB"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/objects/IdAccount.js b/backend/dist/modules/account/core/objects/IdAccount.js new file mode 100644 index 00000000..1512c296 --- /dev/null +++ b/backend/dist/modules/account/core/objects/IdAccount.js @@ -0,0 +1,7 @@ +import IdEntity from '../../../shared/core/objects/IdEntity'; +export default class IdAccount extends IdEntity { + constructor(id) { + super(id); + } +} +//# sourceMappingURL=IdAccount.js.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/objects/IdAccount.js.map b/backend/dist/modules/account/core/objects/IdAccount.js.map new file mode 100644 index 00000000..4f1d14c4 --- /dev/null +++ b/backend/dist/modules/account/core/objects/IdAccount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"IdAccount.js","sourceRoot":"","sources":["../../../../../src/modules/account/core/objects/IdAccount.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,QAAQ;IAC7C,YAAY,EAAU;QACpB,KAAK,CAAC,EAAE,CAAC,CAAC;IACZ,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/types/Account.d.ts b/backend/dist/modules/account/core/types/Account.d.ts new file mode 100644 index 00000000..1ca52a5d --- /dev/null +++ b/backend/dist/modules/account/core/types/Account.d.ts @@ -0,0 +1,3 @@ +export type AccountId = string; +export type AccountPayload = Record; +//# sourceMappingURL=Account.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/types/Account.d.ts.map b/backend/dist/modules/account/core/types/Account.d.ts.map new file mode 100644 index 00000000..448e58e7 --- /dev/null +++ b/backend/dist/modules/account/core/types/Account.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../../../../src/modules/account/core/types/Account.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/types/Account.js b/backend/dist/modules/account/core/types/Account.js new file mode 100644 index 00000000..cd956516 --- /dev/null +++ b/backend/dist/modules/account/core/types/Account.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=Account.js.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/types/Account.js.map b/backend/dist/modules/account/core/types/Account.js.map new file mode 100644 index 00000000..f71d7c09 --- /dev/null +++ b/backend/dist/modules/account/core/types/Account.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Account.js","sourceRoot":"","sources":["../../../../../src/modules/account/core/types/Account.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/backend/dist/modules/project/core/model/Project.d.ts b/backend/dist/modules/project/core/model/Project.d.ts index bf27cc94..6f6369a1 100644 --- a/backend/dist/modules/project/core/model/Project.d.ts +++ b/backend/dist/modules/project/core/model/Project.d.ts @@ -40,7 +40,7 @@ export default class Project extends Entity { showCompletedTaskEvents(key: string, actor: IdEntity): void; unshowCompletedTaskEvents(key: string, actor: IdEntity): void; addList(Projectlist: ProjectList): void; - removeList(list: ProjectList): void; + removeList(listId: IdEntity): void; generateInvitationToken(): string; invalidateInvitationToken(): void; shouldShowCompletedTasks(): boolean; diff --git a/backend/dist/modules/project/core/model/Project.d.ts.map b/backend/dist/modules/project/core/model/Project.d.ts.map index ae22e604..06069d8b 100644 --- a/backend/dist/modules/project/core/model/Project.d.ts.map +++ b/backend/dist/modules/project/core/model/Project.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Project.d.ts","sourceRoot":"","sources":["../../../../../src/modules/project/core/model/Project.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Project.d.ts","sourceRoot":"","sources":["../../../../../src/modules/project/core/model/Project.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/backend/dist/modules/project/core/model/Project.js b/backend/dist/modules/project/core/model/Project.js index 813b5c13..97855d37 100644 --- a/backend/dist/modules/project/core/model/Project.js +++ b/backend/dist/modules/project/core/model/Project.js @@ -142,10 +142,11 @@ export default class Project extends Entity { Projectlist2.forEach(l => l.position = new PositiveInteger(l.position.getValue() + 1)); this.lists = [...Projectlist1, Projectlist, ...Projectlist2]; } - removeList(list) { + removeList(listId) { this.ensureCanBeModified(); - if (!this.lists.find(l => l.idList.getID() === list.idList.getID())) { - throw new ResourceNotFound(`The list with id: ${list.idList.getID()} does not exists in project with id: ${this.getID()}`, { listId: list.idList.getID(), projectId: this.getID() }); + const list = this.lists.find(l => l.idList.getID() === listId.getID()); + if (!list) { + throw new ResourceNotFound(`The list with id: ${listId.getID()} does not exists in project with id: ${this.getID()}`, { listId: listId.getID(), projectId: this.getID() }); } let ProjectlistToReorganize = this.lists.slice(list.position.getValue() - 1); ProjectlistToReorganize.forEach(l => l.position = new PositiveInteger(l.position.getValue() - 1)); diff --git a/backend/dist/modules/project/core/model/Project.js.map b/backend/dist/modules/project/core/model/Project.js.map index 747dd67a..e7c7fd36 100644 --- a/backend/dist/modules/project/core/model/Project.js.map +++ b/backend/dist/modules/project/core/model/Project.js.map @@ -1 +1 @@ -{"version":3,"file":"Project.js","sourceRoot":"","sources":["../../../../../src/modules/project/core/model/Project.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Project.js","sourceRoot":"","sources":["../../../../../src/modules/project/core/model/Project.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/AccountDoesntExist.d.ts b/backend/dist/modules/user/core/errors/AccountDoesntExist.d.ts new file mode 100644 index 00000000..685a4bd7 --- /dev/null +++ b/backend/dist/modules/user/core/errors/AccountDoesntExist.d.ts @@ -0,0 +1,5 @@ +import CoreError from '../../../shared/core/errors/CoreError'; +export default class AccountDoesntExist extends CoreError { + constructor(info?: unknown); +} +//# sourceMappingURL=AccountDoesntExist.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/AccountDoesntExist.d.ts.map b/backend/dist/modules/user/core/errors/AccountDoesntExist.d.ts.map new file mode 100644 index 00000000..ec94f384 --- /dev/null +++ b/backend/dist/modules/user/core/errors/AccountDoesntExist.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"AccountDoesntExist.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/errors/AccountDoesntExist.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS;gBAC3C,IAAI,CAAC,EAAE,OAAO;CAI3B"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/AccountDoesntExist.js b/backend/dist/modules/user/core/errors/AccountDoesntExist.js new file mode 100644 index 00000000..4a6316e1 --- /dev/null +++ b/backend/dist/modules/user/core/errors/AccountDoesntExist.js @@ -0,0 +1,8 @@ +import CoreError from '../../../shared/core/errors/CoreError'; +export default class AccountDoesntExist extends CoreError { + constructor(info) { + super('Account does not exist', info); + Object.setPrototypeOf(this, AccountDoesntExist.prototype); + } +} +//# sourceMappingURL=AccountDoesntExist.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/AccountDoesntExist.js.map b/backend/dist/modules/user/core/errors/AccountDoesntExist.js.map new file mode 100644 index 00000000..46d319a2 --- /dev/null +++ b/backend/dist/modules/user/core/errors/AccountDoesntExist.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AccountDoesntExist.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/errors/AccountDoesntExist.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS;IACvD,YAAY,IAAc;QACxB,KAAK,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/DuplicateAccount.d.ts b/backend/dist/modules/user/core/errors/DuplicateAccount.d.ts new file mode 100644 index 00000000..6d55b597 --- /dev/null +++ b/backend/dist/modules/user/core/errors/DuplicateAccount.d.ts @@ -0,0 +1,5 @@ +import CoreError from '../../../shared/core/errors/CoreError'; +export default class DuplicateAccount extends CoreError { + constructor(info?: unknown); +} +//# sourceMappingURL=DuplicateAccount.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/DuplicateAccount.d.ts.map b/backend/dist/modules/user/core/errors/DuplicateAccount.d.ts.map new file mode 100644 index 00000000..9f3d458a --- /dev/null +++ b/backend/dist/modules/user/core/errors/DuplicateAccount.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"DuplicateAccount.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/errors/DuplicateAccount.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,SAAS;gBACzC,IAAI,CAAC,EAAE,OAAO;CAI3B"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/DuplicateAccount.js b/backend/dist/modules/user/core/errors/DuplicateAccount.js new file mode 100644 index 00000000..6db61b0f --- /dev/null +++ b/backend/dist/modules/user/core/errors/DuplicateAccount.js @@ -0,0 +1,8 @@ +import CoreError from '../../../shared/core/errors/CoreError'; +export default class DuplicateAccount extends CoreError { + constructor(info) { + super('Account already added to user', info); + Object.setPrototypeOf(this, DuplicateAccount.prototype); + } +} +//# sourceMappingURL=DuplicateAccount.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/DuplicateAccount.js.map b/backend/dist/modules/user/core/errors/DuplicateAccount.js.map new file mode 100644 index 00000000..a03a15c6 --- /dev/null +++ b/backend/dist/modules/user/core/errors/DuplicateAccount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DuplicateAccount.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/errors/DuplicateAccount.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,SAAS;IACrD,YAAY,IAAc;QACxB,KAAK,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/InvalidTimezone.d.ts b/backend/dist/modules/user/core/errors/InvalidTimezone.d.ts new file mode 100644 index 00000000..3be68450 --- /dev/null +++ b/backend/dist/modules/user/core/errors/InvalidTimezone.d.ts @@ -0,0 +1,5 @@ +import CoreError from '../../../shared/core/errors/CoreError'; +export default class InvalidTimezone extends CoreError { + constructor(info?: unknown); +} +//# sourceMappingURL=InvalidTimezone.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/InvalidTimezone.d.ts.map b/backend/dist/modules/user/core/errors/InvalidTimezone.d.ts.map new file mode 100644 index 00000000..17456cba --- /dev/null +++ b/backend/dist/modules/user/core/errors/InvalidTimezone.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"InvalidTimezone.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/errors/InvalidTimezone.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,SAAS;gBACxC,IAAI,CAAC,EAAE,OAAO;CAI3B"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/InvalidTimezone.js b/backend/dist/modules/user/core/errors/InvalidTimezone.js new file mode 100644 index 00000000..d6d8f6a2 --- /dev/null +++ b/backend/dist/modules/user/core/errors/InvalidTimezone.js @@ -0,0 +1,8 @@ +import CoreError from '../../../shared/core/errors/CoreError'; +export default class InvalidTimezone extends CoreError { + constructor(info) { + super('Invalid timezone', info); + Object.setPrototypeOf(this, InvalidTimezone.prototype); + } +} +//# sourceMappingURL=InvalidTimezone.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/InvalidTimezone.js.map b/backend/dist/modules/user/core/errors/InvalidTimezone.js.map new file mode 100644 index 00000000..f761e2b8 --- /dev/null +++ b/backend/dist/modules/user/core/errors/InvalidTimezone.js.map @@ -0,0 +1 @@ +{"version":3,"file":"InvalidTimezone.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/errors/InvalidTimezone.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,SAAS;IACpD,YAAY,IAAc;QACxB,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/UnsupportedLanguage.d.ts b/backend/dist/modules/user/core/errors/UnsupportedLanguage.d.ts new file mode 100644 index 00000000..1d4341a9 --- /dev/null +++ b/backend/dist/modules/user/core/errors/UnsupportedLanguage.d.ts @@ -0,0 +1,5 @@ +import CoreError from '../../../shared/core/errors/CoreError'; +export default class UnsupportedLanguage extends CoreError { + constructor(info?: unknown); +} +//# sourceMappingURL=UnsupportedLanguage.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/UnsupportedLanguage.d.ts.map b/backend/dist/modules/user/core/errors/UnsupportedLanguage.d.ts.map new file mode 100644 index 00000000..6b1bffe4 --- /dev/null +++ b/backend/dist/modules/user/core/errors/UnsupportedLanguage.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"UnsupportedLanguage.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/errors/UnsupportedLanguage.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,SAAS;gBAC5C,IAAI,CAAC,EAAE,OAAO;CAI3B"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/UnsupportedLanguage.js b/backend/dist/modules/user/core/errors/UnsupportedLanguage.js new file mode 100644 index 00000000..a9aca64a --- /dev/null +++ b/backend/dist/modules/user/core/errors/UnsupportedLanguage.js @@ -0,0 +1,8 @@ +import CoreError from '../../../shared/core/errors/CoreError'; +export default class UnsupportedLanguage extends CoreError { + constructor(info) { + super('Unsupported language', info); + Object.setPrototypeOf(this, UnsupportedLanguage.prototype); + } +} +//# sourceMappingURL=UnsupportedLanguage.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/UnsupportedLanguage.js.map b/backend/dist/modules/user/core/errors/UnsupportedLanguage.js.map new file mode 100644 index 00000000..f63a111e --- /dev/null +++ b/backend/dist/modules/user/core/errors/UnsupportedLanguage.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UnsupportedLanguage.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/errors/UnsupportedLanguage.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,SAAS;IACxD,YAAY,IAAc;QACxB,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/UnsupportedTheme.d.ts b/backend/dist/modules/user/core/errors/UnsupportedTheme.d.ts new file mode 100644 index 00000000..c97cd795 --- /dev/null +++ b/backend/dist/modules/user/core/errors/UnsupportedTheme.d.ts @@ -0,0 +1,5 @@ +import CoreError from '../../../shared/core/errors/CoreError'; +export default class UnsupportedTheme extends CoreError { + constructor(info?: unknown); +} +//# sourceMappingURL=UnsupportedTheme.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/UnsupportedTheme.d.ts.map b/backend/dist/modules/user/core/errors/UnsupportedTheme.d.ts.map new file mode 100644 index 00000000..c08bee24 --- /dev/null +++ b/backend/dist/modules/user/core/errors/UnsupportedTheme.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"UnsupportedTheme.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/errors/UnsupportedTheme.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,SAAS;gBACzC,IAAI,CAAC,EAAE,OAAO;CAI3B"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/UnsupportedTheme.js b/backend/dist/modules/user/core/errors/UnsupportedTheme.js new file mode 100644 index 00000000..5969ca21 --- /dev/null +++ b/backend/dist/modules/user/core/errors/UnsupportedTheme.js @@ -0,0 +1,8 @@ +import CoreError from '../../../shared/core/errors/CoreError'; +export default class UnsupportedTheme extends CoreError { + constructor(info) { + super('Unsupported theme', info); + Object.setPrototypeOf(this, UnsupportedTheme.prototype); + } +} +//# sourceMappingURL=UnsupportedTheme.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/errors/UnsupportedTheme.js.map b/backend/dist/modules/user/core/errors/UnsupportedTheme.js.map new file mode 100644 index 00000000..62c499e7 --- /dev/null +++ b/backend/dist/modules/user/core/errors/UnsupportedTheme.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UnsupportedTheme.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/errors/UnsupportedTheme.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,SAAS;IACrD,YAAY,IAAc;QACxB,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/events/AccountChanged.d.ts b/backend/dist/modules/user/core/events/AccountChanged.d.ts new file mode 100644 index 00000000..68bc9ab5 --- /dev/null +++ b/backend/dist/modules/user/core/events/AccountChanged.d.ts @@ -0,0 +1,7 @@ +import DomainEvent from '../../../shared/core/events/DomainEvent'; +import type DateTime from '../../../shared/core/objects/DateTime'; +import type IdEntity from '../../../shared/core/objects/IdEntity'; +export default class AccountChanged extends DomainEvent { + constructor(key: string, date: DateTime, actor: IdEntity, ownerId: IdEntity, accountId: IdEntity, info?: unknown); +} +//# sourceMappingURL=AccountChanged.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/events/AccountChanged.d.ts.map b/backend/dist/modules/user/core/events/AccountChanged.d.ts.map new file mode 100644 index 00000000..53d53875 --- /dev/null +++ b/backend/dist/modules/user/core/events/AccountChanged.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"AccountChanged.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/events/AccountChanged.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,yCAAyC,CAAC;AAClE,OAAO,KAAK,QAAQ,MAAM,uCAAuC,CAAC;AAClE,OAAO,KAAK,QAAQ,MAAM,uCAAuC,CAAC;AAElE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;gBAEnD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,QAAQ,EACnB,IAAI,CAAC,EAAE,OAAO;CAIjB"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/events/AccountChanged.js b/backend/dist/modules/user/core/events/AccountChanged.js new file mode 100644 index 00000000..0a01cc1e --- /dev/null +++ b/backend/dist/modules/user/core/events/AccountChanged.js @@ -0,0 +1,7 @@ +import DomainEvent from '../../../shared/core/events/DomainEvent'; +export default class AccountChanged extends DomainEvent { + constructor(key, date, actor, ownerId, accountId, info) { + super(key, date, actor, ownerId, accountId, 'ACCOUNT_CHANGED', info); + } +} +//# sourceMappingURL=AccountChanged.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/events/AccountChanged.js.map b/backend/dist/modules/user/core/events/AccountChanged.js.map new file mode 100644 index 00000000..f80485b1 --- /dev/null +++ b/backend/dist/modules/user/core/events/AccountChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AccountChanged.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/events/AccountChanged.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,yCAAyC,CAAC;AAIlE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,YACE,GAAW,EACX,IAAc,EACd,KAAe,EACf,OAAiB,EACjB,SAAmB,EACnB,IAAc;QAEd,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/interfaces/UserParams.d.ts b/backend/dist/modules/user/core/interfaces/UserParams.d.ts new file mode 100644 index 00000000..e565c873 --- /dev/null +++ b/backend/dist/modules/user/core/interfaces/UserParams.d.ts @@ -0,0 +1,6 @@ +export default interface UserParams { + id: string; + accounts?: string[]; + primaryAccount?: string | null; +} +//# sourceMappingURL=UserParams.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/interfaces/UserParams.d.ts.map b/backend/dist/modules/user/core/interfaces/UserParams.d.ts.map new file mode 100644 index 00000000..09921e4e --- /dev/null +++ b/backend/dist/modules/user/core/interfaces/UserParams.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"UserParams.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/interfaces/UserParams.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,UAAU;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/interfaces/UserParams.js b/backend/dist/modules/user/core/interfaces/UserParams.js new file mode 100644 index 00000000..242b03fe --- /dev/null +++ b/backend/dist/modules/user/core/interfaces/UserParams.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=UserParams.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/interfaces/UserParams.js.map b/backend/dist/modules/user/core/interfaces/UserParams.js.map new file mode 100644 index 00000000..7bf73263 --- /dev/null +++ b/backend/dist/modules/user/core/interfaces/UserParams.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UserParams.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/interfaces/UserParams.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/backend/dist/modules/user/core/model/User.d.ts b/backend/dist/modules/user/core/model/User.d.ts new file mode 100644 index 00000000..45ec97e1 --- /dev/null +++ b/backend/dist/modules/user/core/model/User.d.ts @@ -0,0 +1,16 @@ +import IdEntity from '../../../shared/core/objects/IdEntity'; +import Entity from '../../../shared/core/model/Entity'; +import type UserParams from '../interfaces/UserParams'; +export default class User extends Entity { + private accounts; + private primaryAccount; + private constructor(); + static fromPrimitives(params: UserParams): User; + addAccount(account: IdEntity): void; + changePrimaryAccount(key: string, actor: IdEntity, newPrimary: IdEntity): void; + removeAccount(account: IdEntity): void; + getAccounts(): IdEntity[]; + getPrimaryAccount(): IdEntity | null; + toPrimitives(): UserParams; +} +//# sourceMappingURL=User.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/model/User.d.ts.map b/backend/dist/modules/user/core/model/User.d.ts.map new file mode 100644 index 00000000..025480f9 --- /dev/null +++ b/backend/dist/modules/user/core/model/User.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/model/User.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,MAAM,MAAM,mCAAmC,CAAC;AAKvD,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAC;AAGvD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,MAAM;IACtC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,cAAc,CAAyB;IAE/C,OAAO;WAMO,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAO/C,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAOnC,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,GAAG,IAAI;IAa9E,aAAa,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAUtC,WAAW,IAAI,QAAQ,EAAE;IAIzB,iBAAiB,IAAI,QAAQ,GAAG,IAAI;IAIpC,YAAY,IAAI,UAAU;CAOlC"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/model/User.js b/backend/dist/modules/user/core/model/User.js new file mode 100644 index 00000000..261a47f5 --- /dev/null +++ b/backend/dist/modules/user/core/model/User.js @@ -0,0 +1,62 @@ +import IdEntity from '../../../shared/core/objects/IdEntity'; +import Entity from '../../../shared/core/model/Entity'; +import DateTime from '../../../shared/core/objects/DateTime'; +import AccountChanged from '../events/AccountChanged'; +import DuplicateAccount from '../errors/DuplicateAccount'; +import AccountDoesntExist from '../errors/AccountDoesntExist'; +import InvalidOperation from '../../../shared/core/errors/InvalidOperation'; +export default class User extends Entity { + constructor(id, accounts = [], primary = null) { + super(id); + this.accounts = []; + this.primaryAccount = null; + this.accounts = accounts; + this.primaryAccount = primary; + } + static fromPrimitives(params) { + const id = new IdEntity(params.id); + const accounts = (params.accounts || []).map((a) => new IdEntity(a)); + const primary = params.primaryAccount ? new IdEntity(params.primaryAccount) : null; + return new User(id, accounts, primary); + } + addAccount(account) { + const exists = this.accounts.find((a) => a.getID() === account.getID()); + if (exists) + throw new DuplicateAccount(account.getID()); + this.accounts.push(account); + if (!this.primaryAccount) + this.primaryAccount = account; + } + changePrimaryAccount(key, actor, newPrimary) { + const previous = this.primaryAccount ? this.primaryAccount.getID() : null; + const found = this.accounts.find((a) => a.getID() === newPrimary.getID()); + if (!found) { + throw new AccountDoesntExist(newPrimary.getID()); + } + this.primaryAccount = newPrimary; + this.addEvent(new AccountChanged(key, DateTime.now(), actor, super.getID(), newPrimary, { previousPrimary: previous })); + } + removeAccount(account) { + const found = this.accounts.find((a) => a.getID() === account.getID()); + if (!found) + throw new AccountDoesntExist(account.getID()); + if (this.accounts.length <= 1) + throw new InvalidOperation('The user at least must have one account'); + this.accounts = this.accounts.filter((a) => a.getID() !== account.getID()); + this.primaryAccount = this.accounts[0] ?? null; + } + getAccounts() { + return this.accounts; + } + getPrimaryAccount() { + return this.primaryAccount; + } + toPrimitives() { + return { + id: super.getID().getID(), + accounts: this.accounts.map((a) => a.getID()), + primaryAccount: this.primaryAccount ? this.primaryAccount.getID() : null, + }; + } +} +//# sourceMappingURL=User.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/model/User.js.map b/backend/dist/modules/user/core/model/User.js.map new file mode 100644 index 00000000..e99a01c7 --- /dev/null +++ b/backend/dist/modules/user/core/model/User.js.map @@ -0,0 +1 @@ +{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/model/User.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/Language.d.ts b/backend/dist/modules/user/core/objects/Language.d.ts new file mode 100644 index 00000000..7bc80a01 --- /dev/null +++ b/backend/dist/modules/user/core/objects/Language.d.ts @@ -0,0 +1,12 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import { AllowedLanguage } from '../types/Language'; +export default class Language extends ValueObject { + private language; + private constructor(); + static create(language: AllowedLanguage): Language; + static es(): Language; + static en(): Language; + getLanguage(): AllowedLanguage; + toPrimitives(): AllowedLanguage; +} +//# sourceMappingURL=Language.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/Language.d.ts.map b/backend/dist/modules/user/core/objects/Language.d.ts.map new file mode 100644 index 00000000..7a987a9d --- /dev/null +++ b/backend/dist/modules/user/core/objects/Language.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Language.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/objects/Language.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAEnE,OAAO,EAAqB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,OAAO,CAAC,QAAQ,CAAmB;IAEnC,OAAO;WAMO,MAAM,CAAC,QAAQ,EAAE,eAAe,GAAG,QAAQ;WAI3C,EAAE,IAAI,QAAQ;WAId,EAAE,IAAI,QAAQ;IAIrB,WAAW,IAAI,eAAe;IAI9B,YAAY,IAAI,eAAe;CAGvC"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/Language.js b/backend/dist/modules/user/core/objects/Language.js new file mode 100644 index 00000000..f4036009 --- /dev/null +++ b/backend/dist/modules/user/core/objects/Language.js @@ -0,0 +1,27 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import UnsupportedLanguage from '../errors/UnsupportedLanguage'; +import { ALLOWED_LANGUAGES, AllowedLanguage } from '../types/Language'; +export default class Language extends ValueObject { + constructor(language) { + super(); + if (!ALLOWED_LANGUAGES.includes(language)) + throw new UnsupportedLanguage(language); + this.language = language; + } + static create(language) { + return new Language(language); + } + static es() { + return new Language(AllowedLanguage.es); + } + static en() { + return new Language(AllowedLanguage.en); + } + getLanguage() { + return this.language; + } + toPrimitives() { + return this.language; + } +} +//# sourceMappingURL=Language.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/Language.js.map b/backend/dist/modules/user/core/objects/Language.js.map new file mode 100644 index 00000000..10ef1f22 --- /dev/null +++ b/backend/dist/modules/user/core/objects/Language.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Language.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/objects/Language.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAG/C,YAAoB,QAAyB;QAC3C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACnF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,QAAyB;QAC5C,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,EAAE;QACd,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,EAAE;QACd,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/NotificationSettings.d.ts b/backend/dist/modules/user/core/objects/NotificationSettings.d.ts new file mode 100644 index 00000000..5bc806fd --- /dev/null +++ b/backend/dist/modules/user/core/objects/NotificationSettings.d.ts @@ -0,0 +1,18 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import { AllowedNotificationType, AllowedProjectType, AllowedChannelType } from '../types/NotificationSettings'; +export default class NotificationSettings extends ValueObject { + private readonly type; + private readonly projectType; + private readonly channel; + private readonly active; + constructor(type: AllowedNotificationType, projectType: AllowedProjectType, channel: AllowedChannelType, active: boolean); + static create(type: AllowedNotificationType, projectType: AllowedProjectType, channel: AllowedChannelType, active: boolean): NotificationSettings; + isActive(): boolean; + toPrimitives(): { + type: AllowedNotificationType; + projectType: AllowedProjectType; + channel: AllowedChannelType; + active: boolean; + }; +} +//# sourceMappingURL=NotificationSettings.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/NotificationSettings.d.ts.map b/backend/dist/modules/user/core/objects/NotificationSettings.d.ts.map new file mode 100644 index 00000000..6f6bdab2 --- /dev/null +++ b/backend/dist/modules/user/core/objects/NotificationSettings.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"NotificationSettings.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/objects/NotificationSettings.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,EAEL,uBAAuB,EAEvB,kBAAkB,EAElB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,WAAW;IAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAG/B,IAAI,EAAE,uBAAuB,EAC7B,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,OAAO;WAYH,MAAM,CAClB,IAAI,EAAE,uBAAuB,EAC7B,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,OAAO,GACd,oBAAoB;IAIhB,QAAQ,IAAI,OAAO;IAInB,YAAY;;;;;;CAQpB"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/NotificationSettings.js b/backend/dist/modules/user/core/objects/NotificationSettings.js new file mode 100644 index 00000000..6928d329 --- /dev/null +++ b/backend/dist/modules/user/core/objects/NotificationSettings.js @@ -0,0 +1,33 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; +import ValueObject from '../../../shared/core/objects/ValueObject'; +import { ALLOWED_NOTIFICATION_TYPES, AllowedNotificationType, ALLOWED_PROJECT_TYPES, AllowedProjectType, ALLOWED_CHANNEL_TYPES, AllowedChannelType, } from '../types/NotificationSettings'; +export default class NotificationSettings extends ValueObject { + constructor(type, projectType, channel, active) { + super(); + if (!ALLOWED_NOTIFICATION_TYPES.includes(type)) + throw new InvalidParameters('Invalid notification type'); + if (!ALLOWED_PROJECT_TYPES.includes(projectType)) + throw new InvalidParameters('Invalid project notification type'); + if (!ALLOWED_CHANNEL_TYPES.includes(channel)) + throw new InvalidParameters('Invalid channel'); + this.type = type; + this.projectType = projectType; + this.channel = channel; + this.active = !!active; + } + static create(type, projectType, channel, active) { + return new NotificationSettings(type, projectType, channel, active); + } + isActive() { + return this.active; + } + toPrimitives() { + return { + type: this.type, + projectType: this.projectType, + channel: this.channel, + active: this.active, + }; + } +} +//# sourceMappingURL=NotificationSettings.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/NotificationSettings.js.map b/backend/dist/modules/user/core/objects/NotificationSettings.js.map new file mode 100644 index 00000000..61a12feb --- /dev/null +++ b/backend/dist/modules/user/core/objects/NotificationSettings.js.map @@ -0,0 +1 @@ +{"version":3,"file":"NotificationSettings.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/objects/NotificationSettings.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAC9E,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,WAAW;IAM3D,YACE,IAA6B,EAC7B,WAA+B,EAC/B,OAA2B,EAC3B,MAAe;QAEf,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;QACzG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAC7F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,MAAM,CAClB,IAA6B,EAC7B,WAA+B,EAC/B,OAA2B,EAC3B,MAAe;QAEf,OAAO,IAAI,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,YAAY;QACjB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/Theme.d.ts b/backend/dist/modules/user/core/objects/Theme.d.ts new file mode 100644 index 00000000..1aba962e --- /dev/null +++ b/backend/dist/modules/user/core/objects/Theme.d.ts @@ -0,0 +1,12 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import { AllowedTheme } from '../types/Theme'; +export default class Theme extends ValueObject { + private theme; + private constructor(); + static create(theme: AllowedTheme): Theme; + static dark(): Theme; + static light(): Theme; + getTheme(): AllowedTheme; + toPrimitives(): AllowedTheme; +} +//# sourceMappingURL=Theme.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/Theme.d.ts.map b/backend/dist/modules/user/core/objects/Theme.d.ts.map new file mode 100644 index 00000000..a0fb3f3a --- /dev/null +++ b/backend/dist/modules/user/core/objects/Theme.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/objects/Theme.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAEnE,OAAO,EAAkB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO;WAMO,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK;WAIlC,IAAI,IAAI,KAAK;WAIb,KAAK,IAAI,KAAK;IAIrB,QAAQ,IAAI,YAAY;IAIxB,YAAY,IAAI,YAAY;CAGpC"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/Theme.js b/backend/dist/modules/user/core/objects/Theme.js new file mode 100644 index 00000000..b9332bd0 --- /dev/null +++ b/backend/dist/modules/user/core/objects/Theme.js @@ -0,0 +1,27 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import UnsupportedTheme from '../errors/UnsupportedTheme'; +import { ALLOWED_THEMES, AllowedTheme } from '../types/Theme'; +export default class Theme extends ValueObject { + constructor(theme) { + super(); + if (!ALLOWED_THEMES.includes(theme)) + throw new UnsupportedTheme(theme); + this.theme = theme; + } + static create(theme) { + return new Theme(theme); + } + static dark() { + return new Theme(AllowedTheme.dark); + } + static light() { + return new Theme(AllowedTheme.light); + } + getTheme() { + return this.theme; + } + toPrimitives() { + return this.theme; + } +} +//# sourceMappingURL=Theme.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/Theme.js.map b/backend/dist/modules/user/core/objects/Theme.js.map new file mode 100644 index 00000000..961d790e --- /dev/null +++ b/backend/dist/modules/user/core/objects/Theme.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Theme.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/objects/Theme.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,gBAAgB,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAG5C,YAAoB,KAAmB;QACrC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,KAAmB;QACtC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAEM,MAAM,CAAC,IAAI;QAChB,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,KAAK;QACjB,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/Timezone.d.ts b/backend/dist/modules/user/core/objects/Timezone.d.ts new file mode 100644 index 00000000..197e7f0b --- /dev/null +++ b/backend/dist/modules/user/core/objects/Timezone.d.ts @@ -0,0 +1,9 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +export default class Timezone extends ValueObject { + private tz; + private readonly testTimeZone; + constructor(tz: string); + getTimezone(): string; + toPrimitives(): string; +} +//# sourceMappingURL=Timezone.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/Timezone.d.ts.map b/backend/dist/modules/user/core/objects/Timezone.d.ts.map new file mode 100644 index 00000000..83c6ac44 --- /dev/null +++ b/backend/dist/modules/user/core/objects/Timezone.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Timezone.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/objects/Timezone.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAGnE,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,OAAO,CAAC,EAAE,CAAU;IACpB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8C;gBAExD,EAAE,EAAE,MAAM;IAMtB,WAAW,IAAI,MAAM;IAIrB,YAAY,IAAI,MAAM;CAG9B"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/Timezone.js b/backend/dist/modules/user/core/objects/Timezone.js new file mode 100644 index 00000000..b57ab9ab --- /dev/null +++ b/backend/dist/modules/user/core/objects/Timezone.js @@ -0,0 +1,18 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import InvalidTimezone from '../errors/InvalidTimezone'; +export default class Timezone extends ValueObject { + constructor(tz) { + super(); + this.testTimeZone = /^[A-Za-z]+\/[A-Za-z_]+(?:\/[A-Za-z_]+)*$/; + if (!tz || !this.testTimeZone.test(tz)) + throw new InvalidTimezone(tz); + this.tz = tz; + } + getTimezone() { + return this.tz; + } + toPrimitives() { + return this.tz; + } +} +//# sourceMappingURL=Timezone.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/Timezone.js.map b/backend/dist/modules/user/core/objects/Timezone.js.map new file mode 100644 index 00000000..39a7c776 --- /dev/null +++ b/backend/dist/modules/user/core/objects/Timezone.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Timezone.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/objects/Timezone.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAExD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAI/C,YAAmB,EAAU;QAC3B,KAAK,EAAE,CAAC;QAHO,iBAAY,GAAG,0CAA0C,CAAC;QAIzE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/UserSettings.d.ts b/backend/dist/modules/user/core/objects/UserSettings.d.ts new file mode 100644 index 00000000..bdd29f1f --- /dev/null +++ b/backend/dist/modules/user/core/objects/UserSettings.d.ts @@ -0,0 +1,25 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import Language from './Language'; +import Theme from './Theme'; +import Timezone from './Timezone'; +import NotificationSettings from './NotificationSettings'; +export default class UserSettings extends ValueObject { + private readonly language; + private readonly theme; + private readonly timezone; + private readonly notificationSettings; + constructor(language: Language, theme: Theme, timezone: Timezone, notificationSettings: NotificationSettings); + toPrimitives(): { + language: import("../types/Language").AllowedLanguage; + theme: import("../types/Theme").AllowedTheme; + timezone: string; + notificationSettings: { + type: import("../types/NotificationSettings").AllowedNotificationType; + projectType: import("../types/NotificationSettings").AllowedProjectType; + channel: import("../types/NotificationSettings").AllowedChannelType; + active: boolean; + }; + }; + static fromPrimitives(params: any): UserSettings; +} +//# sourceMappingURL=UserSettings.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/UserSettings.d.ts.map b/backend/dist/modules/user/core/objects/UserSettings.d.ts.map new file mode 100644 index 00000000..967b0120 --- /dev/null +++ b/backend/dist/modules/user/core/objects/UserSettings.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"UserSettings.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/objects/UserSettings.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAE1D,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;gBAG1D,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,oBAAoB,EAAE,oBAAoB;IASrC,YAAY;;;;;;;;;;;WASL,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,YAAY;CAaxD"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/UserSettings.js b/backend/dist/modules/user/core/objects/UserSettings.js new file mode 100644 index 00000000..fc4a9391 --- /dev/null +++ b/backend/dist/modules/user/core/objects/UserSettings.js @@ -0,0 +1,26 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import Language from './Language'; +import Theme from './Theme'; +import Timezone from './Timezone'; +import NotificationSettings from './NotificationSettings'; +export default class UserSettings extends ValueObject { + constructor(language, theme, timezone, notificationSettings) { + super(); + this.language = language; + this.theme = theme; + this.timezone = timezone; + this.notificationSettings = notificationSettings; + } + toPrimitives() { + return { + language: this.language.toPrimitives(), + theme: this.theme.toPrimitives(), + timezone: this.timezone.toPrimitives(), + notificationSettings: this.notificationSettings.toPrimitives(), + }; + } + static fromPrimitives(params) { + return new UserSettings(Language.create(params.language), Theme.create(params.theme), new Timezone(params.timezone), NotificationSettings.create(params.notificationSettings.type, params.notificationSettings.projectType, params.notificationSettings.channel, params.notificationSettings.active)); + } +} +//# sourceMappingURL=UserSettings.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/objects/UserSettings.js.map b/backend/dist/modules/user/core/objects/UserSettings.js.map new file mode 100644 index 00000000..aaa02cb3 --- /dev/null +++ b/backend/dist/modules/user/core/objects/UserSettings.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UserSettings.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/objects/UserSettings.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAE1D,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IAMnD,YACE,QAAkB,EAClB,KAAY,EACZ,QAAkB,EAClB,oBAA0C;QAE1C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACnD,CAAC;IAEM,YAAY;QACjB,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;YACtC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;YAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;YACtC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE;SAC/D,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,MAAW;QACtC,OAAO,IAAI,YAAY,CACrB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAe,CAAC,EACvC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAY,CAAC,EACjC,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAkB,CAAC,EACvC,oBAAoB,CAAC,MAAM,CACzB,MAAM,CAAC,oBAAoB,CAAC,IAAW,EACvC,MAAM,CAAC,oBAAoB,CAAC,WAAkB,EAC9C,MAAM,CAAC,oBAAoB,CAAC,OAAc,EAC1C,MAAM,CAAC,oBAAoB,CAAC,MAAM,CACnC,CACF,CAAC;IACJ,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/types/Language.d.ts b/backend/dist/modules/user/core/types/Language.d.ts new file mode 100644 index 00000000..09cac9cf --- /dev/null +++ b/backend/dist/modules/user/core/types/Language.d.ts @@ -0,0 +1,6 @@ +export declare const ALLOWED_LANGUAGES: readonly ["ES", "EN"]; +export declare enum AllowedLanguage { + es = "ES", + en = "EN" +} +//# sourceMappingURL=Language.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/types/Language.d.ts.map b/backend/dist/modules/user/core/types/Language.d.ts.map new file mode 100644 index 00000000..346b4ba7 --- /dev/null +++ b/backend/dist/modules/user/core/types/Language.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Language.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/types/Language.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,uBAAwB,CAAC;AAEvD,oBAAY,eAAe;IAC1B,EAAE,OAAO;IACT,EAAE,OAAO;CACT"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/types/Language.js b/backend/dist/modules/user/core/types/Language.js new file mode 100644 index 00000000..12de331a --- /dev/null +++ b/backend/dist/modules/user/core/types/Language.js @@ -0,0 +1,7 @@ +export const ALLOWED_LANGUAGES = ['ES', 'EN']; +export var AllowedLanguage; +(function (AllowedLanguage) { + AllowedLanguage["es"] = "ES"; + AllowedLanguage["en"] = "EN"; +})(AllowedLanguage || (AllowedLanguage = {})); +//# sourceMappingURL=Language.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/types/Language.js.map b/backend/dist/modules/user/core/types/Language.js.map new file mode 100644 index 00000000..a62abaee --- /dev/null +++ b/backend/dist/modules/user/core/types/Language.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Language.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/types/Language.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC;AAEvD,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IAC1B,4BAAS,CAAA;IACT,4BAAS,CAAA;AACV,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/types/NotificationSettings.d.ts b/backend/dist/modules/user/core/types/NotificationSettings.d.ts new file mode 100644 index 00000000..6c204dba --- /dev/null +++ b/backend/dist/modules/user/core/types/NotificationSettings.d.ts @@ -0,0 +1,19 @@ +export declare const ALLOWED_NOTIFICATION_TYPES: readonly ["ALL", "ASSIGNED", "MENTIONS"]; +export declare enum AllowedNotificationType { + all = "ALL", + assigned = "ASSIGNED", + mentions = "MENTIONS" +} +export declare const ALLOWED_PROJECT_TYPES: readonly ["WATCHING", "FAVORITE", "ALL"]; +export declare enum AllowedProjectType { + watching = "WATCHING", + favorite = "FAVORITE", + all = "ALL" +} +export declare const ALLOWED_CHANNEL_TYPES: readonly ["EMAIL", "PUSH", "ALL"]; +export declare enum AllowedChannelType { + email = "EMAIL", + push = "PUSH", + all = "ALL" +} +//# sourceMappingURL=NotificationSettings.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/types/NotificationSettings.d.ts.map b/backend/dist/modules/user/core/types/NotificationSettings.d.ts.map new file mode 100644 index 00000000..1f51ad76 --- /dev/null +++ b/backend/dist/modules/user/core/types/NotificationSettings.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"NotificationSettings.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/types/NotificationSettings.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,0CAA2C,CAAC;AACnF,oBAAY,uBAAuB;IACjC,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,qBAAqB,0CAA2C,CAAC;AAC9E,oBAAY,kBAAkB;IAC5B,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,GAAG,QAAQ;CACZ;AAED,eAAO,MAAM,qBAAqB,mCAAoC,CAAC;AACvE,oBAAY,kBAAkB;IAC5B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/types/NotificationSettings.js b/backend/dist/modules/user/core/types/NotificationSettings.js new file mode 100644 index 00000000..916e6dd4 --- /dev/null +++ b/backend/dist/modules/user/core/types/NotificationSettings.js @@ -0,0 +1,22 @@ +export const ALLOWED_NOTIFICATION_TYPES = ['ALL', 'ASSIGNED', 'MENTIONS']; +export var AllowedNotificationType; +(function (AllowedNotificationType) { + AllowedNotificationType["all"] = "ALL"; + AllowedNotificationType["assigned"] = "ASSIGNED"; + AllowedNotificationType["mentions"] = "MENTIONS"; +})(AllowedNotificationType || (AllowedNotificationType = {})); +export const ALLOWED_PROJECT_TYPES = ['WATCHING', 'FAVORITE', 'ALL']; +export var AllowedProjectType; +(function (AllowedProjectType) { + AllowedProjectType["watching"] = "WATCHING"; + AllowedProjectType["favorite"] = "FAVORITE"; + AllowedProjectType["all"] = "ALL"; +})(AllowedProjectType || (AllowedProjectType = {})); +export const ALLOWED_CHANNEL_TYPES = ['EMAIL', 'PUSH', 'ALL']; +export var AllowedChannelType; +(function (AllowedChannelType) { + AllowedChannelType["email"] = "EMAIL"; + AllowedChannelType["push"] = "PUSH"; + AllowedChannelType["all"] = "ALL"; +})(AllowedChannelType || (AllowedChannelType = {})); +//# sourceMappingURL=NotificationSettings.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/types/NotificationSettings.js.map b/backend/dist/modules/user/core/types/NotificationSettings.js.map new file mode 100644 index 00000000..9b66d91d --- /dev/null +++ b/backend/dist/modules/user/core/types/NotificationSettings.js.map @@ -0,0 +1 @@ +{"version":3,"file":"NotificationSettings.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/types/NotificationSettings.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAU,CAAC;AACnF,MAAM,CAAN,IAAY,uBAIX;AAJD,WAAY,uBAAuB;IACjC,sCAAW,CAAA;IACX,gDAAqB,CAAA;IACrB,gDAAqB,CAAA;AACvB,CAAC,EAJW,uBAAuB,KAAvB,uBAAuB,QAIlC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAU,CAAC;AAC9E,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,2CAAqB,CAAA;IACrB,2CAAqB,CAAA;IACrB,iCAAW,CAAA;AACb,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AACvE,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,qCAAe,CAAA;IACf,mCAAa,CAAA;IACb,iCAAW,CAAA;AACb,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/types/Theme.d.ts b/backend/dist/modules/user/core/types/Theme.d.ts new file mode 100644 index 00000000..33d5f0be --- /dev/null +++ b/backend/dist/modules/user/core/types/Theme.d.ts @@ -0,0 +1,6 @@ +export declare const ALLOWED_THEMES: readonly ["DARK", "LIGHT"]; +export declare enum AllowedTheme { + dark = "DARK", + light = "LIGHT" +} +//# sourceMappingURL=Theme.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/types/Theme.d.ts.map b/backend/dist/modules/user/core/types/Theme.d.ts.map new file mode 100644 index 00000000..082d30d8 --- /dev/null +++ b/backend/dist/modules/user/core/types/Theme.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/types/Theme.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,4BAA6B,CAAC;AAEzD,oBAAY,YAAY;IACvB,IAAI,SAAS;IACb,KAAK,UAAU;CACf"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/types/Theme.js b/backend/dist/modules/user/core/types/Theme.js new file mode 100644 index 00000000..bd7520b3 --- /dev/null +++ b/backend/dist/modules/user/core/types/Theme.js @@ -0,0 +1,7 @@ +export const ALLOWED_THEMES = ['DARK', 'LIGHT']; +export var AllowedTheme; +(function (AllowedTheme) { + AllowedTheme["dark"] = "DARK"; + AllowedTheme["light"] = "LIGHT"; +})(AllowedTheme || (AllowedTheme = {})); +//# sourceMappingURL=Theme.js.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/types/Theme.js.map b/backend/dist/modules/user/core/types/Theme.js.map new file mode 100644 index 00000000..42d109c6 --- /dev/null +++ b/backend/dist/modules/user/core/types/Theme.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Theme.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/types/Theme.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AAEzD,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACvB,6BAAa,CAAA;IACb,+BAAe,CAAA;AAChB,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/InvalidTimezone.d.ts b/backend/dist/modules/userSettings/core/errors/InvalidTimezone.d.ts new file mode 100644 index 00000000..f1cd81b9 --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/InvalidTimezone.d.ts @@ -0,0 +1,5 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; +export default class InvalidTimezone extends InvalidParameters { + constructor(timezone: string); +} +//# sourceMappingURL=InvalidTimezone.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/InvalidTimezone.d.ts.map b/backend/dist/modules/userSettings/core/errors/InvalidTimezone.d.ts.map new file mode 100644 index 00000000..4c6689f1 --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/InvalidTimezone.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"InvalidTimezone.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/errors/InvalidTimezone.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAE9E,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,iBAAiB;gBAChD,QAAQ,EAAE,MAAM;CAI7B"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/InvalidTimezone.js b/backend/dist/modules/userSettings/core/errors/InvalidTimezone.js new file mode 100644 index 00000000..c42a14ce --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/InvalidTimezone.js @@ -0,0 +1,8 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; +export default class InvalidTimezone extends InvalidParameters { + constructor(timezone) { + super(`Invalid timezone format: ${timezone}`); + Object.setPrototypeOf(this, InvalidTimezone.prototype); + } +} +//# sourceMappingURL=InvalidTimezone.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/InvalidTimezone.js.map b/backend/dist/modules/userSettings/core/errors/InvalidTimezone.js.map new file mode 100644 index 00000000..67000ff3 --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/InvalidTimezone.js.map @@ -0,0 +1 @@ +{"version":3,"file":"InvalidTimezone.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/errors/InvalidTimezone.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAE9E,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,iBAAiB;IAC5D,YAAY,QAAgB;QAC1B,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.d.ts b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.d.ts new file mode 100644 index 00000000..8c6e436f --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.d.ts @@ -0,0 +1,5 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; +export default class InvalidUserSettingsKey extends InvalidParameters { + constructor(setting: string); +} +//# sourceMappingURL=InvalidUserSettingsKey.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.d.ts.map b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.d.ts.map new file mode 100644 index 00000000..42d84553 --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"InvalidUserSettingsKey.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/errors/InvalidUserSettingsKey.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAE9E,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,iBAAiB;gBACvD,OAAO,EAAE,MAAM;CAI5B"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.js b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.js new file mode 100644 index 00000000..f93a3def --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.js @@ -0,0 +1,8 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; +export default class InvalidUserSettingsKey extends InvalidParameters { + constructor(setting) { + super(`Invalid user settings key: ${setting}`); + Object.setPrototypeOf(this, InvalidUserSettingsKey.prototype); + } +} +//# sourceMappingURL=InvalidUserSettingsKey.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.js.map b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.js.map new file mode 100644 index 00000000..8ddd4f9e --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsKey.js.map @@ -0,0 +1 @@ +{"version":3,"file":"InvalidUserSettingsKey.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/errors/InvalidUserSettingsKey.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAE9E,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,iBAAiB;IACnE,YAAY,OAAe;QACzB,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.d.ts b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.d.ts new file mode 100644 index 00000000..22cab729 --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.d.ts @@ -0,0 +1,5 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; +export default class InvalidUserSettingsValue extends InvalidParameters { + constructor(setting: string); +} +//# sourceMappingURL=InvalidUserSettingsValue.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.d.ts.map b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.d.ts.map new file mode 100644 index 00000000..e3cc7dea --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"InvalidUserSettingsValue.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/errors/InvalidUserSettingsValue.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAE9E,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,iBAAiB;gBACzD,OAAO,EAAE,MAAM;CAI5B"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.js b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.js new file mode 100644 index 00000000..8a6c7459 --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.js @@ -0,0 +1,8 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; +export default class InvalidUserSettingsValue extends InvalidParameters { + constructor(setting) { + super(`Invalid user settings value for: ${setting}`); + Object.setPrototypeOf(this, InvalidUserSettingsValue.prototype); + } +} +//# sourceMappingURL=InvalidUserSettingsValue.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.js.map b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.js.map new file mode 100644 index 00000000..f1f87c6d --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/InvalidUserSettingsValue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"InvalidUserSettingsValue.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/errors/InvalidUserSettingsValue.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAE9E,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,iBAAiB;IACrE,YAAY,OAAe;QACzB,KAAK,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;QACrD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.d.ts b/backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.d.ts new file mode 100644 index 00000000..b5dd9475 --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.d.ts @@ -0,0 +1,5 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; +export default class UnsupportedLanguage extends InvalidParameters { + constructor(language: string); +} +//# sourceMappingURL=UnsupportedLanguage.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.d.ts.map b/backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.d.ts.map new file mode 100644 index 00000000..f0143a8a --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"UnsupportedLanguage.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/errors/UnsupportedLanguage.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAE9E,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,iBAAiB;gBACpD,QAAQ,EAAE,MAAM;CAI7B"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.js b/backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.js new file mode 100644 index 00000000..09c36af7 --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.js @@ -0,0 +1,8 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; +export default class UnsupportedLanguage extends InvalidParameters { + constructor(language) { + super(`Unsupported language: ${language}`); + Object.setPrototypeOf(this, UnsupportedLanguage.prototype); + } +} +//# sourceMappingURL=UnsupportedLanguage.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.js.map b/backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.js.map new file mode 100644 index 00000000..1609c5b2 --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/UnsupportedLanguage.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UnsupportedLanguage.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/errors/UnsupportedLanguage.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAE9E,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,iBAAiB;IAChE,YAAY,QAAgB;QAC1B,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/UnsupportedTheme.d.ts b/backend/dist/modules/userSettings/core/errors/UnsupportedTheme.d.ts new file mode 100644 index 00000000..e52d04c3 --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/UnsupportedTheme.d.ts @@ -0,0 +1,5 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; +export default class UnsupportedTheme extends InvalidParameters { + constructor(theme: string); +} +//# sourceMappingURL=UnsupportedTheme.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/UnsupportedTheme.d.ts.map b/backend/dist/modules/userSettings/core/errors/UnsupportedTheme.d.ts.map new file mode 100644 index 00000000..2c61c669 --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/UnsupportedTheme.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"UnsupportedTheme.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/errors/UnsupportedTheme.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAE9E,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,iBAAiB;gBACjD,KAAK,EAAE,MAAM;CAI1B"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/UnsupportedTheme.js b/backend/dist/modules/userSettings/core/errors/UnsupportedTheme.js new file mode 100644 index 00000000..f8a0cba7 --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/UnsupportedTheme.js @@ -0,0 +1,8 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; +export default class UnsupportedTheme extends InvalidParameters { + constructor(theme) { + super(`Unsupported theme: ${theme}`); + Object.setPrototypeOf(this, UnsupportedTheme.prototype); + } +} +//# sourceMappingURL=UnsupportedTheme.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/errors/UnsupportedTheme.js.map b/backend/dist/modules/userSettings/core/errors/UnsupportedTheme.js.map new file mode 100644 index 00000000..8afc06ec --- /dev/null +++ b/backend/dist/modules/userSettings/core/errors/UnsupportedTheme.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UnsupportedTheme.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/errors/UnsupportedTheme.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAE9E,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,iBAAiB;IAC7D,YAAY,KAAa;QACvB,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts b/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts new file mode 100644 index 00000000..22dde0a0 --- /dev/null +++ b/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts @@ -0,0 +1,17 @@ +import type { AllowedChannelType, AllowedNotificationType, AllowedProjectType } from '../types/NotificationSettings'; +import type { AllowedTheme } from '../types/Theme'; +import type { AllowedLanguage } from '../types/Language'; +export default interface UserSettingsParams { + id: string; + userId: string; + language: AllowedLanguage; + theme: AllowedTheme; + timezone: string; + notificationSettings: { + type: AllowedNotificationType; + projectType: AllowedProjectType; + channel: AllowedChannelType; + active: boolean; + }; +} +//# sourceMappingURL=UserSettingsParams.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts.map b/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts.map new file mode 100644 index 00000000..a4da2c8a --- /dev/null +++ b/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"UserSettingsParams.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/interfaces/UserSettingsParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACrH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,CAAC,OAAO,WAAW,kBAAkB;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE;QACpB,IAAI,EAAE,uBAAuB,CAAC;QAC9B,WAAW,EAAE,kBAAkB,CAAC;QAChC,OAAO,EAAE,kBAAkB,CAAC;QAC5B,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;CACH"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.js b/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.js new file mode 100644 index 00000000..b4c66b13 --- /dev/null +++ b/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=UserSettingsParams.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.js.map b/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.js.map new file mode 100644 index 00000000..0c3511af --- /dev/null +++ b/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UserSettingsParams.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/interfaces/UserSettingsParams.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/model/UserSettings.d.ts b/backend/dist/modules/userSettings/core/model/UserSettings.d.ts new file mode 100644 index 00000000..5049531e --- /dev/null +++ b/backend/dist/modules/userSettings/core/model/UserSettings.d.ts @@ -0,0 +1,43 @@ +import Entity from '../../../shared/core/model/Entity'; +import IdEntity from '../../../shared/core/objects/IdEntity'; +import Language from '../objects/Language'; +import Theme from '../objects/Theme'; +import Timezone from '../objects/Timezone'; +import NotificationSettings from '../objects/NotificationSettings'; +import type UserSettingsParams from '../interfaces/UserSettingsParams'; +export type UserSettingsKey = 'language' | 'theme' | 'timezone' | 'notificationSettings'; +export type UserSettingsUpdateValue = K extends 'language' ? Language : K extends 'theme' ? Theme : K extends 'timezone' ? Timezone : K extends 'notificationSettings' ? NotificationSettings : never; +export default class UserSettings extends Entity { + private readonly userId; + private language; + private theme; + private timezone; + private notificationSettings; + private constructor(); + static create(params: UserSettingsParams): UserSettings; + static fromPrimitives(params: UserSettingsParams): UserSettings; + getUserId(): IdEntity; + getLanguage(): Language; + getTheme(): Theme; + getTimezone(): Timezone; + getNotificationSettings(): NotificationSettings; + updateLanguage(language: Language): void; + updateTheme(theme: Theme): void; + updateTimezone(timezone: Timezone): void; + updateNotificationSettings(notificationSettings: NotificationSettings): void; + updateSetting(key: K, value: UserSettingsUpdateValue): void; + toPrimitives(): { + id: string; + userId: string; + language: import("../types/Language").AllowedLanguage; + theme: import("../types/Theme").AllowedTheme; + timezone: string; + notificationSettings: { + type: import("../types/NotificationSettings").AllowedNotificationType; + projectType: import("../types/NotificationSettings").AllowedProjectType; + channel: import("../types/NotificationSettings").AllowedChannelType; + active: boolean; + }; + }; +} +//# sourceMappingURL=UserSettings.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/model/UserSettings.d.ts.map b/backend/dist/modules/userSettings/core/model/UserSettings.d.ts.map new file mode 100644 index 00000000..605440c1 --- /dev/null +++ b/backend/dist/modules/userSettings/core/model/UserSettings.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"UserSettings.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/model/UserSettings.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,MAAM,kBAAkB,CAAC;AACrC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,oBAAoB,MAAM,iCAAiC,CAAC;AAGnE,OAAO,KAAK,kBAAkB,MAAM,kCAAkC,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,sBAAsB,CAAC;AAEzF,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,eAAe,IAC3D,CAAC,SAAS,UAAU,GAAG,QAAQ,GAC/B,CAAC,SAAS,OAAO,GAAG,KAAK,GACzB,CAAC,SAAS,UAAU,GAAG,QAAQ,GAC/B,CAAC,SAAS,sBAAsB,GAAG,oBAAoB,GACvD,KAAK,CAAC;AAER,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,MAAM;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,oBAAoB,CAAuB;IAEnD,OAAO;WAgBO,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY;WAgBhD,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY;IAI/D,SAAS,IAAI,QAAQ;IAIrB,WAAW,IAAI,QAAQ;IAIvB,QAAQ,IAAI,KAAK;IAIjB,WAAW,IAAI,QAAQ;IAIvB,uBAAuB,IAAI,oBAAoB;IAI/C,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKxC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAK/B,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKxC,0BAA0B,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,IAAI;IAK5E,aAAa,CAAC,CAAC,SAAS,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,IAAI;IAuBzF,YAAY;;;;;;;;;;;;;CAUpB"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/model/UserSettings.js b/backend/dist/modules/userSettings/core/model/UserSettings.js new file mode 100644 index 00000000..02abd45f --- /dev/null +++ b/backend/dist/modules/userSettings/core/model/UserSettings.js @@ -0,0 +1,96 @@ +import Entity from '../../../shared/core/model/Entity'; +import IdEntity from '../../../shared/core/objects/IdEntity'; +import Language from '../objects/Language'; +import Theme from '../objects/Theme'; +import Timezone from '../objects/Timezone'; +import NotificationSettings from '../objects/NotificationSettings'; +import InvalidUserSettingsKey from '../errors/InvalidUserSettingsKey'; +import InvalidUserSettingsValue from '../errors/InvalidUserSettingsValue'; +export default class UserSettings extends Entity { + constructor(id, userId, language, theme, timezone, notificationSettings) { + super(id); + this.userId = userId; + this.language = language; + this.theme = theme; + this.timezone = timezone; + this.notificationSettings = notificationSettings; + } + static create(params) { + return new UserSettings(new IdEntity(params.id), new IdEntity(params.userId), Language.create(params.language), Theme.create(params.theme), new Timezone(params.timezone), NotificationSettings.create(params.notificationSettings.type, params.notificationSettings.projectType, params.notificationSettings.channel, params.notificationSettings.active)); + } + static fromPrimitives(params) { + return UserSettings.create(params); + } + getUserId() { + return this.userId; + } + getLanguage() { + return this.language; + } + getTheme() { + return this.theme; + } + getTimezone() { + return this.timezone; + } + getNotificationSettings() { + return this.notificationSettings; + } + updateLanguage(language) { + if (!(language instanceof Language)) + throw new InvalidUserSettingsValue('language'); + this.language = language; + } + updateTheme(theme) { + if (!(theme instanceof Theme)) + throw new InvalidUserSettingsValue('theme'); + this.theme = theme; + } + updateTimezone(timezone) { + if (!(timezone instanceof Timezone)) + throw new InvalidUserSettingsValue('timezone'); + this.timezone = timezone; + } + updateNotificationSettings(notificationSettings) { + if (!(notificationSettings instanceof NotificationSettings)) + throw new InvalidUserSettingsValue('notificationSettings'); + this.notificationSettings = notificationSettings; + } + updateSetting(key, value) { + switch (key) { + case 'language': + if (!(value instanceof Language)) + throw new InvalidUserSettingsValue('language'); + this.updateLanguage(value); + return; + case 'theme': + if (!(value instanceof Theme)) + throw new InvalidUserSettingsValue('theme'); + this.updateTheme(value); + return; + case 'timezone': + if (!(value instanceof Timezone)) + throw new InvalidUserSettingsValue('timezone'); + this.updateTimezone(value); + return; + case 'notificationSettings': + if (!(value instanceof NotificationSettings)) + throw new InvalidUserSettingsValue('notificationSettings'); + this.updateNotificationSettings(value); + return; + default: + throw new InvalidUserSettingsKey(String(key)); + } + } + toPrimitives() { + return { + id: this.getID().getID(), + userId: this.userId.getID(), + language: this.language.toPrimitives(), + theme: this.theme.toPrimitives(), + timezone: this.timezone.toPrimitives(), + notificationSettings: this.notificationSettings.toPrimitives(), + }; + } +} +//# sourceMappingURL=UserSettings.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/model/UserSettings.js.map b/backend/dist/modules/userSettings/core/model/UserSettings.js.map new file mode 100644 index 00000000..2731bc11 --- /dev/null +++ b/backend/dist/modules/userSettings/core/model/UserSettings.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UserSettings.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/model/UserSettings.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Language.d.ts b/backend/dist/modules/userSettings/core/objects/Language.d.ts new file mode 100644 index 00000000..7bc80a01 --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/Language.d.ts @@ -0,0 +1,12 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import { AllowedLanguage } from '../types/Language'; +export default class Language extends ValueObject { + private language; + private constructor(); + static create(language: AllowedLanguage): Language; + static es(): Language; + static en(): Language; + getLanguage(): AllowedLanguage; + toPrimitives(): AllowedLanguage; +} +//# sourceMappingURL=Language.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Language.d.ts.map b/backend/dist/modules/userSettings/core/objects/Language.d.ts.map new file mode 100644 index 00000000..e52cc787 --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/Language.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Language.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Language.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAEnE,OAAO,EAAqB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,OAAO,CAAC,QAAQ,CAAmB;IAEnC,OAAO;WAMO,MAAM,CAAC,QAAQ,EAAE,eAAe,GAAG,QAAQ;WAI3C,EAAE,IAAI,QAAQ;WAId,EAAE,IAAI,QAAQ;IAIrB,WAAW,IAAI,eAAe;IAI9B,YAAY,IAAI,eAAe;CAGvC"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Language.js b/backend/dist/modules/userSettings/core/objects/Language.js new file mode 100644 index 00000000..f4036009 --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/Language.js @@ -0,0 +1,27 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import UnsupportedLanguage from '../errors/UnsupportedLanguage'; +import { ALLOWED_LANGUAGES, AllowedLanguage } from '../types/Language'; +export default class Language extends ValueObject { + constructor(language) { + super(); + if (!ALLOWED_LANGUAGES.includes(language)) + throw new UnsupportedLanguage(language); + this.language = language; + } + static create(language) { + return new Language(language); + } + static es() { + return new Language(AllowedLanguage.es); + } + static en() { + return new Language(AllowedLanguage.en); + } + getLanguage() { + return this.language; + } + toPrimitives() { + return this.language; + } +} +//# sourceMappingURL=Language.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Language.js.map b/backend/dist/modules/userSettings/core/objects/Language.js.map new file mode 100644 index 00000000..c8bb2a56 --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/Language.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Language.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Language.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAG/C,YAAoB,QAAyB;QAC3C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACnF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,QAAyB;QAC5C,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,EAAE;QACd,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,EAAE;QACd,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts b/backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts new file mode 100644 index 00000000..0ca84f8a --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts @@ -0,0 +1,18 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import { AllowedChannelType, AllowedNotificationType, AllowedProjectType } from '../types/NotificationSettings'; +export default class NotificationSettings extends ValueObject { + private readonly type; + private readonly projectType; + private readonly channel; + private readonly active; + constructor(type: AllowedNotificationType, projectType: AllowedProjectType, channel: AllowedChannelType, active: boolean); + static create(type: AllowedNotificationType, projectType: AllowedProjectType, channel: AllowedChannelType, active: boolean): NotificationSettings; + isActive(): boolean; + toPrimitives(): { + type: AllowedNotificationType; + projectType: AllowedProjectType; + channel: AllowedChannelType; + active: boolean; + }; +} +//# sourceMappingURL=NotificationSettings.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts.map b/backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts.map new file mode 100644 index 00000000..cbf92c4d --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"NotificationSettings.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/NotificationSettings.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,EAIL,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,WAAW;IAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAG/B,IAAI,EAAE,uBAAuB,EAC7B,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,OAAO;WAYH,MAAM,CAClB,IAAI,EAAE,uBAAuB,EAC7B,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,OAAO,GACd,oBAAoB;IAIhB,QAAQ,IAAI,OAAO;IAInB,YAAY;;;;;;CAQpB"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/NotificationSettings.js b/backend/dist/modules/userSettings/core/objects/NotificationSettings.js new file mode 100644 index 00000000..b3a6cd71 --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/NotificationSettings.js @@ -0,0 +1,33 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; +import ValueObject from '../../../shared/core/objects/ValueObject'; +import { ALLOWED_CHANNEL_TYPES, ALLOWED_NOTIFICATION_TYPES, ALLOWED_PROJECT_TYPES, AllowedChannelType, AllowedNotificationType, AllowedProjectType, } from '../types/NotificationSettings'; +export default class NotificationSettings extends ValueObject { + constructor(type, projectType, channel, active) { + super(); + if (!ALLOWED_NOTIFICATION_TYPES.includes(type)) + throw new InvalidParameters('Invalid notification type'); + if (!ALLOWED_PROJECT_TYPES.includes(projectType)) + throw new InvalidParameters('Invalid project notification type'); + if (!ALLOWED_CHANNEL_TYPES.includes(channel)) + throw new InvalidParameters('Invalid channel'); + this.type = type; + this.projectType = projectType; + this.channel = channel; + this.active = !!active; + } + static create(type, projectType, channel, active) { + return new NotificationSettings(type, projectType, channel, active); + } + isActive() { + return this.active; + } + toPrimitives() { + return { + type: this.type, + projectType: this.projectType, + channel: this.channel, + active: this.active, + }; + } +} +//# sourceMappingURL=NotificationSettings.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/NotificationSettings.js.map b/backend/dist/modules/userSettings/core/objects/NotificationSettings.js.map new file mode 100644 index 00000000..310f0f17 --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/NotificationSettings.js.map @@ -0,0 +1 @@ +{"version":3,"file":"NotificationSettings.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/NotificationSettings.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAC9E,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,WAAW;IAM3D,YACE,IAA6B,EAC7B,WAA+B,EAC/B,OAA2B,EAC3B,MAAe;QAEf,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;QACzG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAC7F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,MAAM,CAClB,IAA6B,EAC7B,WAA+B,EAC/B,OAA2B,EAC3B,MAAe;QAEf,OAAO,IAAI,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,YAAY;QACjB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Theme.d.ts b/backend/dist/modules/userSettings/core/objects/Theme.d.ts new file mode 100644 index 00000000..1aba962e --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/Theme.d.ts @@ -0,0 +1,12 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import { AllowedTheme } from '../types/Theme'; +export default class Theme extends ValueObject { + private theme; + private constructor(); + static create(theme: AllowedTheme): Theme; + static dark(): Theme; + static light(): Theme; + getTheme(): AllowedTheme; + toPrimitives(): AllowedTheme; +} +//# sourceMappingURL=Theme.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Theme.d.ts.map b/backend/dist/modules/userSettings/core/objects/Theme.d.ts.map new file mode 100644 index 00000000..28f4f280 --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/Theme.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Theme.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAEnE,OAAO,EAAkB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO;WAMO,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK;WAIlC,IAAI,IAAI,KAAK;WAIb,KAAK,IAAI,KAAK;IAIrB,QAAQ,IAAI,YAAY;IAIxB,YAAY,IAAI,YAAY;CAGpC"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Theme.js b/backend/dist/modules/userSettings/core/objects/Theme.js new file mode 100644 index 00000000..b9332bd0 --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/Theme.js @@ -0,0 +1,27 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import UnsupportedTheme from '../errors/UnsupportedTheme'; +import { ALLOWED_THEMES, AllowedTheme } from '../types/Theme'; +export default class Theme extends ValueObject { + constructor(theme) { + super(); + if (!ALLOWED_THEMES.includes(theme)) + throw new UnsupportedTheme(theme); + this.theme = theme; + } + static create(theme) { + return new Theme(theme); + } + static dark() { + return new Theme(AllowedTheme.dark); + } + static light() { + return new Theme(AllowedTheme.light); + } + getTheme() { + return this.theme; + } + toPrimitives() { + return this.theme; + } +} +//# sourceMappingURL=Theme.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Theme.js.map b/backend/dist/modules/userSettings/core/objects/Theme.js.map new file mode 100644 index 00000000..556f88e2 --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/Theme.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Theme.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Theme.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,gBAAgB,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAG5C,YAAoB,KAAmB;QACrC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,KAAmB;QACtC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAEM,MAAM,CAAC,IAAI;QAChB,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,KAAK;QACjB,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Timezone.d.ts b/backend/dist/modules/userSettings/core/objects/Timezone.d.ts new file mode 100644 index 00000000..197e7f0b --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/Timezone.d.ts @@ -0,0 +1,9 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +export default class Timezone extends ValueObject { + private tz; + private readonly testTimeZone; + constructor(tz: string); + getTimezone(): string; + toPrimitives(): string; +} +//# sourceMappingURL=Timezone.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Timezone.d.ts.map b/backend/dist/modules/userSettings/core/objects/Timezone.d.ts.map new file mode 100644 index 00000000..f19ddf89 --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/Timezone.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Timezone.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Timezone.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAGnE,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,OAAO,CAAC,EAAE,CAAU;IACpB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8C;gBAE/D,EAAE,EAAE,MAAM;IAMf,WAAW,IAAI,MAAM;IAIrB,YAAY,IAAI,MAAM;CAG9B"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Timezone.js b/backend/dist/modules/userSettings/core/objects/Timezone.js new file mode 100644 index 00000000..b57ab9ab --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/Timezone.js @@ -0,0 +1,18 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import InvalidTimezone from '../errors/InvalidTimezone'; +export default class Timezone extends ValueObject { + constructor(tz) { + super(); + this.testTimeZone = /^[A-Za-z]+\/[A-Za-z_]+(?:\/[A-Za-z_]+)*$/; + if (!tz || !this.testTimeZone.test(tz)) + throw new InvalidTimezone(tz); + this.tz = tz; + } + getTimezone() { + return this.tz; + } + toPrimitives() { + return this.tz; + } +} +//# sourceMappingURL=Timezone.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Timezone.js.map b/backend/dist/modules/userSettings/core/objects/Timezone.js.map new file mode 100644 index 00000000..b9d29bf1 --- /dev/null +++ b/backend/dist/modules/userSettings/core/objects/Timezone.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Timezone.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Timezone.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAExD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAI/C,YAAY,EAAU;QACpB,KAAK,EAAE,CAAC;QAHO,iBAAY,GAAG,0CAA0C,CAAC;QAIzE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/types/Language.d.ts b/backend/dist/modules/userSettings/core/types/Language.d.ts new file mode 100644 index 00000000..09cac9cf --- /dev/null +++ b/backend/dist/modules/userSettings/core/types/Language.d.ts @@ -0,0 +1,6 @@ +export declare const ALLOWED_LANGUAGES: readonly ["ES", "EN"]; +export declare enum AllowedLanguage { + es = "ES", + en = "EN" +} +//# sourceMappingURL=Language.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/types/Language.d.ts.map b/backend/dist/modules/userSettings/core/types/Language.d.ts.map new file mode 100644 index 00000000..f236bfbd --- /dev/null +++ b/backend/dist/modules/userSettings/core/types/Language.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Language.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/types/Language.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,uBAAwB,CAAC;AAEvD,oBAAY,eAAe;IACzB,EAAE,OAAO;IACT,EAAE,OAAO;CACV"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/types/Language.js b/backend/dist/modules/userSettings/core/types/Language.js new file mode 100644 index 00000000..12de331a --- /dev/null +++ b/backend/dist/modules/userSettings/core/types/Language.js @@ -0,0 +1,7 @@ +export const ALLOWED_LANGUAGES = ['ES', 'EN']; +export var AllowedLanguage; +(function (AllowedLanguage) { + AllowedLanguage["es"] = "ES"; + AllowedLanguage["en"] = "EN"; +})(AllowedLanguage || (AllowedLanguage = {})); +//# sourceMappingURL=Language.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/types/Language.js.map b/backend/dist/modules/userSettings/core/types/Language.js.map new file mode 100644 index 00000000..936d4f59 --- /dev/null +++ b/backend/dist/modules/userSettings/core/types/Language.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Language.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/types/Language.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC;AAEvD,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,4BAAS,CAAA;IACT,4BAAS,CAAA;AACX,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/types/NotificationSettings.d.ts b/backend/dist/modules/userSettings/core/types/NotificationSettings.d.ts new file mode 100644 index 00000000..6c204dba --- /dev/null +++ b/backend/dist/modules/userSettings/core/types/NotificationSettings.d.ts @@ -0,0 +1,19 @@ +export declare const ALLOWED_NOTIFICATION_TYPES: readonly ["ALL", "ASSIGNED", "MENTIONS"]; +export declare enum AllowedNotificationType { + all = "ALL", + assigned = "ASSIGNED", + mentions = "MENTIONS" +} +export declare const ALLOWED_PROJECT_TYPES: readonly ["WATCHING", "FAVORITE", "ALL"]; +export declare enum AllowedProjectType { + watching = "WATCHING", + favorite = "FAVORITE", + all = "ALL" +} +export declare const ALLOWED_CHANNEL_TYPES: readonly ["EMAIL", "PUSH", "ALL"]; +export declare enum AllowedChannelType { + email = "EMAIL", + push = "PUSH", + all = "ALL" +} +//# sourceMappingURL=NotificationSettings.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/types/NotificationSettings.d.ts.map b/backend/dist/modules/userSettings/core/types/NotificationSettings.d.ts.map new file mode 100644 index 00000000..1d1f1689 --- /dev/null +++ b/backend/dist/modules/userSettings/core/types/NotificationSettings.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"NotificationSettings.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/types/NotificationSettings.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,0CAA2C,CAAC;AACnF,oBAAY,uBAAuB;IACjC,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,qBAAqB,0CAA2C,CAAC;AAC9E,oBAAY,kBAAkB;IAC5B,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,GAAG,QAAQ;CACZ;AAED,eAAO,MAAM,qBAAqB,mCAAoC,CAAC;AACvE,oBAAY,kBAAkB;IAC5B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/types/NotificationSettings.js b/backend/dist/modules/userSettings/core/types/NotificationSettings.js new file mode 100644 index 00000000..916e6dd4 --- /dev/null +++ b/backend/dist/modules/userSettings/core/types/NotificationSettings.js @@ -0,0 +1,22 @@ +export const ALLOWED_NOTIFICATION_TYPES = ['ALL', 'ASSIGNED', 'MENTIONS']; +export var AllowedNotificationType; +(function (AllowedNotificationType) { + AllowedNotificationType["all"] = "ALL"; + AllowedNotificationType["assigned"] = "ASSIGNED"; + AllowedNotificationType["mentions"] = "MENTIONS"; +})(AllowedNotificationType || (AllowedNotificationType = {})); +export const ALLOWED_PROJECT_TYPES = ['WATCHING', 'FAVORITE', 'ALL']; +export var AllowedProjectType; +(function (AllowedProjectType) { + AllowedProjectType["watching"] = "WATCHING"; + AllowedProjectType["favorite"] = "FAVORITE"; + AllowedProjectType["all"] = "ALL"; +})(AllowedProjectType || (AllowedProjectType = {})); +export const ALLOWED_CHANNEL_TYPES = ['EMAIL', 'PUSH', 'ALL']; +export var AllowedChannelType; +(function (AllowedChannelType) { + AllowedChannelType["email"] = "EMAIL"; + AllowedChannelType["push"] = "PUSH"; + AllowedChannelType["all"] = "ALL"; +})(AllowedChannelType || (AllowedChannelType = {})); +//# sourceMappingURL=NotificationSettings.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/types/NotificationSettings.js.map b/backend/dist/modules/userSettings/core/types/NotificationSettings.js.map new file mode 100644 index 00000000..a27c2100 --- /dev/null +++ b/backend/dist/modules/userSettings/core/types/NotificationSettings.js.map @@ -0,0 +1 @@ +{"version":3,"file":"NotificationSettings.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/types/NotificationSettings.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAU,CAAC;AACnF,MAAM,CAAN,IAAY,uBAIX;AAJD,WAAY,uBAAuB;IACjC,sCAAW,CAAA;IACX,gDAAqB,CAAA;IACrB,gDAAqB,CAAA;AACvB,CAAC,EAJW,uBAAuB,KAAvB,uBAAuB,QAIlC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAU,CAAC;AAC9E,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,2CAAqB,CAAA;IACrB,2CAAqB,CAAA;IACrB,iCAAW,CAAA;AACb,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AACvE,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,qCAAe,CAAA;IACf,mCAAa,CAAA;IACb,iCAAW,CAAA;AACb,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/types/Theme.d.ts b/backend/dist/modules/userSettings/core/types/Theme.d.ts new file mode 100644 index 00000000..33d5f0be --- /dev/null +++ b/backend/dist/modules/userSettings/core/types/Theme.d.ts @@ -0,0 +1,6 @@ +export declare const ALLOWED_THEMES: readonly ["DARK", "LIGHT"]; +export declare enum AllowedTheme { + dark = "DARK", + light = "LIGHT" +} +//# sourceMappingURL=Theme.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/types/Theme.d.ts.map b/backend/dist/modules/userSettings/core/types/Theme.d.ts.map new file mode 100644 index 00000000..4e7b5d92 --- /dev/null +++ b/backend/dist/modules/userSettings/core/types/Theme.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/types/Theme.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,4BAA6B,CAAC;AAEzD,oBAAY,YAAY;IACtB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/types/Theme.js b/backend/dist/modules/userSettings/core/types/Theme.js new file mode 100644 index 00000000..bd7520b3 --- /dev/null +++ b/backend/dist/modules/userSettings/core/types/Theme.js @@ -0,0 +1,7 @@ +export const ALLOWED_THEMES = ['DARK', 'LIGHT']; +export var AllowedTheme; +(function (AllowedTheme) { + AllowedTheme["dark"] = "DARK"; + AllowedTheme["light"] = "LIGHT"; +})(AllowedTheme || (AllowedTheme = {})); +//# sourceMappingURL=Theme.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/types/Theme.js.map b/backend/dist/modules/userSettings/core/types/Theme.js.map new file mode 100644 index 00000000..07577685 --- /dev/null +++ b/backend/dist/modules/userSettings/core/types/Theme.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Theme.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/types/Theme.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AAEzD,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,+BAAe,CAAA;AACjB,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB"} \ No newline at end of file diff --git a/backend/src/modules/account/core/errors/AccountAlreadyExists.ts b/backend/src/modules/account/core/errors/AccountAlreadyExists.ts new file mode 100644 index 00000000..14f2544c --- /dev/null +++ b/backend/src/modules/account/core/errors/AccountAlreadyExists.ts @@ -0,0 +1,8 @@ +import CoreError from '../../../shared/core/errors/CoreError'; + +export default class AccountAlreadyExists extends CoreError { + constructor(info?: unknown) { + super('Account already exists', info); + Object.setPrototypeOf(this, AccountAlreadyExists.prototype); + } +} diff --git a/backend/src/modules/account/core/errors/InvalidAccount.ts b/backend/src/modules/account/core/errors/InvalidAccount.ts new file mode 100644 index 00000000..7258a4b9 --- /dev/null +++ b/backend/src/modules/account/core/errors/InvalidAccount.ts @@ -0,0 +1,8 @@ +import CoreError from '../../../shared/core/errors/CoreError'; + +export default class InvalidAccount extends CoreError { + constructor(info?: unknown) { + super(typeof info === 'string' ? info : 'Invalid account', info); + Object.setPrototypeOf(this, InvalidAccount.prototype); + } +} diff --git a/backend/src/modules/account/core/events/AccountCreated.ts b/backend/src/modules/account/core/events/AccountCreated.ts new file mode 100644 index 00000000..254bbac1 --- /dev/null +++ b/backend/src/modules/account/core/events/AccountCreated.ts @@ -0,0 +1,10 @@ +import DomainEvent from '../../../shared/core/events/DomainEvent'; +import type DateTime from '../../../shared/core/objects/DateTime'; +import type IdEntity from '../../../shared/core/objects/IdEntity'; +import type AccountParams from '../interfaces/AccountParams'; + +export default class AccountCreated extends DomainEvent { + constructor(key: string, date: DateTime, actor: IdEntity, ownerId: IdEntity, idEntity: IdEntity, params: AccountParams) { + super(key, date, actor, ownerId, idEntity, 'ACCOUNT_CREATED', params); + } +} diff --git a/backend/src/modules/account/core/interfaces/AccountParams.ts b/backend/src/modules/account/core/interfaces/AccountParams.ts new file mode 100644 index 00000000..be957f0e --- /dev/null +++ b/backend/src/modules/account/core/interfaces/AccountParams.ts @@ -0,0 +1,10 @@ +export default interface AccountParams { + id: string; + email: string; + isPrimary: boolean; + name: string; + provider?: string | null; + profileImage?: string | null; + userId?: string | null; + createdAt?: Date; +} diff --git a/backend/src/modules/account/core/model/Account.ts b/backend/src/modules/account/core/model/Account.ts index c70a5879..e3a3b24f 100644 --- a/backend/src/modules/account/core/model/Account.ts +++ b/backend/src/modules/account/core/model/Account.ts @@ -1 +1,97 @@ -export default class Account {} +import Entity from '../../../shared/core/model/Entity'; +import IdAccount from '../objects/IdAccount'; +import IdEntity from '../../../shared/core/objects/IdEntity'; +import DateTime from '../../../shared/core/objects/DateTime'; +import None from '../../../shared/core/objects/None'; +import AccountCreated from '../events/AccountCreated'; +import type AccountParams from '../interfaces/AccountParams'; +import Email from '../../../shared/core/objects/Email'; +import AccountName from '../objects/AccountName'; +import Url from '../../../shared/core/objects/URL'; +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; + +export default class Account extends Entity { + private email!: Email; + private name!: AccountName; + private provider: string | None = new None(); + private profileImage: Url | None = new None(); + private owner: IdEntity | None = new None(); + private isPrimary: boolean = false; + private createdAt!: DateTime; + + private constructor( + id: IdAccount, + email: Email, + isPrimary = false, + name: AccountName, + provider: string | None, + profileImage: Url | None, + owner: IdEntity | None, + createdAt: DateTime + ) { + super(id); + this.email = email; + this.name = name; + this.provider = provider; + this.profileImage = profileImage; + this.owner = owner; + this.isPrimary = isPrimary; + this.createdAt = createdAt; + } + + public static create( + key: string, + id: IdAccount, + actor: IdEntity, + params: { email: Email; name: AccountName; provider?: string | null; profileImage?: string | null; owner?: IdEntity | null; isPrimary?: boolean }, + ): Account { + const provider = params.provider ? params.provider : new None(); + const profileImage = params.profileImage ? new Url(params.profileImage) : new None(); + const owner = params.owner ? params.owner : new None(); + const createdAt = DateTime.now(); + + const account = new Account(id, params.email, params.isPrimary, params.name, provider as any, profileImage as any, owner as any, createdAt); + account.addEvent(new AccountCreated(key, DateTime.now(), actor, actor, id, account.toPrimitives())); + return account; + } + + public static fromPrimitives(params: AccountParams): Account { + const provider = params.provider ? params.provider : new None(); + const profileImage = params.profileImage ? new Url(params.profileImage) : new None(); + const owner = params.userId ? new IdEntity(params.userId) : new None(); + if(!params.createdAt) throw new InvalidParameters("The account must include a creation date"); + const createdAt = DateTime.create(params.createdAt); + + return new Account( + new IdAccount(params.id), + new Email(params.email), + params.isPrimary, + new AccountName(params.name), + provider as any, + profileImage as any, + owner as any, + createdAt, + ); + } + + public toPrimitives(): AccountParams { + return { + id: super.getID().getID(), + email: this.email.getEmail(), + isPrimary: this.isPrimary, + name: this.name.toPrimitives(), + provider: this.provider instanceof None ? null : (this.provider as string), + profileImage: this.profileImage instanceof None ? null : (this.profileImage as Url).getUrl(), + userId: this.owner instanceof None ? null : (this.owner as IdEntity).getID(), + createdAt: this.createdAt.getDate() + }; + } + + public getEmail(): Email { + return this.email; + } + + public getName(): AccountName { + return this.name; + } +} diff --git a/backend/src/modules/account/core/objects/AccountName.ts b/backend/src/modules/account/core/objects/AccountName.ts new file mode 100644 index 00000000..b7346bfc --- /dev/null +++ b/backend/src/modules/account/core/objects/AccountName.ts @@ -0,0 +1,19 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import Text from '../../../shared/core/objects/Text'; + +export default class AccountName extends ValueObject { + private readonly name: Text; + + constructor(name: string) { + super(); + this.name = new Text(name); + } + + public getName(): string { + return this.name.getText(); + } + + public toPrimitives(): string { + return this.name.getText(); + } +} diff --git a/backend/src/modules/account/core/objects/IdAccount.ts b/backend/src/modules/account/core/objects/IdAccount.ts new file mode 100644 index 00000000..cf0555c6 --- /dev/null +++ b/backend/src/modules/account/core/objects/IdAccount.ts @@ -0,0 +1,7 @@ +import IdEntity from '../../../shared/core/objects/IdEntity'; + +export default class IdAccount extends IdEntity { + constructor(id: string) { + super(id); + } +} diff --git a/backend/src/modules/user/core/errors/AccountDoesntExist.ts b/backend/src/modules/user/core/errors/AccountDoesntExist.ts new file mode 100644 index 00000000..fcfd5e7e --- /dev/null +++ b/backend/src/modules/user/core/errors/AccountDoesntExist.ts @@ -0,0 +1,8 @@ +import CoreError from '../../../shared/core/errors/CoreError'; + +export default class AccountDoesntExist extends CoreError { + constructor(info?: unknown) { + super('Account does not exist', info); + Object.setPrototypeOf(this, AccountDoesntExist.prototype); + } +} diff --git a/backend/src/modules/user/core/errors/DuplicateAccount.ts b/backend/src/modules/user/core/errors/DuplicateAccount.ts new file mode 100644 index 00000000..0cbdd55d --- /dev/null +++ b/backend/src/modules/user/core/errors/DuplicateAccount.ts @@ -0,0 +1,8 @@ +import CoreError from '../../../shared/core/errors/CoreError'; + +export default class DuplicateAccount extends CoreError { + constructor(info?: unknown) { + super('Account already added to user', info); + Object.setPrototypeOf(this, DuplicateAccount.prototype); + } +} diff --git a/backend/src/modules/user/core/events/AccountChanged.ts b/backend/src/modules/user/core/events/AccountChanged.ts new file mode 100644 index 00000000..d9764337 --- /dev/null +++ b/backend/src/modules/user/core/events/AccountChanged.ts @@ -0,0 +1,16 @@ +import DomainEvent from '../../../shared/core/events/DomainEvent'; +import type DateTime from '../../../shared/core/objects/DateTime'; +import type IdEntity from '../../../shared/core/objects/IdEntity'; + +export default class AccountChanged extends DomainEvent { + constructor( + key: string, + date: DateTime, + actor: IdEntity, + ownerId: IdEntity, + accountId: IdEntity, + info?: unknown, + ) { + super(key, date, actor, ownerId, accountId, 'ACCOUNT_CHANGED', info); + } +} diff --git a/backend/src/modules/user/core/interfaces/UserParams.ts b/backend/src/modules/user/core/interfaces/UserParams.ts new file mode 100644 index 00000000..6ccd0d06 --- /dev/null +++ b/backend/src/modules/user/core/interfaces/UserParams.ts @@ -0,0 +1,5 @@ +export default interface UserParams { + id: string; + primaryAccount: string; + accounts?: string[]; +} diff --git a/backend/src/modules/user/core/model/User.ts b/backend/src/modules/user/core/model/User.ts new file mode 100644 index 00000000..274b7d6e --- /dev/null +++ b/backend/src/modules/user/core/model/User.ts @@ -0,0 +1,73 @@ +import IdEntity from '../../../shared/core/objects/IdEntity'; +import Entity from '../../../shared/core/model/Entity'; +import DateTime from '../../../shared/core/objects/DateTime'; +import AccountChanged from '../events/AccountChanged'; +import DuplicateAccount from '../errors/DuplicateAccount'; +import AccountDoesntExist from '../errors/AccountDoesntExist'; +import type UserParams from '../interfaces/UserParams'; +import InvalidOperation from '../../../shared/core/errors/InvalidOperation'; +import ID from '../../../shared/core/objects/ID'; + +export default class User extends Entity { + private accounts: IdEntity[] = []; + private primaryAccount!: IdEntity; + + private constructor(id: IdEntity, accounts: IdEntity[] = [], primary: IdEntity) { + super(id); + this.accounts = accounts; + this.addAccount(primary); + } + + public static fromPrimitives(params: UserParams): User { + const id = new IdEntity(params.id); + const accounts = (params.accounts || []).map((a) => new IdEntity(a)); + const primary = new IdEntity(params.primaryAccount); + return new User(id, accounts, primary); + } + + public addAccount(account: IdEntity): void { + const exists = this.accounts.find((a) => a.getID() === account.getID()); + if (exists) throw new DuplicateAccount(account.getID()); + this.accounts.push(account); + if (!this.primaryAccount) this.primaryAccount = account; + } + + public changePrimaryAccount(newPrimary: IdEntity): void { + const previous = this.primaryAccount ? this.primaryAccount.getID() : null; + const found = this.accounts.find((a) => a.getID() === newPrimary.getID()); + if (!found) { + throw new AccountDoesntExist(newPrimary.getID()); + } + + this.primaryAccount = newPrimary; + this.addEvent( + new AccountChanged(ID.generateId().getId(), DateTime.now(), this.getID(), super.getID(), newPrimary, { previousPrimary: previous }), + ); + } + + public removeAccount(account: IdEntity): void { + const found = this.accounts.find((a) => a.getID() === account.getID()); + if (!found) throw new AccountDoesntExist(account.getID()); + + if (this.accounts.length <= 1) throw new InvalidOperation('The user at least must have one account'); + this.accounts = this.accounts.filter((a) => a.getID() !== account.getID()); + + if(account.getID() === this.primaryAccount.getID())this.primaryAccount = this.accounts[0] as IdEntity; + } + + public getAccounts(): IdEntity[] { + return this.accounts; + } + + public getPrimaryAccount(): IdEntity | null { + return this.primaryAccount; + } + + public toPrimitives(): UserParams { + return { + id: super.getID().getID(), + primaryAccount:this.primaryAccount.getID(), + accounts: this.accounts.map((a) => a.getID()), + }; + } +} diff --git a/backend/src/modules/userSettings/core/errors/InvalidTimezone.ts b/backend/src/modules/userSettings/core/errors/InvalidTimezone.ts new file mode 100644 index 00000000..a945d257 --- /dev/null +++ b/backend/src/modules/userSettings/core/errors/InvalidTimezone.ts @@ -0,0 +1,8 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; + +export default class InvalidTimezone extends InvalidParameters { + constructor(timezone: string) { + super(`Invalid timezone format: ${timezone}`); + Object.setPrototypeOf(this, InvalidTimezone.prototype); + } +} diff --git a/backend/src/modules/userSettings/core/errors/InvalidUserSettingsKey.ts b/backend/src/modules/userSettings/core/errors/InvalidUserSettingsKey.ts new file mode 100644 index 00000000..63f77296 --- /dev/null +++ b/backend/src/modules/userSettings/core/errors/InvalidUserSettingsKey.ts @@ -0,0 +1,8 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; + +export default class InvalidUserSettingsKey extends InvalidParameters { + constructor(setting: string) { + super(`Invalid user settings key: ${setting}`); + Object.setPrototypeOf(this, InvalidUserSettingsKey.prototype); + } +} diff --git a/backend/src/modules/userSettings/core/errors/InvalidUserSettingsValue.ts b/backend/src/modules/userSettings/core/errors/InvalidUserSettingsValue.ts new file mode 100644 index 00000000..38a8fac0 --- /dev/null +++ b/backend/src/modules/userSettings/core/errors/InvalidUserSettingsValue.ts @@ -0,0 +1,8 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; + +export default class InvalidUserSettingsValue extends InvalidParameters { + constructor(setting: string) { + super(`Invalid user settings value for: ${setting}`); + Object.setPrototypeOf(this, InvalidUserSettingsValue.prototype); + } +} diff --git a/backend/src/modules/userSettings/core/errors/UnsupportedLanguage.ts b/backend/src/modules/userSettings/core/errors/UnsupportedLanguage.ts new file mode 100644 index 00000000..b83d914c --- /dev/null +++ b/backend/src/modules/userSettings/core/errors/UnsupportedLanguage.ts @@ -0,0 +1,8 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; + +export default class UnsupportedLanguage extends InvalidParameters { + constructor(language: string) { + super(`Unsupported language: ${language}`); + Object.setPrototypeOf(this, UnsupportedLanguage.prototype); + } +} diff --git a/backend/src/modules/userSettings/core/errors/UnsupportedTheme.ts b/backend/src/modules/userSettings/core/errors/UnsupportedTheme.ts new file mode 100644 index 00000000..aeea8b6c --- /dev/null +++ b/backend/src/modules/userSettings/core/errors/UnsupportedTheme.ts @@ -0,0 +1,8 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; + +export default class UnsupportedTheme extends InvalidParameters { + constructor(theme: string) { + super(`Unsupported theme: ${theme}`); + Object.setPrototypeOf(this, UnsupportedTheme.prototype); + } +} diff --git a/backend/src/modules/userSettings/core/interfaces/UserSettingsParams.ts b/backend/src/modules/userSettings/core/interfaces/UserSettingsParams.ts new file mode 100644 index 00000000..fb5ba94a --- /dev/null +++ b/backend/src/modules/userSettings/core/interfaces/UserSettingsParams.ts @@ -0,0 +1,17 @@ +import type { AllowedLanguage } from '../types/Language'; +import type { AllowedChannelType, AllowedNotificationType, AllowedProjectType } from '../types/NotificationSettings'; +import type { AllowedTheme } from '../types/Theme'; + +export default interface UserSettingsParams { + id: string; + userId: string; + language: AllowedLanguage; + theme: AllowedTheme; + timezone: string; + notificationSettings?: { + type: AllowedNotificationType; + projectType: AllowedProjectType; + channel: AllowedChannelType; + active: boolean; + }; +} diff --git a/backend/src/modules/userSettings/core/model/UserSettings.ts b/backend/src/modules/userSettings/core/model/UserSettings.ts new file mode 100644 index 00000000..a3a55abe --- /dev/null +++ b/backend/src/modules/userSettings/core/model/UserSettings.ts @@ -0,0 +1,94 @@ +import Entity from '../../../shared/core/model/Entity'; +import IdEntity from '../../../shared/core/objects/IdEntity'; +import Language from '../objects/Language'; +import type UserSettingsParams from '../interfaces/UserSettingsParams'; +import Theme from '../objects/Theme'; +import Timezone from '../objects/Timezone'; +import NotificationSettings from '../objects/NotificationSettings'; + +export default class UserSettings extends Entity { + private readonly userId: IdEntity; + private language: Language; + private theme: Theme; + private timezone: Timezone; + private notificationSettings: NotificationSettings; + + private constructor( + id: IdEntity, + userId: IdEntity, + language: Language, + theme: Theme, + timezone: Timezone, + notificationSettings: NotificationSettings, + ) { + super(id); + this.userId = userId; + this.language = language; + this.theme = theme; + this.timezone = timezone; + this.notificationSettings = notificationSettings; + } + + public static create(params: UserSettingsParams): UserSettings { + return new UserSettings( + new IdEntity(params.id), + new IdEntity(params.userId), + new Language(params.language), + new Theme(params.theme), + new Timezone(params.timezone), + NotificationSettings.create( + params.notificationSettings!.type, + params.notificationSettings!.projectType, + params.notificationSettings!.channel, + params.notificationSettings!.active, + ), + ); + } + + public getUserId(): IdEntity { + return this.userId; + } + + public getLanguage(): Language { + return this.language; + } + + public getTheme(): Theme { + return this.theme; + } + + public getTimezone(): Timezone { + return this.timezone; + } + + public getNotificationSettings(): NotificationSettings { + return this.notificationSettings; + } + + public updateLanguage(language: Language): void { + this.language = language; + } + + public updateTheme(theme: Theme): void { + this.theme = theme; + } + + public updateTimezone(timezone: Timezone): void { + this.timezone = timezone; + } + + public updateNotificationSettings(notificationSettings: NotificationSettings): void { + this.notificationSettings = notificationSettings; + } + + public toPrimitives() { + return { + id: this.getID().getID(), + userId: this.userId.getID(), + language: this.language.getLanguage(), + theme: this.theme.getTheme(), + timezone: this.timezone.getTimezone(), + notificationSettings: this.notificationSettings.toPrimitives(), + }; + } +} diff --git a/backend/src/modules/userSettings/core/objects/Language.ts b/backend/src/modules/userSettings/core/objects/Language.ts new file mode 100644 index 00000000..4d31ecd3 --- /dev/null +++ b/backend/src/modules/userSettings/core/objects/Language.ts @@ -0,0 +1,17 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import UnsupportedLanguage from '../errors/UnsupportedLanguage'; +import { ALLOWED_LANGUAGES, AllowedLanguage } from '../types/Language'; + +export default class Language extends ValueObject { + private language!: AllowedLanguage; + + public constructor(language: AllowedLanguage) { + super(); + if (!ALLOWED_LANGUAGES.includes(language)) throw new UnsupportedLanguage(language); + this.language = language; + } + + public getLanguage(): AllowedLanguage { + return this.language; + } +} diff --git a/backend/src/modules/userSettings/core/objects/NotificationSettings.ts b/backend/src/modules/userSettings/core/objects/NotificationSettings.ts new file mode 100644 index 00000000..f9d36543 --- /dev/null +++ b/backend/src/modules/userSettings/core/objects/NotificationSettings.ts @@ -0,0 +1,48 @@ +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; +import ValueObject from '../../../shared/core/objects/ValueObject'; +import { ALLOWED_CHANNEL_TYPES, ALLOWED_NOTIFICATION_TYPES, ALLOWED_PROJECT_TYPES, type AllowedChannelType, type AllowedNotificationType, type AllowedProjectType } from '../types/NotificationSettings'; + +export default class NotificationSettings extends ValueObject { + private readonly type: AllowedNotificationType; + private readonly projectType: AllowedProjectType; + private readonly channel: AllowedChannelType; + private readonly active: boolean; + + private constructor( + type: AllowedNotificationType, + projectType: AllowedProjectType, + channel: AllowedChannelType, + active: boolean, + ) { + super(); + if (!ALLOWED_NOTIFICATION_TYPES.includes(type)) throw new InvalidParameters('Invalid notification type'); + if (!ALLOWED_PROJECT_TYPES.includes(projectType)) throw new InvalidParameters('Invalid project notification type'); + if (!ALLOWED_CHANNEL_TYPES.includes(channel)) throw new InvalidParameters('Invalid channel'); + this.type = type; + this.projectType = projectType; + this.channel = channel; + this.active = !!active; + } + + public static create( + type: AllowedNotificationType, + projectType: AllowedProjectType, + channel: AllowedChannelType, + active: boolean, + ): NotificationSettings { + return new NotificationSettings(type, projectType, channel, active); + } + + public isActive(): boolean { + return this.active; + } + + public toPrimitives() { + return { + type: this.type, + projectType: this.projectType, + channel: this.channel, + active: this.active, + }; + } +} diff --git a/backend/src/modules/userSettings/core/objects/Theme.ts b/backend/src/modules/userSettings/core/objects/Theme.ts new file mode 100644 index 00000000..529ff62c --- /dev/null +++ b/backend/src/modules/userSettings/core/objects/Theme.ts @@ -0,0 +1,17 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import UnsupportedTheme from '../errors/UnsupportedTheme'; +import { ALLOWED_THEMES, AllowedTheme } from '../types/Theme'; + +export default class Theme extends ValueObject { + private theme!: AllowedTheme; + + public constructor(theme: AllowedTheme) { + super(); + if (!ALLOWED_THEMES.includes(theme)) throw new UnsupportedTheme(theme); + this.theme = theme; + } + + public getTheme(): AllowedTheme { + return this.theme; + } +} diff --git a/backend/src/modules/userSettings/core/objects/Timezone.ts b/backend/src/modules/userSettings/core/objects/Timezone.ts new file mode 100644 index 00000000..eacc877c --- /dev/null +++ b/backend/src/modules/userSettings/core/objects/Timezone.ts @@ -0,0 +1,17 @@ +import ValueObject from '../../../shared/core/objects/ValueObject'; +import InvalidTimezone from '../errors/InvalidTimezone'; + +export default class Timezone extends ValueObject { + private tz!: string; + private readonly testTimeZone = /^[A-Za-z]+\/[A-Za-z_]+(?:\/[A-Za-z_]+)*$/; + + public constructor(tz: string) { + super(); + if (!tz || !this.testTimeZone.test(tz)) throw new InvalidTimezone(tz); + this.tz = tz; + } + + public getTimezone(): string { + return this.tz; + } +} diff --git a/backend/src/modules/userSettings/core/types/Language.ts b/backend/src/modules/userSettings/core/types/Language.ts new file mode 100644 index 00000000..35256e50 --- /dev/null +++ b/backend/src/modules/userSettings/core/types/Language.ts @@ -0,0 +1,6 @@ +export const ALLOWED_LANGUAGES = ['ES', 'EN'] as const; + +export enum AllowedLanguage { + es = 'ES', + en = 'EN', +} diff --git a/backend/src/modules/userSettings/core/types/NotificationSettings.ts b/backend/src/modules/userSettings/core/types/NotificationSettings.ts new file mode 100644 index 00000000..21bc5a42 --- /dev/null +++ b/backend/src/modules/userSettings/core/types/NotificationSettings.ts @@ -0,0 +1,20 @@ +export const ALLOWED_NOTIFICATION_TYPES = ['ALL', 'ASSIGNED', 'MENTIONS'] as const; +export enum AllowedNotificationType { + all = 'ALL', + assigned = 'ASSIGNED', + mentions = 'MENTIONS', +} + +export const ALLOWED_PROJECT_TYPES = ['WATCHING', 'FAVORITE', 'ALL'] as const; +export enum AllowedProjectType { + watching = 'WATCHING', + favorite = 'FAVORITE', + all = 'ALL', +} + +export const ALLOWED_CHANNEL_TYPES = ['EMAIL', 'PUSH', 'ALL'] as const; +export enum AllowedChannelType { + email = 'EMAIL', + push = 'PUSH', + all = 'ALL', +} diff --git a/backend/src/modules/userSettings/core/types/Theme.ts b/backend/src/modules/userSettings/core/types/Theme.ts new file mode 100644 index 00000000..6d688de4 --- /dev/null +++ b/backend/src/modules/userSettings/core/types/Theme.ts @@ -0,0 +1,6 @@ +export const ALLOWED_THEMES = ['DARK', 'LIGHT'] as const; + +export enum AllowedTheme { + dark = 'DARK', + light = 'LIGHT', +} diff --git a/backend/tests/modules/account/core/model/Account.test.ts b/backend/tests/modules/account/core/model/Account.test.ts new file mode 100644 index 00000000..1969fba5 --- /dev/null +++ b/backend/tests/modules/account/core/model/Account.test.ts @@ -0,0 +1,35 @@ +import Account from '../../../../../src/modules/account/core/model/Account'; +import IdAccount from '../../../../../src/modules/account/core/objects/IdAccount'; +import IdEntity from '../../../../../src/modules/shared/core/objects/IdEntity'; +import ID from '../../../../../src/modules/shared/core/objects/ID'; +import Email from '../../../../../src/modules/shared/core/objects/Email'; +import AccountName from '../../../../../src/modules/account/core/objects/AccountName'; +import { describe, it, expect } from 'vitest'; + +describe('Account model', () => { + it('create emits AccountCreated event', () => { + const id = new IdAccount(ID.generateId().getId()); + const actor = new IdEntity(ID.generateId().getId()); + const acc = Account.create('k1', id, actor, { email: new Email('test@example.com'), name: new AccountName('Test') }); + const events = acc.pullEvents(); + expect(events.length).toBeGreaterThan(0); + expect(events[0].getEvent()).toBe('ACCOUNT_CREATED'); + }); + + it('fromPrimitives and toPrimitives roundtrip', () => { + const primitives = { + id: ID.generateId().getId(), + email: 'test2@example.com', + name: 'Test 2', + provider: 'local', + profileImage: null, + userId: null, + createdAt: new Date(), + isPrimary: false, + }; + const account = Account.fromPrimitives(primitives as any); + const round = account.toPrimitives(); + expect(round.email).toBe(primitives.email); + expect(round.name).toBe(primitives.name); + }); +}); diff --git a/backend/tests/modules/account/core/objects/AccountName.test.ts b/backend/tests/modules/account/core/objects/AccountName.test.ts new file mode 100644 index 00000000..2c085cf8 --- /dev/null +++ b/backend/tests/modules/account/core/objects/AccountName.test.ts @@ -0,0 +1,12 @@ +import AccountName from '../../../../../src/modules/account/core/objects/AccountName'; +import { describe, it, expect } from 'vitest'; + +describe('AccountName value object', () => { + it('creates with valid text', () => { + expect(new AccountName('My account')).toBeInstanceOf(AccountName); + }); + + it('throws on invalid text', () => { + expect(() => new AccountName('')).toThrow(); + }); +}); diff --git a/backend/tests/modules/user/core/model/User.test.ts b/backend/tests/modules/user/core/model/User.test.ts new file mode 100644 index 00000000..df59370e --- /dev/null +++ b/backend/tests/modules/user/core/model/User.test.ts @@ -0,0 +1,50 @@ +import User from '../../../../../src/modules/user/core/model/User'; +import IdEntity from '../../../../../src/modules/shared/core/objects/IdEntity'; +import ID from '../../../../../src/modules/shared/core/objects/ID'; +import { describe, it, expect } from 'vitest'; + +describe('User entity', () => { + it('fromPrimitives and add account sets primary when none', () => { + const params = { + id: ID.generateId().getId(), + accounts: [], + primaryAccount: null, + }; + const user = User.fromPrimitives(params as any); + const acc = new IdEntity(ID.generateId().getId()); + user.addAccount(acc); + expect(user.getAccounts().length).toBe(1); + expect(user.getPrimaryAccount()).not.toBeNull(); + }); + + it('throws when adding duplicate account', () => { + const params = { + id: ID.generateId().getId(), + accounts: [], + primaryAccount: null, + }; + const user = User.fromPrimitives(params as any); + const acc = new IdEntity(ID.generateId().getId()); + user.addAccount(acc); + expect(() => user.addAccount(acc)).toThrow(); + }); + + it('changePrimaryAccount emits ACCOUNT_CHANGED event with previous info', () => { + const existing = ID.generateId().getId(); + const params = { + id: ID.generateId().getId(), + accounts: [existing], + primaryAccount: existing, + }; + const user = User.fromPrimitives(params as any); + const actor = new IdEntity(ID.generateId().getId()); + const newPrimary = new IdEntity(ID.generateId().getId()); + user.addAccount(newPrimary); + user.changePrimaryAccount('k1', actor, newPrimary); + const events = user.pullEvents(); + expect(events.length).toBeGreaterThan(0); + expect(events[0].getEvent()).toBe('ACCOUNT_CHANGED'); + const info = events[0].getInfo() as any; + expect(info.previousPrimary).toBe(existing); + }); +}); diff --git a/backend/tests/modules/user/core/objects/Language.test.ts b/backend/tests/modules/user/core/objects/Language.test.ts new file mode 100644 index 00000000..6f30dd92 --- /dev/null +++ b/backend/tests/modules/user/core/objects/Language.test.ts @@ -0,0 +1,16 @@ +import Language from '../../../../../src/modules/userSettings/core/objects/Language'; +import UnsupportedLanguage from '../../../../../src/modules/userSettings/core/errors/UnsupportedLanguage'; +import { describe, it, expect } from 'vitest'; +import { AllowedLanguage } from '../../../../../src/modules/userSettings/core/types/Language'; + +describe('Language value object', () => { + it('creates for allowed languages', () => { + expect(Language.create(AllowedLanguage.en)).toBeInstanceOf(Language); + expect(Language.create(AllowedLanguage.es)).toBeInstanceOf(Language); + }); + + it('throws for unsupported languages', () => { + expect(() => Language.create('FR' as any)).toThrow(UnsupportedLanguage); + expect(() => Language.create('' as any)).toThrow(UnsupportedLanguage); + }); +}); diff --git a/backend/tests/modules/user/core/objects/NotificationSettings.test.ts b/backend/tests/modules/user/core/objects/NotificationSettings.test.ts new file mode 100644 index 00000000..816295b3 --- /dev/null +++ b/backend/tests/modules/user/core/objects/NotificationSettings.test.ts @@ -0,0 +1,22 @@ +import NotificationSettings from '../../../../../src/modules/userSettings/core/objects/NotificationSettings'; +import { describe, it, expect } from 'vitest'; +import { AllowedNotificationType, AllowedProjectType, AllowedChannelType } from '../../../../../src/modules/userSettings/core/types/NotificationSettings'; + +describe('NotificationSettings value object', () => { + it('creates with valid values', () => { + const s = NotificationSettings.create( + AllowedNotificationType.all, + AllowedProjectType.all, + AllowedChannelType.email, + true, + ); + expect(s).toBeInstanceOf(NotificationSettings); + expect(s.isActive()).toBe(true); + }); + + it('throws for invalid types', () => { + expect(() => NotificationSettings.create('BAD' as any, AllowedProjectType.all, AllowedChannelType.email, true)).toThrow(); + expect(() => NotificationSettings.create(AllowedNotificationType.all, 'BAD' as any, AllowedChannelType.email, true)).toThrow(); + expect(() => NotificationSettings.create(AllowedNotificationType.all, AllowedProjectType.all, 'BAD' as any, true)).toThrow(); + }); +}); diff --git a/backend/tests/modules/user/core/objects/Theme.test.ts b/backend/tests/modules/user/core/objects/Theme.test.ts new file mode 100644 index 00000000..c5bf29d8 --- /dev/null +++ b/backend/tests/modules/user/core/objects/Theme.test.ts @@ -0,0 +1,16 @@ +import Theme from '../../../../../src/modules/userSettings/core/objects/Theme'; +import UnsupportedTheme from '../../../../../src/modules/userSettings/core/errors/UnsupportedTheme'; +import { describe, it, expect } from 'vitest'; +import { AllowedTheme } from '../../../../../src/modules/userSettings/core/types/Theme'; + +describe('Theme value object', () => { + it('creates for allowed themes', () => { + expect(Theme.create(AllowedTheme.dark)).toBeInstanceOf(Theme); + expect(Theme.create(AllowedTheme.light)).toBeInstanceOf(Theme); + }); + + it('throws for unsupported themes', () => { + expect(() => Theme.create('BLUE' as any)).toThrow(UnsupportedTheme); + expect(() => Theme.create('' as any)).toThrow(UnsupportedTheme); + }); +}); diff --git a/backend/tests/modules/user/core/objects/Timezone.test.ts b/backend/tests/modules/user/core/objects/Timezone.test.ts new file mode 100644 index 00000000..9efa8fd3 --- /dev/null +++ b/backend/tests/modules/user/core/objects/Timezone.test.ts @@ -0,0 +1,15 @@ +import Timezone from '../../../../../src/modules/userSettings/core/objects/Timezone'; +import InvalidTimezone from '../../../../../src/modules/userSettings/core/errors/InvalidTimezone'; +import { describe, it, expect } from 'vitest'; + +describe('Timezone value object', () => { + it('accepts valid IANA timezone', () => { + expect(new Timezone('Europe/Madrid')).toBeInstanceOf(Timezone); + expect(new Timezone('America/New_York')).toBeInstanceOf(Timezone); + }); + + it('throws for invalid timezone format', () => { + expect(() => new Timezone('GMT')).toThrow(InvalidTimezone); + expect(() => new Timezone('')).toThrow(InvalidTimezone); + }); +}); diff --git a/backend/tests/modules/userSettings/core/model/UserSettings.test.ts b/backend/tests/modules/userSettings/core/model/UserSettings.test.ts new file mode 100644 index 00000000..e30c23c5 --- /dev/null +++ b/backend/tests/modules/userSettings/core/model/UserSettings.test.ts @@ -0,0 +1,79 @@ +import { describe, it, expect } from 'vitest'; +import UserSettings from '../../../../../src/modules/userSettings/core/model/UserSettings'; +import Language from '../../../../../src/modules/userSettings/core/objects/Language'; +import Theme from '../../../../../src/modules/userSettings/core/objects/Theme'; +import Timezone from '../../../../../src/modules/userSettings/core/objects/Timezone'; +import NotificationSettings from '../../../../../src/modules/userSettings/core/objects/NotificationSettings'; +import { AllowedChannelType, AllowedNotificationType, AllowedProjectType } from '../../../../../src/modules/userSettings/core/types/NotificationSettings'; +import { AllowedLanguage } from '../../../../../src/modules/userSettings/core/types/Language'; +import { AllowedTheme } from '../../../../../src/modules/userSettings/core/types/Theme'; +import ID from '../../../../../src/modules/shared/core/objects/ID'; +import InvalidUserSettingsKey from '../../../../../src/modules/userSettings/core/errors/InvalidUserSettingsKey'; + +describe('UserSettings entity', () => { + it('creates from primitives and updates typed settings values', () => { + const params = { + id: ID.generateId().getId(), + userId: ID.generateId().getId(), + language: AllowedLanguage.en, + theme: AllowedTheme.dark, + timezone: 'Europe/Madrid', + notificationSettings: { + type: AllowedNotificationType.all, + projectType: AllowedProjectType.all, + channel: AllowedChannelType.email, + active: true, + }, + }; + + const settings = UserSettings.fromPrimitives(params); + + expect(settings.getUserId().getID()).toBe(params.userId); + expect(settings.getLanguage().getLanguage()).toBe(params.language); + expect(settings.getTheme().getTheme()).toBe(params.theme); + expect(settings.getTimezone().getTimezone()).toBe(params.timezone); + expect(settings.getNotificationSettings().toPrimitives()).toEqual({ + type: params.notificationSettings.type, + projectType: params.notificationSettings.projectType, + channel: params.notificationSettings.channel, + active: params.notificationSettings.active, + }); + + settings.updateLanguage(Language.create(AllowedLanguage.es)); + expect(settings.getLanguage().getLanguage()).toBe(AllowedLanguage.es); + + settings.updateSetting('theme', Theme.create(AllowedTheme.light)); + expect(settings.getTheme().getTheme()).toBe(AllowedTheme.light); + + settings.updateSetting('timezone', new Timezone('America/New_York')); + expect(settings.getTimezone().getTimezone()).toBe('America/New_York'); + + const notificationSettings = NotificationSettings.create( + AllowedNotificationType.mentions, + AllowedProjectType.favorite, + AllowedChannelType.push, + false, + ); + settings.updateNotificationSettings(notificationSettings); + expect(settings.getNotificationSettings().toPrimitives()).toEqual(notificationSettings.toPrimitives()); + }); + + it('throws when updating with an invalid setting key', () => { + const params = { + id: ID.generateId().getId(), + userId: ID.generateId().getId(), + language: AllowedLanguage.en, + theme: AllowedTheme.dark, + timezone: 'Europe/Madrid', + notificationSettings: { + type: AllowedNotificationType.all, + projectType: AllowedProjectType.all, + channel: AllowedChannelType.email, + active: true, + }, + }; + + const settings = UserSettings.fromPrimitives(params); + expect(() => settings.updateSetting('invalid' as any, Language.create(AllowedLanguage.en) as any)).toThrow(InvalidUserSettingsKey); + }); +}); From 5864e8f3d9c0220ddd1980f8b08323b7e5214f3b Mon Sep 17 00:00:00 2001 From: Rafael-er-byte Date: Wed, 24 Jun 2026 21:16:56 -0600 Subject: [PATCH 3/6] feat: Change provider, userId required in Account params and account class, also update error message from InvalidAccount Error object --- .../account/core/errors/InvalidAccount.ts | 2 +- .../account/core/events/AccountCreated.ts | 10 ----- .../account/core/interfaces/AccountParams.ts | 4 +- .../src/modules/account/core/model/Account.ts | 40 ++++++++++--------- 4 files changed, 24 insertions(+), 32 deletions(-) delete mode 100644 backend/src/modules/account/core/events/AccountCreated.ts diff --git a/backend/src/modules/account/core/errors/InvalidAccount.ts b/backend/src/modules/account/core/errors/InvalidAccount.ts index 7258a4b9..1a25d329 100644 --- a/backend/src/modules/account/core/errors/InvalidAccount.ts +++ b/backend/src/modules/account/core/errors/InvalidAccount.ts @@ -2,7 +2,7 @@ import CoreError from '../../../shared/core/errors/CoreError'; export default class InvalidAccount extends CoreError { constructor(info?: unknown) { - super(typeof info === 'string' ? info : 'Invalid account', info); + super('Invalid account', info); Object.setPrototypeOf(this, InvalidAccount.prototype); } } diff --git a/backend/src/modules/account/core/events/AccountCreated.ts b/backend/src/modules/account/core/events/AccountCreated.ts deleted file mode 100644 index 254bbac1..00000000 --- a/backend/src/modules/account/core/events/AccountCreated.ts +++ /dev/null @@ -1,10 +0,0 @@ -import DomainEvent from '../../../shared/core/events/DomainEvent'; -import type DateTime from '../../../shared/core/objects/DateTime'; -import type IdEntity from '../../../shared/core/objects/IdEntity'; -import type AccountParams from '../interfaces/AccountParams'; - -export default class AccountCreated extends DomainEvent { - constructor(key: string, date: DateTime, actor: IdEntity, ownerId: IdEntity, idEntity: IdEntity, params: AccountParams) { - super(key, date, actor, ownerId, idEntity, 'ACCOUNT_CREATED', params); - } -} diff --git a/backend/src/modules/account/core/interfaces/AccountParams.ts b/backend/src/modules/account/core/interfaces/AccountParams.ts index be957f0e..a90fe29c 100644 --- a/backend/src/modules/account/core/interfaces/AccountParams.ts +++ b/backend/src/modules/account/core/interfaces/AccountParams.ts @@ -3,8 +3,8 @@ export default interface AccountParams { email: string; isPrimary: boolean; name: string; - provider?: string | null; + userId: string; + provider: string; profileImage?: string | null; - userId?: string | null; createdAt?: Date; } diff --git a/backend/src/modules/account/core/model/Account.ts b/backend/src/modules/account/core/model/Account.ts index e3a3b24f..bd7baaf9 100644 --- a/backend/src/modules/account/core/model/Account.ts +++ b/backend/src/modules/account/core/model/Account.ts @@ -3,7 +3,6 @@ import IdAccount from '../objects/IdAccount'; import IdEntity from '../../../shared/core/objects/IdEntity'; import DateTime from '../../../shared/core/objects/DateTime'; import None from '../../../shared/core/objects/None'; -import AccountCreated from '../events/AccountCreated'; import type AccountParams from '../interfaces/AccountParams'; import Email from '../../../shared/core/objects/Email'; import AccountName from '../objects/AccountName'; @@ -13,20 +12,20 @@ import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; export default class Account extends Entity { private email!: Email; private name!: AccountName; - private provider: string | None = new None(); - private profileImage: Url | None = new None(); - private owner: IdEntity | None = new None(); + private owner: IdEntity; private isPrimary: boolean = false; private createdAt!: DateTime; + private provider: string; + private profileImage: Url | None = new None(); private constructor( id: IdAccount, email: Email, isPrimary = false, name: AccountName, - provider: string | None, + provider: string, profileImage: Url | None, - owner: IdEntity | None, + owner: IdEntity, createdAt: DateTime ) { super(id); @@ -40,25 +39,24 @@ export default class Account extends Entity { } public static create( - key: string, id: IdAccount, - actor: IdEntity, - params: { email: Email; name: AccountName; provider?: string | null; profileImage?: string | null; owner?: IdEntity | null; isPrimary?: boolean }, + email: Email, + name: AccountName, + provider: string, + profileImage: Url | None, + owner: IdEntity, + isPrimary: boolean ): Account { - const provider = params.provider ? params.provider : new None(); - const profileImage = params.profileImage ? new Url(params.profileImage) : new None(); - const owner = params.owner ? params.owner : new None(); const createdAt = DateTime.now(); - - const account = new Account(id, params.email, params.isPrimary, params.name, provider as any, profileImage as any, owner as any, createdAt); - account.addEvent(new AccountCreated(key, DateTime.now(), actor, actor, id, account.toPrimitives())); + const account = new Account(id, email, isPrimary, name, provider, profileImage, owner, createdAt); return account; } public static fromPrimitives(params: AccountParams): Account { - const provider = params.provider ? params.provider : new None(); + const provider = params.provider; + if(!provider) throw new InvalidParameters("The provider is required"); const profileImage = params.profileImage ? new Url(params.profileImage) : new None(); - const owner = params.userId ? new IdEntity(params.userId) : new None(); + const owner = new IdEntity(params.userId); if(!params.createdAt) throw new InvalidParameters("The account must include a creation date"); const createdAt = DateTime.create(params.createdAt); @@ -80,13 +78,17 @@ export default class Account extends Entity { email: this.email.getEmail(), isPrimary: this.isPrimary, name: this.name.toPrimitives(), - provider: this.provider instanceof None ? null : (this.provider as string), + provider: this.provider, profileImage: this.profileImage instanceof None ? null : (this.profileImage as Url).getUrl(), - userId: this.owner instanceof None ? null : (this.owner as IdEntity).getID(), + userId: this.owner.getID(), createdAt: this.createdAt.getDate() }; } + public getProfileImage(): Url | None{ + return this.profileImage; + } + public getEmail(): Email { return this.email; } From 8c63027e4cf04bd3ef86524c0ed3e3192c7565bb Mon Sep 17 00:00:00 2001 From: Rafael-er-byte Date: Thu, 25 Jun 2026 21:25:27 -0600 Subject: [PATCH 4/6] feat: Simpify userSettings object to just use a constructor to be build instead of a method --- .../user/core/interfaces/UserParams.ts | 2 +- backend/src/modules/user/core/model/User.ts | 11 ++--- .../userSettings/core/model/UserSettings.ts | 40 +++++-------------- 3 files changed, 18 insertions(+), 35 deletions(-) diff --git a/backend/src/modules/user/core/interfaces/UserParams.ts b/backend/src/modules/user/core/interfaces/UserParams.ts index 6ccd0d06..8928b515 100644 --- a/backend/src/modules/user/core/interfaces/UserParams.ts +++ b/backend/src/modules/user/core/interfaces/UserParams.ts @@ -1,5 +1,5 @@ export default interface UserParams { id: string; primaryAccount: string; - accounts?: string[]; + accounts: string[]; } diff --git a/backend/src/modules/user/core/model/User.ts b/backend/src/modules/user/core/model/User.ts index 274b7d6e..82613ee0 100644 --- a/backend/src/modules/user/core/model/User.ts +++ b/backend/src/modules/user/core/model/User.ts @@ -7,15 +7,17 @@ import AccountDoesntExist from '../errors/AccountDoesntExist'; import type UserParams from '../interfaces/UserParams'; import InvalidOperation from '../../../shared/core/errors/InvalidOperation'; import ID from '../../../shared/core/objects/ID'; +import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; export default class User extends Entity { private accounts: IdEntity[] = []; private primaryAccount!: IdEntity; - private constructor(id: IdEntity, accounts: IdEntity[] = [], primary: IdEntity) { + private constructor(id: IdEntity, accounts: IdEntity[], primary: IdEntity) { super(id); + if(accounts.length <= 0)throw new InvalidParameters("User must contain at least one account"); this.accounts = accounts; - this.addAccount(primary); + this.primaryAccount = primary; } public static fromPrimitives(params: UserParams): User { @@ -29,11 +31,10 @@ export default class User extends Entity { const exists = this.accounts.find((a) => a.getID() === account.getID()); if (exists) throw new DuplicateAccount(account.getID()); this.accounts.push(account); - if (!this.primaryAccount) this.primaryAccount = account; } public changePrimaryAccount(newPrimary: IdEntity): void { - const previous = this.primaryAccount ? this.primaryAccount.getID() : null; + const previous = this.primaryAccount.getID(); const found = this.accounts.find((a) => a.getID() === newPrimary.getID()); if (!found) { throw new AccountDoesntExist(newPrimary.getID()); @@ -59,7 +60,7 @@ export default class User extends Entity { return this.accounts; } - public getPrimaryAccount(): IdEntity | null { + public getPrimaryAccount(): IdEntity { return this.primaryAccount; } diff --git a/backend/src/modules/userSettings/core/model/UserSettings.ts b/backend/src/modules/userSettings/core/model/UserSettings.ts index a3a55abe..a5a59212 100644 --- a/backend/src/modules/userSettings/core/model/UserSettings.ts +++ b/backend/src/modules/userSettings/core/model/UserSettings.ts @@ -13,35 +13,17 @@ export default class UserSettings extends Entity { private timezone: Timezone; private notificationSettings: NotificationSettings; - private constructor( - id: IdEntity, - userId: IdEntity, - language: Language, - theme: Theme, - timezone: Timezone, - notificationSettings: NotificationSettings, - ) { - super(id); - this.userId = userId; - this.language = language; - this.theme = theme; - this.timezone = timezone; - this.notificationSettings = notificationSettings; - } - - public static create(params: UserSettingsParams): UserSettings { - return new UserSettings( - new IdEntity(params.id), - new IdEntity(params.userId), - new Language(params.language), - new Theme(params.theme), - new Timezone(params.timezone), - NotificationSettings.create( - params.notificationSettings!.type, - params.notificationSettings!.projectType, - params.notificationSettings!.channel, - params.notificationSettings!.active, - ), + public constructor(params: UserSettingsParams) { + super(new IdEntity(params.id)); + this.userId = new IdEntity(params.userId); + this.language = new Language(params.language); + this.theme = new Theme(params.theme); + this.timezone = new Timezone(params.timezone); + this.notificationSettings = NotificationSettings.create( + params.notificationSettings!.type, + params.notificationSettings!.projectType, + params.notificationSettings!.channel, + params.notificationSettings!.active, ); } From 70dac414d82ca7d4fb2853d67291797c908063ff Mon Sep 17 00:00:00 2001 From: Rafael-er-byte Date: Thu, 25 Jun 2026 22:02:52 -0600 Subject: [PATCH 5/6] test: User module tested --- backend/src/modules/user/core/model/User.ts | 2 - .../modules/user/core/model/User.test.ts | 93 +++++++++++++------ .../user/core/objects/Language.test.ts | 16 ---- .../core/objects/NotificationSettings.test.ts | 22 ----- .../modules/user/core/objects/Theme.test.ts | 16 ---- .../user/core/objects/Timezone.test.ts | 15 --- 6 files changed, 63 insertions(+), 101 deletions(-) delete mode 100644 backend/tests/modules/user/core/objects/Language.test.ts delete mode 100644 backend/tests/modules/user/core/objects/NotificationSettings.test.ts delete mode 100644 backend/tests/modules/user/core/objects/Theme.test.ts delete mode 100644 backend/tests/modules/user/core/objects/Timezone.test.ts diff --git a/backend/src/modules/user/core/model/User.ts b/backend/src/modules/user/core/model/User.ts index 82613ee0..f0cf25f3 100644 --- a/backend/src/modules/user/core/model/User.ts +++ b/backend/src/modules/user/core/model/User.ts @@ -7,7 +7,6 @@ import AccountDoesntExist from '../errors/AccountDoesntExist'; import type UserParams from '../interfaces/UserParams'; import InvalidOperation from '../../../shared/core/errors/InvalidOperation'; import ID from '../../../shared/core/objects/ID'; -import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; export default class User extends Entity { private accounts: IdEntity[] = []; @@ -15,7 +14,6 @@ export default class User extends Entity { private constructor(id: IdEntity, accounts: IdEntity[], primary: IdEntity) { super(id); - if(accounts.length <= 0)throw new InvalidParameters("User must contain at least one account"); this.accounts = accounts; this.primaryAccount = primary; } diff --git a/backend/tests/modules/user/core/model/User.test.ts b/backend/tests/modules/user/core/model/User.test.ts index df59370e..eb18d593 100644 --- a/backend/tests/modules/user/core/model/User.test.ts +++ b/backend/tests/modules/user/core/model/User.test.ts @@ -2,49 +2,82 @@ import User from '../../../../../src/modules/user/core/model/User'; import IdEntity from '../../../../../src/modules/shared/core/objects/IdEntity'; import ID from '../../../../../src/modules/shared/core/objects/ID'; import { describe, it, expect } from 'vitest'; +import UserParams from '../../../../../src/modules/user/core/interfaces/UserParams'; +import DuplicateAccount from '../../../../../src/modules/user/core/errors/DuplicateAccount'; +import AccountChanged from '../../../../../src/modules/user/core/events/AccountChanged'; +import InvalidOperation from '../../../../../src/modules/shared/core/errors/InvalidOperation'; +import AccountDoesntExist from '../../../../../src/modules/user/core/errors/AccountDoesntExist'; describe('User entity', () => { - it('fromPrimitives and add account sets primary when none', () => { - const params = { - id: ID.generateId().getId(), - accounts: [], - primaryAccount: null, + + const DEFAULT_ID = '0143c815-7220-7d64-8c42-6f2af4f9fd37'; + + const params = { + id: DEFAULT_ID, + primaryAccount: DEFAULT_ID, + accounts: [DEFAULT_ID] }; - const user = User.fromPrimitives(params as any); - const acc = new IdEntity(ID.generateId().getId()); - user.addAccount(acc); + + it('fromPrimitives and add account sets primary when none', () => { + const user = User.fromPrimitives(params as UserParams); + console.log(user.getAccounts); + expect(user.getAccounts().length).toBe(1); - expect(user.getPrimaryAccount()).not.toBeNull(); + expect(user.getPrimaryAccount().getID()).toBe(DEFAULT_ID); }); it('throws when adding duplicate account', () => { - const params = { - id: ID.generateId().getId(), - accounts: [], - primaryAccount: null, - }; - const user = User.fromPrimitives(params as any); - const acc = new IdEntity(ID.generateId().getId()); - user.addAccount(acc); - expect(() => user.addAccount(acc)).toThrow(); + const user = User.fromPrimitives(params as UserParams); + const acc = new IdEntity(DEFAULT_ID); + + expect(() => user.addAccount(acc)).toThrow(DuplicateAccount); }); it('changePrimaryAccount emits ACCOUNT_CHANGED event with previous info', () => { - const existing = ID.generateId().getId(); - const params = { - id: ID.generateId().getId(), - accounts: [existing], - primaryAccount: existing, - }; - const user = User.fromPrimitives(params as any); - const actor = new IdEntity(ID.generateId().getId()); + const user = User.fromPrimitives(params as UserParams); const newPrimary = new IdEntity(ID.generateId().getId()); user.addAccount(newPrimary); - user.changePrimaryAccount('k1', actor, newPrimary); + user.changePrimaryAccount(newPrimary); + const events = user.pullEvents(); + expect(events.length).toBeGreaterThan(0); - expect(events[0].getEvent()).toBe('ACCOUNT_CHANGED'); - const info = events[0].getInfo() as any; - expect(info.previousPrimary).toBe(existing); + expect(events[0]).toBeInstanceOf(AccountChanged); + }); + + it("Should remove an account", () => { + const user = User.fromPrimitives(params as UserParams); + const acc = new IdEntity(ID.generateId().getId()); + user.addAccount(acc); + + expect(user.getAccounts().length === 2); + + user.removeAccount(acc); + expect(user.getAccounts().length === 2); + expect(user.getAccounts()[0].getID()).toStrictEqual(DEFAULT_ID); + }); + + it("Should throw if try to remove the last account", () => { + const user = User.fromPrimitives(params as UserParams); + expect(() => user.removeAccount(new IdEntity(DEFAULT_ID))).toThrow(InvalidOperation); + }); + + it("Should throw if the account tring to remove doesnt exists", () => { + const user = User.fromPrimitives(params as UserParams); + + expect(() => user.removeAccount(new IdEntity(ID.generateId().getId()))).toThrow(AccountDoesntExist) + }); + + it("Should take the first account as the primary in case that remove the primary account", () => { + const user = User.fromPrimitives(params as UserParams); + const newPrimary = new IdEntity(ID.generateId().getId()); + user.addAccount(newPrimary); + user.changePrimaryAccount(newPrimary); + + expect(user.getPrimaryAccount().getID()).toBe(newPrimary.getID()); + + user.removeAccount(newPrimary); + + expect(user.getPrimaryAccount().getID()).toBe(DEFAULT_ID); }); }); diff --git a/backend/tests/modules/user/core/objects/Language.test.ts b/backend/tests/modules/user/core/objects/Language.test.ts deleted file mode 100644 index 6f30dd92..00000000 --- a/backend/tests/modules/user/core/objects/Language.test.ts +++ /dev/null @@ -1,16 +0,0 @@ -import Language from '../../../../../src/modules/userSettings/core/objects/Language'; -import UnsupportedLanguage from '../../../../../src/modules/userSettings/core/errors/UnsupportedLanguage'; -import { describe, it, expect } from 'vitest'; -import { AllowedLanguage } from '../../../../../src/modules/userSettings/core/types/Language'; - -describe('Language value object', () => { - it('creates for allowed languages', () => { - expect(Language.create(AllowedLanguage.en)).toBeInstanceOf(Language); - expect(Language.create(AllowedLanguage.es)).toBeInstanceOf(Language); - }); - - it('throws for unsupported languages', () => { - expect(() => Language.create('FR' as any)).toThrow(UnsupportedLanguage); - expect(() => Language.create('' as any)).toThrow(UnsupportedLanguage); - }); -}); diff --git a/backend/tests/modules/user/core/objects/NotificationSettings.test.ts b/backend/tests/modules/user/core/objects/NotificationSettings.test.ts deleted file mode 100644 index 816295b3..00000000 --- a/backend/tests/modules/user/core/objects/NotificationSettings.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -import NotificationSettings from '../../../../../src/modules/userSettings/core/objects/NotificationSettings'; -import { describe, it, expect } from 'vitest'; -import { AllowedNotificationType, AllowedProjectType, AllowedChannelType } from '../../../../../src/modules/userSettings/core/types/NotificationSettings'; - -describe('NotificationSettings value object', () => { - it('creates with valid values', () => { - const s = NotificationSettings.create( - AllowedNotificationType.all, - AllowedProjectType.all, - AllowedChannelType.email, - true, - ); - expect(s).toBeInstanceOf(NotificationSettings); - expect(s.isActive()).toBe(true); - }); - - it('throws for invalid types', () => { - expect(() => NotificationSettings.create('BAD' as any, AllowedProjectType.all, AllowedChannelType.email, true)).toThrow(); - expect(() => NotificationSettings.create(AllowedNotificationType.all, 'BAD' as any, AllowedChannelType.email, true)).toThrow(); - expect(() => NotificationSettings.create(AllowedNotificationType.all, AllowedProjectType.all, 'BAD' as any, true)).toThrow(); - }); -}); diff --git a/backend/tests/modules/user/core/objects/Theme.test.ts b/backend/tests/modules/user/core/objects/Theme.test.ts deleted file mode 100644 index c5bf29d8..00000000 --- a/backend/tests/modules/user/core/objects/Theme.test.ts +++ /dev/null @@ -1,16 +0,0 @@ -import Theme from '../../../../../src/modules/userSettings/core/objects/Theme'; -import UnsupportedTheme from '../../../../../src/modules/userSettings/core/errors/UnsupportedTheme'; -import { describe, it, expect } from 'vitest'; -import { AllowedTheme } from '../../../../../src/modules/userSettings/core/types/Theme'; - -describe('Theme value object', () => { - it('creates for allowed themes', () => { - expect(Theme.create(AllowedTheme.dark)).toBeInstanceOf(Theme); - expect(Theme.create(AllowedTheme.light)).toBeInstanceOf(Theme); - }); - - it('throws for unsupported themes', () => { - expect(() => Theme.create('BLUE' as any)).toThrow(UnsupportedTheme); - expect(() => Theme.create('' as any)).toThrow(UnsupportedTheme); - }); -}); diff --git a/backend/tests/modules/user/core/objects/Timezone.test.ts b/backend/tests/modules/user/core/objects/Timezone.test.ts deleted file mode 100644 index 9efa8fd3..00000000 --- a/backend/tests/modules/user/core/objects/Timezone.test.ts +++ /dev/null @@ -1,15 +0,0 @@ -import Timezone from '../../../../../src/modules/userSettings/core/objects/Timezone'; -import InvalidTimezone from '../../../../../src/modules/userSettings/core/errors/InvalidTimezone'; -import { describe, it, expect } from 'vitest'; - -describe('Timezone value object', () => { - it('accepts valid IANA timezone', () => { - expect(new Timezone('Europe/Madrid')).toBeInstanceOf(Timezone); - expect(new Timezone('America/New_York')).toBeInstanceOf(Timezone); - }); - - it('throws for invalid timezone format', () => { - expect(() => new Timezone('GMT')).toThrow(InvalidTimezone); - expect(() => new Timezone('')).toThrow(InvalidTimezone); - }); -}); From 00f26ad58e77607e95691ccacf385730c48ca9da Mon Sep 17 00:00:00 2001 From: Rafael-er-byte Date: Mon, 29 Jun 2026 22:02:28 -0600 Subject: [PATCH 6/6] feat: create user, account and userSettings modules, they encapsule the logic to manage user data, representinf the user information and its accounts, this because a user can have multiple accounts and just one userSettings, all were tested --- .../core/interfaces/AccountParams.d.ts | 4 +- .../core/interfaces/AccountParams.d.ts.map | 2 +- .../modules/account/core/model/Account.d.ts | 16 ++-- .../account/core/model/Account.d.ts.map | 2 +- .../modules/account/core/model/Account.js | 26 +++---- .../modules/account/core/model/Account.js.map | 2 +- .../invitation/core/model/Invitation.d.ts | 2 +- .../invitation/core/model/Invitation.d.ts.map | 2 +- .../invitation/core/model/Invitation.js | 2 +- .../invitation/core/model/Invitation.js.map | 2 +- .../modules/project/core/model/Project.js | 2 +- .../modules/project/core/model/Project.js.map | 2 +- .../core/model/TaskAttachment.d.ts.map | 2 +- .../core/model/TaskAttachment.js | 1 - .../core/model/TaskAttachment.js.map | 2 +- .../user/core/interfaces/UserParams.d.ts | 4 +- .../user/core/interfaces/UserParams.d.ts.map | 2 +- .../dist/modules/user/core/model/User.d.ts | 4 +- .../modules/user/core/model/User.d.ts.map | 2 +- backend/dist/modules/user/core/model/User.js | 19 +++-- .../dist/modules/user/core/model/User.js.map | 2 +- .../core/interfaces/UserSettingsParams.d.ts | 4 +- .../interfaces/UserSettingsParams.d.ts.map | 2 +- .../userSettings/core/model/UserSettings.d.ts | 9 +-- .../core/model/UserSettings.d.ts.map | 2 +- .../userSettings/core/model/UserSettings.js | 62 +++------------- .../core/model/UserSettings.js.map | 2 +- .../userSettings/core/objects/Language.d.ts | 6 +- .../core/objects/Language.d.ts.map | 2 +- .../userSettings/core/objects/Language.js | 12 --- .../userSettings/core/objects/Language.js.map | 2 +- .../core/objects/NotificationSettings.d.ts | 4 +- .../objects/NotificationSettings.d.ts.map | 2 +- .../core/objects/NotificationSettings.js | 2 +- .../core/objects/NotificationSettings.js.map | 2 +- .../userSettings/core/objects/Theme.d.ts | 6 +- .../userSettings/core/objects/Theme.d.ts.map | 2 +- .../userSettings/core/objects/Theme.js | 12 --- .../userSettings/core/objects/Theme.js.map | 2 +- .../userSettings/core/objects/Timezone.d.ts | 1 - .../core/objects/Timezone.d.ts.map | 2 +- .../userSettings/core/objects/Timezone.js | 3 - .../userSettings/core/objects/Timezone.js.map | 2 +- backend/eslint.config.mts | 3 + .../account/core/errors/InvalidAccount.ts | 8 -- .../src/modules/account/core/model/Account.ts | 6 +- .../invitation/core/model/Invitation.ts | 2 +- .../src/modules/project/core/model/Project.ts | 2 +- .../core/model/TaskAttachment.ts | 1 - .../account/core/model/Account.test.ts | 74 ++++++++++++++++--- .../core/model/UserSettings.test.ts | 66 +++++++++-------- .../core/objects/Language.test.ts | 17 +++++ .../core/objects/NotificationSettings.test.ts | 64 ++++++++++++++++ .../userSettings/core/objects/Theme.test.ts | 17 +++++ .../core/objects/Timezone.test.ts | 16 ++++ 55 files changed, 298 insertions(+), 223 deletions(-) delete mode 100644 backend/src/modules/account/core/errors/InvalidAccount.ts create mode 100644 backend/tests/modules/userSettings/core/objects/Language.test.ts create mode 100644 backend/tests/modules/userSettings/core/objects/NotificationSettings.test.ts create mode 100644 backend/tests/modules/userSettings/core/objects/Theme.test.ts create mode 100644 backend/tests/modules/userSettings/core/objects/Timezone.test.ts diff --git a/backend/dist/modules/account/core/interfaces/AccountParams.d.ts b/backend/dist/modules/account/core/interfaces/AccountParams.d.ts index 5331602c..c9018ae4 100644 --- a/backend/dist/modules/account/core/interfaces/AccountParams.d.ts +++ b/backend/dist/modules/account/core/interfaces/AccountParams.d.ts @@ -3,9 +3,9 @@ export default interface AccountParams { email: string; isPrimary: boolean; name: string; - provider?: string | null; + userId: string; + provider: string; profileImage?: string | null; - userId?: string | null; createdAt?: Date; } //# sourceMappingURL=AccountParams.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/account/core/interfaces/AccountParams.d.ts.map b/backend/dist/modules/account/core/interfaces/AccountParams.d.ts.map index df02af92..0001bdb9 100644 --- a/backend/dist/modules/account/core/interfaces/AccountParams.d.ts.map +++ b/backend/dist/modules/account/core/interfaces/AccountParams.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"AccountParams.d.ts","sourceRoot":"","sources":["../../../../../src/modules/account/core/interfaces/AccountParams.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,aAAa;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"} \ No newline at end of file +{"version":3,"file":"AccountParams.d.ts","sourceRoot":"","sources":["../../../../../src/modules/account/core/interfaces/AccountParams.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,aAAa;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/model/Account.d.ts b/backend/dist/modules/account/core/model/Account.d.ts index 67fcfb93..e0bdb12f 100644 --- a/backend/dist/modules/account/core/model/Account.d.ts +++ b/backend/dist/modules/account/core/model/Account.d.ts @@ -1,28 +1,24 @@ import Entity from '../../../shared/core/model/Entity'; import IdAccount from '../objects/IdAccount'; import IdEntity from '../../../shared/core/objects/IdEntity'; +import None from '../../../shared/core/objects/None'; import type AccountParams from '../interfaces/AccountParams'; import Email from '../../../shared/core/objects/Email'; import AccountName from '../objects/AccountName'; +import Url from '../../../shared/core/objects/URL'; export default class Account extends Entity { private email; private name; - private provider; - private profileImage; private owner; private isPrimary; private createdAt; + private provider; + private profileImage; private constructor(); - static create(key: string, id: IdAccount, actor: IdEntity, params: { - email: Email; - name: AccountName; - provider?: string | null; - profileImage?: string | null; - owner?: IdEntity | null; - isPrimary?: boolean; - }): Account; + static create(id: IdAccount, email: Email, name: AccountName, provider: string, profileImage: Url | None, owner: IdEntity, isPrimary: boolean): Account; static fromPrimitives(params: AccountParams): Account; toPrimitives(): AccountParams; + getProfileImage(): Url | None; getEmail(): Email; getName(): AccountName; } diff --git a/backend/dist/modules/account/core/model/Account.d.ts.map b/backend/dist/modules/account/core/model/Account.d.ts.map index 1bd0445e..c5266be2 100644 --- a/backend/dist/modules/account/core/model/Account.d.ts.map +++ b/backend/dist/modules/account/core/model/Account.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../../../../src/modules/account/core/model/Account.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAI7D,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,MAAM,oCAAoC,CAAC;AACvD,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAIjD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IAC1C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO;WAoBO,MAAM,CACnB,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/I,OAAO;WAWI,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAmBrD,YAAY,IAAI,aAAa;IAa7B,QAAQ,IAAI,KAAK;IAIjB,OAAO,IAAI,WAAW;CAG7B"} \ No newline at end of file +{"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../../../../src/modules/account/core/model/Account.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAE7D,OAAO,IAAI,MAAM,mCAAmC,CAAC;AACrD,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,MAAM,oCAAoC,CAAC;AACvD,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,GAAG,MAAM,kCAAkC,CAAC;AAGnD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IAC1C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAA0B;IAE9C,OAAO;WAoBO,MAAM,CACnB,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,GAAG,GAAG,IAAI,EACxB,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,OAAO,GAChB,OAAO;WAMI,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAoBrD,YAAY,IAAI,aAAa;IAa7B,eAAe,IAAI,GAAG,GAAG,IAAI;IAI7B,QAAQ,IAAI,KAAK;IAIjB,OAAO,IAAI,WAAW;CAG7B"} \ No newline at end of file diff --git a/backend/dist/modules/account/core/model/Account.js b/backend/dist/modules/account/core/model/Account.js index e3adc3d4..e129e109 100644 --- a/backend/dist/modules/account/core/model/Account.js +++ b/backend/dist/modules/account/core/model/Account.js @@ -3,7 +3,6 @@ import IdAccount from '../objects/IdAccount'; import IdEntity from '../../../shared/core/objects/IdEntity'; import DateTime from '../../../shared/core/objects/DateTime'; import None from '../../../shared/core/objects/None'; -import AccountCreated from '../events/AccountCreated'; import Email from '../../../shared/core/objects/Email'; import AccountName from '../objects/AccountName'; import Url from '../../../shared/core/objects/URL'; @@ -11,10 +10,8 @@ import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; export default class Account extends Entity { constructor(id, email, isPrimary = false, name, provider, profileImage, owner, createdAt) { super(id); - this.provider = new None(); - this.profileImage = new None(); - this.owner = new None(); this.isPrimary = false; + this.profileImage = new None(); this.email = email; this.name = name; this.provider = provider; @@ -23,19 +20,17 @@ export default class Account extends Entity { this.isPrimary = isPrimary; this.createdAt = createdAt; } - static create(key, id, actor, params) { - const provider = params.provider ? params.provider : new None(); - const profileImage = params.profileImage ? new Url(params.profileImage) : new None(); - const owner = params.owner ? params.owner : new None(); + static create(id, email, name, provider, profileImage, owner, isPrimary) { const createdAt = DateTime.now(); - const account = new Account(id, params.email, params.isPrimary, params.name, provider, profileImage, owner, createdAt); - account.addEvent(new AccountCreated(key, DateTime.now(), actor, actor, id, account.toPrimitives())); + const account = new Account(id, email, isPrimary, name, provider, profileImage, owner, createdAt); return account; } static fromPrimitives(params) { - const provider = params.provider ? params.provider : new None(); + const provider = params.provider; + if (!provider) + throw new InvalidParameters("The provider is required"); const profileImage = params.profileImage ? new Url(params.profileImage) : new None(); - const owner = params.userId ? new IdEntity(params.userId) : new None(); + const owner = new IdEntity(params.userId); if (!params.createdAt) throw new InvalidParameters("The account must include a creation date"); const createdAt = DateTime.create(params.createdAt); @@ -47,12 +42,15 @@ export default class Account extends Entity { email: this.email.getEmail(), isPrimary: this.isPrimary, name: this.name.toPrimitives(), - provider: this.provider instanceof None ? null : this.provider, + provider: this.provider, profileImage: this.profileImage instanceof None ? null : this.profileImage.getUrl(), - userId: this.owner instanceof None ? null : this.owner.getID(), + userId: this.owner.getID(), createdAt: this.createdAt.getDate() }; } + getProfileImage() { + return this.profileImage; + } getEmail() { return this.email; } diff --git a/backend/dist/modules/account/core/model/Account.js.map b/backend/dist/modules/account/core/model/Account.js.map index e1ea8ce0..109fad5a 100644 --- a/backend/dist/modules/account/core/model/Account.js.map +++ b/backend/dist/modules/account/core/model/Account.js.map @@ -1 +1 @@ -{"version":3,"file":"Account.js","sourceRoot":"","sources":["../../../../../src/modules/account/core/model/Account.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Account.js","sourceRoot":"","sources":["../../../../../src/modules/account/core/model/Account.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/backend/dist/modules/invitation/core/model/Invitation.d.ts b/backend/dist/modules/invitation/core/model/Invitation.d.ts index 02e6aa4f..def1d883 100644 --- a/backend/dist/modules/invitation/core/model/Invitation.d.ts +++ b/backend/dist/modules/invitation/core/model/Invitation.d.ts @@ -12,7 +12,7 @@ export default class Invitation extends Entity { private constructor(); static create(key: string, id: IdInvitation, host: IdEntity, projectId: IdEntity, guest: Email): Invitation; cancel(key: string): void; - accept(key: string): void; + accept(): void; delete(key: string): void; static fromPrimitives(params: InvitationParams): Invitation; toPrimitives(): InvitationParams; diff --git a/backend/dist/modules/invitation/core/model/Invitation.d.ts.map b/backend/dist/modules/invitation/core/model/Invitation.d.ts.map index c9aa894b..301f35fd 100644 --- a/backend/dist/modules/invitation/core/model/Invitation.d.ts.map +++ b/backend/dist/modules/invitation/core/model/Invitation.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Invitation.d.ts","sourceRoot":"","sources":["../../../../../src/modules/invitation/core/model/Invitation.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAE7D,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,gBAA6C,MAAM,6BAA6B,CAAC;AACxF,OAAO,KAAK,gBAAgB,MAAM,gCAAgC,CAAC;AAGnE,OAAO,KAAK,MAAM,oCAAoC,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,MAAM;IAC5C,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO;WAQO,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,UAAU;IAM3G,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;WAIlB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU;IAU3D,YAAY,IAAI,gBAAgB;IAUhC,OAAO,IAAI,QAAQ;IAInB,YAAY,IAAI,QAAQ;IAIxB,SAAS,IAAI,gBAAgB;IAI7B,QAAQ,IAAI,KAAK;CAGzB"} \ No newline at end of file +{"version":3,"file":"Invitation.d.ts","sourceRoot":"","sources":["../../../../../src/modules/invitation/core/model/Invitation.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAE7D,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,gBAA6C,MAAM,6BAA6B,CAAC;AACxF,OAAO,KAAK,gBAAgB,MAAM,gCAAgC,CAAC;AAGnE,OAAO,KAAK,MAAM,oCAAoC,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,MAAM;IAC5C,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO;WAQO,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,UAAU;IAM3G,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzB,MAAM,IAAI,IAAI;IAId,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;WAIlB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU;IAU3D,YAAY,IAAI,gBAAgB;IAUhC,OAAO,IAAI,QAAQ;IAInB,YAAY,IAAI,QAAQ;IAIxB,SAAS,IAAI,gBAAgB;IAI7B,QAAQ,IAAI,KAAK;CAGzB"} \ No newline at end of file diff --git a/backend/dist/modules/invitation/core/model/Invitation.js b/backend/dist/modules/invitation/core/model/Invitation.js index 7c4d8072..07a530a0 100644 --- a/backend/dist/modules/invitation/core/model/Invitation.js +++ b/backend/dist/modules/invitation/core/model/Invitation.js @@ -23,7 +23,7 @@ export default class Invitation extends Entity { this.status = InvitationStatus.canceled(); this.addEvent(new InvitationCanceled(key, DateTime.now(), this.host, this.host, super.getID())); } - accept(key) { + accept() { this.status = InvitationStatus.accepted(); } delete(key) { diff --git a/backend/dist/modules/invitation/core/model/Invitation.js.map b/backend/dist/modules/invitation/core/model/Invitation.js.map index f1fc6c0b..7d69871a 100644 --- a/backend/dist/modules/invitation/core/model/Invitation.js.map +++ b/backend/dist/modules/invitation/core/model/Invitation.js.map @@ -1 +1 @@ -{"version":3,"file":"Invitation.js","sourceRoot":"","sources":["../../../../../src/modules/invitation/core/model/Invitation.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Invitation.js","sourceRoot":"","sources":["../../../../../src/modules/invitation/core/model/Invitation.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/backend/dist/modules/project/core/model/Project.js b/backend/dist/modules/project/core/model/Project.js index 97855d37..df76b9e7 100644 --- a/backend/dist/modules/project/core/model/Project.js +++ b/backend/dist/modules/project/core/model/Project.js @@ -148,7 +148,7 @@ export default class Project extends Entity { if (!list) { throw new ResourceNotFound(`The list with id: ${listId.getID()} does not exists in project with id: ${this.getID()}`, { listId: listId.getID(), projectId: this.getID() }); } - let ProjectlistToReorganize = this.lists.slice(list.position.getValue() - 1); + const ProjectlistToReorganize = this.lists.slice(list.position.getValue() - 1); ProjectlistToReorganize.forEach(l => l.position = new PositiveInteger(l.position.getValue() - 1)); this.lists = this.lists.filter(l => l.idList.getID() !== list.idList.getID()); } diff --git a/backend/dist/modules/project/core/model/Project.js.map b/backend/dist/modules/project/core/model/Project.js.map index e7c7fd36..90b7e979 100644 --- a/backend/dist/modules/project/core/model/Project.js.map +++ b/backend/dist/modules/project/core/model/Project.js.map @@ -1 +1 @@ -{"version":3,"file":"Project.js","sourceRoot":"","sources":["../../../../../src/modules/project/core/model/Project.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,IAAI,MAAM,mCAAmC,CAAC;AACrD,OAAO,UAAU,MAAM,yCAAyC,CAAC;AACjE,OAAO,SAAS,MAAM,wCAAwC,CAAC;AAC/D,OAAO,IAAI,MAAM,mCAAmC,CAAC;AACrD,OAAO,GAAG,MAAM,kCAAkC,CAAC;AACnD,OAAO,+BAA+B,MAAM,2CAA2C,CAAC;AACxF,OAAO,6BAA6B,MAAM,yCAAyC,CAAC;AACpF,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAChE,OAAO,8BAA8B,MAAM,0CAA0C,CAAC;AACtF,OAAO,6BAA6B,MAAM,yCAAyC,CAAC;AACpF,OAAO,sCAAsC,MAAM,kDAAkD,CAAC;AACtG,OAAO,mCAAmC,MAAM,+CAA+C,CAAC;AAChG,OAAO,cAAc,MAAM,0BAA0B,CAAC;AACtD,OAAO,cAAc,MAAM,0BAA0B,CAAC;AACtD,OAAO,yBAAyB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,oCAAoC,MAAM,gDAAgD,CAAC;AAElG,OAAO,sBAAsB,MAAM,mCAAmC,CAAC;AACvE,OAAO,sBAAsB,MAAM,mCAAmC,CAAC;AACvE,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAC/D,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAGzE,OAAO,wBAAwB,MAAM,oCAAoC,CAAC;AAC1E,OAAO,yBAAyB,MAAM,wDAAwD,CAAC;AAC/F,OAAO,eAAe,MAAM,8CAA8C,CAAC;AAC3E,OAAO,gBAAgB,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,MAAM,iCAAiC,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,yBAAyB,MAAM,qCAAqC,CAAC;AAE5E,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IAczC,YACE,EAAa,EACb,MAAqB,EACrB,WAAwB,EACxB,kBAA6C,EAC7C,UAA2D,EAC3D,KAAoB,EACpB,oBAAoC,EACpC,gBAAyB,EACzB,iBAAiC,EACjC,uBAAuC,EACvC,kBAA2B,EAC3B,iBAA4B,IAAI,IAAI,EAAE;QAEtC,KAAK,CAAC,EAAE,CAAC,CAAC;QACV,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAEM,MAAM,CAAC,MAAM,CAClB,EAAa,EACb,WAAwB,EACxB,kBAA6C,EAC7C,UAA2D,EAC3D,KAAoB,EACpB,oBAAoC,EACpC,gBAAyB,EACzB,iBAAiC,EACjC,uBAAuC,EACvC,kBAA2B,EAC3B,KAAe,EACf,GAAW;QAEX,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,EAAE,EACF,aAAa,CAAC,IAAI,EAAE,EACpB,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,KAAK,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,CACnB,CAAC;QAEF,OAAO,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC7F,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,MAAqB;QAChD,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,MAAM,CAAC,UAA0C,CAAC;QACtE,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,KAAK,qBAAqB,CAAC,KAAK;YACtE,CAAC,CAAC,IAAI,sBAAsB,CAAC,IAAI,UAAU,CACzC,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EACxB,WAAW,CAAC,IAA0B,EACtC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAC1B,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAChC,CAAC;YACF,CAAC,CAAC,IAAI,sBAAsB,CAAC,MAAM,CAAC,UAA2B,CAAC,CAAC;QAEnE,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,EAAE,EACF,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EACnC,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EACnC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAC1F,UAAU,EACV,MAAM,CAAC,KAAK,EACZ,IAAI,cAAc,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAC/C,MAAM,CAAC,gBAAgB,EACvB,IAAI,cAAc,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAC5C,IAAI,cAAc,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAClD,MAAM,CAAC,kBAAkB,EACzB,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAC1E,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,GAAW,EAAE,KAAe;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAAE,OAAO;QACnC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAEM,MAAM,CAAC,GAAW,EAAE,KAAe;QACxC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAAE,MAAM,IAAI,oCAAoC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IAEM,iBAAiB,CAAC,WAAwB,EAAE,GAAW,EAAE,KAAe;QAC7E,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAC1F,CAAC;IAEM,wBAAwB,CAAC,kBAA6C,EAAE,GAAW,EAAE,KAAe;QACzG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,yBAAyB,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACxG,CAAC;IAEM,kBAAkB,CAAC,UAAkC,EAAE,GAAW,EAAE,KAAe;QACxF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,6BAA6B,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IACpG,CAAC;IAEM,kBAAkB,CAAC,UAAkC,EAAE,GAAW,EAAE,KAAe;QACxF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAC1F,CAAC;IAEM,qBAAqB,CAAC,oBAAoC,EAAE,GAAW,EAAE,KAAe;QAC7F,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,6BAA6B,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC9G,CAAC;IAEM,uBAAuB,CAAC,iBAAiC,EAAE,GAAW,EAAE,KAAe;QAC5F,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,IAAI,+BAA+B,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC7G,CAAC;IAEM,8BAA8B,CAAC,uBAAuC,EAAE,GAAW,EAAE,KAAe;QACzG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,mCAAmC,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;IACvH,CAAC;IAEM,8BAA8B,CAAC,gBAAyB,EAAE,GAAW,EAAE,KAAe;QAC3F,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,8BAA8B,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC3G,CAAC;IAEM,uBAAuB,CAAC,GAAW,EAAE,KAAe;QACzD,IAAI,IAAI,CAAC,kBAAkB;YAAE,OAAO;QACpC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,sCAAsC,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC1H,CAAC;IAEM,yBAAyB,CAAC,GAAW,EAAE,KAAe;QAC3D,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAAE,OAAO;QACrC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,sCAAsC,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC1H,CAAC;IAEM,OAAO,CAAC,WAAwB;QACrC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;YAC/G,MAAM,IAAI,yBAAyB,CAAC,yBAAyB,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,iCAAiC,CAAC,CAAC;QAC5H,CAAC;QACD,IAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YAClG,MAAM,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAE,CAAC,CAAC,CAAC;QAE1E,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACvF,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,YAAY,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,CAAC;IAC/D,CAAC;IAEM,UAAU,CAAC,MAAgB;QAChC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAEvE,IAAG,CAAC,IAAI,EAAE,CAAC;YACT,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,MAAM,CAAC,KAAK,EAAE,wCAAwC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,EAAC,CAAC,CAAC;QAC3K,CAAC;QAED,IAAI,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAE,CAAC,CAAC,CAAC;QAE5E,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAChF,CAAC;IAEM,uBAAuB;QAC5B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;QACtC,OAAQ,IAAI,CAAC,cAAqB,CAAC,KAAK,EAAE,CAAC;IAC7C,CAAC;IAEM,yBAAyB;QAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;IACnC,CAAC;IAEM,wBAAwB;QAC7B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEM,qBAAqB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEM,iBAAiB;QACtB,OAAO,CAAC,IAAI,CAAC,UAAU,YAAY,sBAAsB,CAAC,CAAA,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAA,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC;IACvH,CAAC;IAEM,QAAQ;QACb,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAEM,uBAAuB;QAC5B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAEM,kBAAkB;QACvB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAEM,oBAAoB;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAEM,0BAA0B;QAC/B,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;IAEM,QAAQ;QACb,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,cAAc,YAAY,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACpF,CAAC;IAEO,mBAAmB;QACzB,IAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAAE,MAAM,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IAClF,CAAC;IAEM,YAAY;QACjB,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YACvC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE;YAC7G,UAAU,EAAE,IAAI,CAAC,UAAU,YAAY,sBAAsB,CAAC,CAAC,CAAC;gBAC9D,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE;gBACjD,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;gBAC1C,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE;gBACpD,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;aACtD,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC9B,cAAc,EAAE,IAAI,CAAC,UAAU,YAAY,sBAAsB,CAAA,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAA,CAAC,CAAC,qBAAqB,CAAC,KAAK;YAC3H,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE;YAC5D,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE;YACtD,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE;YAClE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,cAAc,EAAE,IAAI,CAAC,cAAc,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,cAAqB,CAAC,KAAK,EAAE;SACjG,CAAC;IACJ,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"Project.js","sourceRoot":"","sources":["../../../../../src/modules/project/core/model/Project.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/backend/dist/modules/taskAttachment/core/model/TaskAttachment.d.ts.map b/backend/dist/modules/taskAttachment/core/model/TaskAttachment.d.ts.map index f1410c1b..71b874a2 100644 --- a/backend/dist/modules/taskAttachment/core/model/TaskAttachment.d.ts.map +++ b/backend/dist/modules/taskAttachment/core/model/TaskAttachment.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"TaskAttachment.d.ts","sourceRoot":"","sources":["../../../../../src/modules/taskAttachment/core/model/TaskAttachment.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mCAAmC,CAAC;AAEvD,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAE7D,OAAO,UAAU,MAAM,yCAAyC,CAAC;AACjE,OAAO,GAAG,MAAM,kCAAkC,CAAC;AACnD,OAAO,IAAI,MAAM,mCAAmC,CAAC;AACrD,OAAO,SAAS,MAAM,wCAAwC,CAAC;AAI/D,OAAO,gBAAgB,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,oBAAoB,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAE7F,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,MAAM;IAChD,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,IAAI,CAAY;IAExB,OAAO;WAMO,MAAM,CAClB,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,gBAAgB,EACpB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,GACV,cAAc;WAgBH,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc;IAenE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAmB1D,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAI1C,aAAa,IAAI,UAAU;IAI3B,MAAM,IAAI,GAAG;IAIb,OAAO,IAAI,kBAAkB;IAI7B,OAAO,IAAI,IAAI;IAIf,OAAO,IAAI,SAAS;IAIpB,OAAO,IAAI,QAAQ;IAInB,SAAS,IAAI,QAAQ;IAIrB,YAAY,IAAI,oBAAoB;CAY5C"} \ No newline at end of file +{"version":3,"file":"TaskAttachment.d.ts","sourceRoot":"","sources":["../../../../../src/modules/taskAttachment/core/model/TaskAttachment.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mCAAmC,CAAC;AAEvD,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,UAAU,MAAM,yCAAyC,CAAC;AACjE,OAAO,GAAG,MAAM,kCAAkC,CAAC;AACnD,OAAO,IAAI,MAAM,mCAAmC,CAAC;AACrD,OAAO,SAAS,MAAM,wCAAwC,CAAC;AAI/D,OAAO,gBAAgB,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,oBAAoB,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAE7F,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,MAAM;IAChD,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,IAAI,CAAY;IAExB,OAAO;WAMO,MAAM,CAClB,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,gBAAgB,EACpB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,GACV,cAAc;WAgBH,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc;IAenE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAmB1D,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAI1C,aAAa,IAAI,UAAU;IAI3B,MAAM,IAAI,GAAG;IAIb,OAAO,IAAI,kBAAkB;IAI7B,OAAO,IAAI,IAAI;IAIf,OAAO,IAAI,SAAS;IAIpB,OAAO,IAAI,QAAQ;IAInB,SAAS,IAAI,QAAQ;IAIrB,YAAY,IAAI,oBAAoB;CAY5C"} \ No newline at end of file diff --git a/backend/dist/modules/taskAttachment/core/model/TaskAttachment.js b/backend/dist/modules/taskAttachment/core/model/TaskAttachment.js index 4779ba34..b0e16ac2 100644 --- a/backend/dist/modules/taskAttachment/core/model/TaskAttachment.js +++ b/backend/dist/modules/taskAttachment/core/model/TaskAttachment.js @@ -1,7 +1,6 @@ import Entity from '../../../shared/core/model/Entity'; import DateTime from '../../../shared/core/objects/DateTime'; import IdEntity from '../../../shared/core/objects/IdEntity'; -import DeletedAt from '../../../shared/core/objects/DeletedAt'; import Attachment from '../../../shared/core/objects/Attachment'; import Url from '../../../shared/core/objects/URL'; import Text from '../../../shared/core/objects/Text'; diff --git a/backend/dist/modules/taskAttachment/core/model/TaskAttachment.js.map b/backend/dist/modules/taskAttachment/core/model/TaskAttachment.js.map index 60d11c4e..f7a93331 100644 --- a/backend/dist/modules/taskAttachment/core/model/TaskAttachment.js.map +++ b/backend/dist/modules/taskAttachment/core/model/TaskAttachment.js.map @@ -1 +1 @@ -{"version":3,"file":"TaskAttachment.js","sourceRoot":"","sources":["../../../../../src/modules/taskAttachment/core/model/TaskAttachment.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"TaskAttachment.js","sourceRoot":"","sources":["../../../../../src/modules/taskAttachment/core/model/TaskAttachment.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/interfaces/UserParams.d.ts b/backend/dist/modules/user/core/interfaces/UserParams.d.ts index e565c873..938d3865 100644 --- a/backend/dist/modules/user/core/interfaces/UserParams.d.ts +++ b/backend/dist/modules/user/core/interfaces/UserParams.d.ts @@ -1,6 +1,6 @@ export default interface UserParams { id: string; - accounts?: string[]; - primaryAccount?: string | null; + primaryAccount: string; + accounts: string[]; } //# sourceMappingURL=UserParams.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/interfaces/UserParams.d.ts.map b/backend/dist/modules/user/core/interfaces/UserParams.d.ts.map index 09921e4e..5021519a 100644 --- a/backend/dist/modules/user/core/interfaces/UserParams.d.ts.map +++ b/backend/dist/modules/user/core/interfaces/UserParams.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"UserParams.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/interfaces/UserParams.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,UAAU;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC"} \ No newline at end of file +{"version":3,"file":"UserParams.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/interfaces/UserParams.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,UAAU;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/model/User.d.ts b/backend/dist/modules/user/core/model/User.d.ts index 45ec97e1..bd1ea97b 100644 --- a/backend/dist/modules/user/core/model/User.d.ts +++ b/backend/dist/modules/user/core/model/User.d.ts @@ -7,10 +7,10 @@ export default class User extends Entity { private constructor(); static fromPrimitives(params: UserParams): User; addAccount(account: IdEntity): void; - changePrimaryAccount(key: string, actor: IdEntity, newPrimary: IdEntity): void; + changePrimaryAccount(newPrimary: IdEntity): void; removeAccount(account: IdEntity): void; getAccounts(): IdEntity[]; - getPrimaryAccount(): IdEntity | null; + getPrimaryAccount(): IdEntity; toPrimitives(): UserParams; } //# sourceMappingURL=User.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/user/core/model/User.d.ts.map b/backend/dist/modules/user/core/model/User.d.ts.map index 025480f9..4cb67fb8 100644 --- a/backend/dist/modules/user/core/model/User.d.ts.map +++ b/backend/dist/modules/user/core/model/User.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/model/User.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,MAAM,MAAM,mCAAmC,CAAC;AAKvD,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAC;AAGvD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,MAAM;IACtC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,cAAc,CAAyB;IAE/C,OAAO;WAMO,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAO/C,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAOnC,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,GAAG,IAAI;IAa9E,aAAa,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAUtC,WAAW,IAAI,QAAQ,EAAE;IAIzB,iBAAiB,IAAI,QAAQ,GAAG,IAAI;IAIpC,YAAY,IAAI,UAAU;CAOlC"} \ No newline at end of file +{"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../../../../src/modules/user/core/model/User.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,MAAM,MAAM,mCAAmC,CAAC;AAKvD,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAC;AAIvD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,MAAM;IACtC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,cAAc,CAAY;IAElC,OAAO;WAMO,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAO/C,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAMnC,oBAAoB,CAAC,UAAU,EAAE,QAAQ,GAAG,IAAI;IAahD,aAAa,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAUtC,WAAW,IAAI,QAAQ,EAAE;IAIzB,iBAAiB,IAAI,QAAQ;IAI7B,YAAY,IAAI,UAAU;CAOlC"} \ No newline at end of file diff --git a/backend/dist/modules/user/core/model/User.js b/backend/dist/modules/user/core/model/User.js index 261a47f5..cc4cd06a 100644 --- a/backend/dist/modules/user/core/model/User.js +++ b/backend/dist/modules/user/core/model/User.js @@ -5,18 +5,18 @@ import AccountChanged from '../events/AccountChanged'; import DuplicateAccount from '../errors/DuplicateAccount'; import AccountDoesntExist from '../errors/AccountDoesntExist'; import InvalidOperation from '../../../shared/core/errors/InvalidOperation'; +import ID from '../../../shared/core/objects/ID'; export default class User extends Entity { - constructor(id, accounts = [], primary = null) { + constructor(id, accounts, primary) { super(id); this.accounts = []; - this.primaryAccount = null; this.accounts = accounts; this.primaryAccount = primary; } static fromPrimitives(params) { const id = new IdEntity(params.id); const accounts = (params.accounts || []).map((a) => new IdEntity(a)); - const primary = params.primaryAccount ? new IdEntity(params.primaryAccount) : null; + const primary = new IdEntity(params.primaryAccount); return new User(id, accounts, primary); } addAccount(account) { @@ -24,17 +24,15 @@ export default class User extends Entity { if (exists) throw new DuplicateAccount(account.getID()); this.accounts.push(account); - if (!this.primaryAccount) - this.primaryAccount = account; } - changePrimaryAccount(key, actor, newPrimary) { - const previous = this.primaryAccount ? this.primaryAccount.getID() : null; + changePrimaryAccount(newPrimary) { + const previous = this.primaryAccount.getID(); const found = this.accounts.find((a) => a.getID() === newPrimary.getID()); if (!found) { throw new AccountDoesntExist(newPrimary.getID()); } this.primaryAccount = newPrimary; - this.addEvent(new AccountChanged(key, DateTime.now(), actor, super.getID(), newPrimary, { previousPrimary: previous })); + this.addEvent(new AccountChanged(ID.generateId().getId(), DateTime.now(), this.getID(), super.getID(), newPrimary, { previousPrimary: previous })); } removeAccount(account) { const found = this.accounts.find((a) => a.getID() === account.getID()); @@ -43,7 +41,8 @@ export default class User extends Entity { if (this.accounts.length <= 1) throw new InvalidOperation('The user at least must have one account'); this.accounts = this.accounts.filter((a) => a.getID() !== account.getID()); - this.primaryAccount = this.accounts[0] ?? null; + if (account.getID() === this.primaryAccount.getID()) + this.primaryAccount = this.accounts[0]; } getAccounts() { return this.accounts; @@ -54,8 +53,8 @@ export default class User extends Entity { toPrimitives() { return { id: super.getID().getID(), + primaryAccount: this.primaryAccount.getID(), accounts: this.accounts.map((a) => a.getID()), - primaryAccount: this.primaryAccount ? this.primaryAccount.getID() : null, }; } } diff --git a/backend/dist/modules/user/core/model/User.js.map b/backend/dist/modules/user/core/model/User.js.map index e99a01c7..8c054113 100644 --- a/backend/dist/modules/user/core/model/User.js.map +++ b/backend/dist/modules/user/core/model/User.js.map @@ -1 +1 @@ -{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/model/User.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,cAAc,MAAM,0BAA0B,CAAC;AACtD,OAAO,gBAAgB,MAAM,4BAA4B,CAAC;AAC1D,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAE9D,OAAO,gBAAgB,MAAM,8CAA8C,CAAC;AAE5E,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,MAAM;IAItC,YAAoB,EAAY,EAAE,WAAuB,EAAE,EAAE,UAA2B,IAAI;QAC1F,KAAK,CAAC,EAAE,CAAC,CAAC;QAJJ,aAAQ,GAAe,EAAE,CAAC;QAC1B,mBAAc,GAAoB,IAAI,CAAC;QAI7C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,MAAkB;QAC7C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnF,OAAO,IAAI,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAEM,UAAU,CAAC,OAAiB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACxE,IAAI,MAAM;YAAE,MAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAC1D,CAAC;IAEM,oBAAoB,CAAC,GAAW,EAAE,KAAe,EAAE,UAAoB;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,kBAAkB,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;QACjC,IAAI,CAAC,QAAQ,CACX,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CACzG,CAAC;IACJ,CAAC;IAEM,aAAa,CAAC,OAAiB;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAE1D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC;YAAE,MAAM,IAAI,gBAAgB,CAAC,yCAAyC,CAAC,CAAC;QACrG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAE3E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACjD,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEM,YAAY;QACjB,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAC7C,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI;SACzE,CAAC;IACJ,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../../../src/modules/user/core/model/User.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts b/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts index 22dde0a0..e18b7eff 100644 --- a/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts +++ b/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts @@ -1,13 +1,13 @@ +import type { AllowedLanguage } from '../types/Language'; import type { AllowedChannelType, AllowedNotificationType, AllowedProjectType } from '../types/NotificationSettings'; import type { AllowedTheme } from '../types/Theme'; -import type { AllowedLanguage } from '../types/Language'; export default interface UserSettingsParams { id: string; userId: string; language: AllowedLanguage; theme: AllowedTheme; timezone: string; - notificationSettings: { + notificationSettings?: { type: AllowedNotificationType; projectType: AllowedProjectType; channel: AllowedChannelType; diff --git a/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts.map b/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts.map index a4da2c8a..fb69df48 100644 --- a/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts.map +++ b/backend/dist/modules/userSettings/core/interfaces/UserSettingsParams.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"UserSettingsParams.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/interfaces/UserSettingsParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACrH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,CAAC,OAAO,WAAW,kBAAkB;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE;QACpB,IAAI,EAAE,uBAAuB,CAAC;QAC9B,WAAW,EAAE,kBAAkB,CAAC;QAChC,OAAO,EAAE,kBAAkB,CAAC;QAC5B,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;CACH"} \ No newline at end of file +{"version":3,"file":"UserSettingsParams.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/interfaces/UserSettingsParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACrH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,CAAC,OAAO,WAAW,kBAAkB;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE;QACrB,IAAI,EAAE,uBAAuB,CAAC;QAC9B,WAAW,EAAE,kBAAkB,CAAC;QAChC,OAAO,EAAE,kBAAkB,CAAC;QAC5B,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;CACH"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/model/UserSettings.d.ts b/backend/dist/modules/userSettings/core/model/UserSettings.d.ts index 5049531e..d9990001 100644 --- a/backend/dist/modules/userSettings/core/model/UserSettings.d.ts +++ b/backend/dist/modules/userSettings/core/model/UserSettings.d.ts @@ -1,21 +1,17 @@ import Entity from '../../../shared/core/model/Entity'; import IdEntity from '../../../shared/core/objects/IdEntity'; import Language from '../objects/Language'; +import type UserSettingsParams from '../interfaces/UserSettingsParams'; import Theme from '../objects/Theme'; import Timezone from '../objects/Timezone'; import NotificationSettings from '../objects/NotificationSettings'; -import type UserSettingsParams from '../interfaces/UserSettingsParams'; -export type UserSettingsKey = 'language' | 'theme' | 'timezone' | 'notificationSettings'; -export type UserSettingsUpdateValue = K extends 'language' ? Language : K extends 'theme' ? Theme : K extends 'timezone' ? Timezone : K extends 'notificationSettings' ? NotificationSettings : never; export default class UserSettings extends Entity { private readonly userId; private language; private theme; private timezone; private notificationSettings; - private constructor(); - static create(params: UserSettingsParams): UserSettings; - static fromPrimitives(params: UserSettingsParams): UserSettings; + constructor(params: UserSettingsParams); getUserId(): IdEntity; getLanguage(): Language; getTheme(): Theme; @@ -25,7 +21,6 @@ export default class UserSettings extends Entity { updateTheme(theme: Theme): void; updateTimezone(timezone: Timezone): void; updateNotificationSettings(notificationSettings: NotificationSettings): void; - updateSetting(key: K, value: UserSettingsUpdateValue): void; toPrimitives(): { id: string; userId: string; diff --git a/backend/dist/modules/userSettings/core/model/UserSettings.d.ts.map b/backend/dist/modules/userSettings/core/model/UserSettings.d.ts.map index 605440c1..433f5c7d 100644 --- a/backend/dist/modules/userSettings/core/model/UserSettings.d.ts.map +++ b/backend/dist/modules/userSettings/core/model/UserSettings.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"UserSettings.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/model/UserSettings.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,MAAM,kBAAkB,CAAC;AACrC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,oBAAoB,MAAM,iCAAiC,CAAC;AAGnE,OAAO,KAAK,kBAAkB,MAAM,kCAAkC,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,sBAAsB,CAAC;AAEzF,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,eAAe,IAC3D,CAAC,SAAS,UAAU,GAAG,QAAQ,GAC/B,CAAC,SAAS,OAAO,GAAG,KAAK,GACzB,CAAC,SAAS,UAAU,GAAG,QAAQ,GAC/B,CAAC,SAAS,sBAAsB,GAAG,oBAAoB,GACvD,KAAK,CAAC;AAER,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,MAAM;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,oBAAoB,CAAuB;IAEnD,OAAO;WAgBO,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY;WAgBhD,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY;IAI/D,SAAS,IAAI,QAAQ;IAIrB,WAAW,IAAI,QAAQ;IAIvB,QAAQ,IAAI,KAAK;IAIjB,WAAW,IAAI,QAAQ;IAIvB,uBAAuB,IAAI,oBAAoB;IAI/C,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKxC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAK/B,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKxC,0BAA0B,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,IAAI;IAK5E,aAAa,CAAC,CAAC,SAAS,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,IAAI;IAuBzF,YAAY;;;;;;;;;;;;;CAUpB"} \ No newline at end of file +{"version":3,"file":"UserSettings.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/model/UserSettings.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,kBAAkB,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,MAAM,kBAAkB,CAAC;AACrC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,oBAAoB,MAAM,iCAAiC,CAAC;AAEnE,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,MAAM;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,oBAAoB,CAAuB;gBAEhC,MAAM,EAAE,kBAAkB;IActC,SAAS,IAAI,QAAQ;IAIrB,WAAW,IAAI,QAAQ;IAIvB,QAAQ,IAAI,KAAK;IAIjB,WAAW,IAAI,QAAQ;IAIvB,uBAAuB,IAAI,oBAAoB;IAI/C,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIxC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAI/B,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIxC,0BAA0B,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,IAAI;IAI5E,YAAY;;;;;;;;;;;;;CAUpB"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/model/UserSettings.js b/backend/dist/modules/userSettings/core/model/UserSettings.js index 02abd45f..98a707e4 100644 --- a/backend/dist/modules/userSettings/core/model/UserSettings.js +++ b/backend/dist/modules/userSettings/core/model/UserSettings.js @@ -4,22 +4,14 @@ import Language from '../objects/Language'; import Theme from '../objects/Theme'; import Timezone from '../objects/Timezone'; import NotificationSettings from '../objects/NotificationSettings'; -import InvalidUserSettingsKey from '../errors/InvalidUserSettingsKey'; -import InvalidUserSettingsValue from '../errors/InvalidUserSettingsValue'; export default class UserSettings extends Entity { - constructor(id, userId, language, theme, timezone, notificationSettings) { - super(id); - this.userId = userId; - this.language = language; - this.theme = theme; - this.timezone = timezone; - this.notificationSettings = notificationSettings; - } - static create(params) { - return new UserSettings(new IdEntity(params.id), new IdEntity(params.userId), Language.create(params.language), Theme.create(params.theme), new Timezone(params.timezone), NotificationSettings.create(params.notificationSettings.type, params.notificationSettings.projectType, params.notificationSettings.channel, params.notificationSettings.active)); - } - static fromPrimitives(params) { - return UserSettings.create(params); + constructor(params) { + super(new IdEntity(params.id)); + this.userId = new IdEntity(params.userId); + this.language = new Language(params.language); + this.theme = new Theme(params.theme); + this.timezone = new Timezone(params.timezone); + this.notificationSettings = NotificationSettings.create(params.notificationSettings.type, params.notificationSettings.projectType, params.notificationSettings.channel, params.notificationSettings.active); } getUserId() { return this.userId; @@ -37,58 +29,24 @@ export default class UserSettings extends Entity { return this.notificationSettings; } updateLanguage(language) { - if (!(language instanceof Language)) - throw new InvalidUserSettingsValue('language'); this.language = language; } updateTheme(theme) { - if (!(theme instanceof Theme)) - throw new InvalidUserSettingsValue('theme'); this.theme = theme; } updateTimezone(timezone) { - if (!(timezone instanceof Timezone)) - throw new InvalidUserSettingsValue('timezone'); this.timezone = timezone; } updateNotificationSettings(notificationSettings) { - if (!(notificationSettings instanceof NotificationSettings)) - throw new InvalidUserSettingsValue('notificationSettings'); this.notificationSettings = notificationSettings; } - updateSetting(key, value) { - switch (key) { - case 'language': - if (!(value instanceof Language)) - throw new InvalidUserSettingsValue('language'); - this.updateLanguage(value); - return; - case 'theme': - if (!(value instanceof Theme)) - throw new InvalidUserSettingsValue('theme'); - this.updateTheme(value); - return; - case 'timezone': - if (!(value instanceof Timezone)) - throw new InvalidUserSettingsValue('timezone'); - this.updateTimezone(value); - return; - case 'notificationSettings': - if (!(value instanceof NotificationSettings)) - throw new InvalidUserSettingsValue('notificationSettings'); - this.updateNotificationSettings(value); - return; - default: - throw new InvalidUserSettingsKey(String(key)); - } - } toPrimitives() { return { id: this.getID().getID(), userId: this.userId.getID(), - language: this.language.toPrimitives(), - theme: this.theme.toPrimitives(), - timezone: this.timezone.toPrimitives(), + language: this.language.getLanguage(), + theme: this.theme.getTheme(), + timezone: this.timezone.getTimezone(), notificationSettings: this.notificationSettings.toPrimitives(), }; } diff --git a/backend/dist/modules/userSettings/core/model/UserSettings.js.map b/backend/dist/modules/userSettings/core/model/UserSettings.js.map index 2731bc11..8a4da019 100644 --- a/backend/dist/modules/userSettings/core/model/UserSettings.js.map +++ b/backend/dist/modules/userSettings/core/model/UserSettings.js.map @@ -1 +1 @@ -{"version":3,"file":"UserSettings.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/model/UserSettings.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"UserSettings.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/model/UserSettings.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAE3C,OAAO,KAAK,MAAM,kBAAkB,CAAC;AACrC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,oBAAoB,MAAM,iCAAiC,CAAC;AAEnE,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,MAAM;IAO9C,YAAmB,MAA0B;QAC3C,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC,MAAM,CACrD,MAAM,CAAC,oBAAqB,CAAC,IAAI,EACjC,MAAM,CAAC,oBAAqB,CAAC,WAAW,EACxC,MAAM,CAAC,oBAAqB,CAAC,OAAO,EACpC,MAAM,CAAC,oBAAqB,CAAC,MAAM,CACpC,CAAC;IACJ,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,uBAAuB;QAC5B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAEM,cAAc,CAAC,QAAkB;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,WAAW,CAAC,KAAY;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,cAAc,CAAC,QAAkB;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,0BAA0B,CAAC,oBAA0C;QAC1E,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACnD,CAAC;IAEM,YAAY;QACjB,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE;YACxB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YACrC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YACrC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE;SAC/D,CAAC;IACJ,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Language.d.ts b/backend/dist/modules/userSettings/core/objects/Language.d.ts index 7bc80a01..25519480 100644 --- a/backend/dist/modules/userSettings/core/objects/Language.d.ts +++ b/backend/dist/modules/userSettings/core/objects/Language.d.ts @@ -2,11 +2,7 @@ import ValueObject from '../../../shared/core/objects/ValueObject'; import { AllowedLanguage } from '../types/Language'; export default class Language extends ValueObject { private language; - private constructor(); - static create(language: AllowedLanguage): Language; - static es(): Language; - static en(): Language; + constructor(language: AllowedLanguage); getLanguage(): AllowedLanguage; - toPrimitives(): AllowedLanguage; } //# sourceMappingURL=Language.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Language.d.ts.map b/backend/dist/modules/userSettings/core/objects/Language.d.ts.map index e52cc787..0f458efc 100644 --- a/backend/dist/modules/userSettings/core/objects/Language.d.ts.map +++ b/backend/dist/modules/userSettings/core/objects/Language.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Language.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Language.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAEnE,OAAO,EAAqB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,OAAO,CAAC,QAAQ,CAAmB;IAEnC,OAAO;WAMO,MAAM,CAAC,QAAQ,EAAE,eAAe,GAAG,QAAQ;WAI3C,EAAE,IAAI,QAAQ;WAId,EAAE,IAAI,QAAQ;IAIrB,WAAW,IAAI,eAAe;IAI9B,YAAY,IAAI,eAAe;CAGvC"} \ No newline at end of file +{"version":3,"file":"Language.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Language.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAEnE,OAAO,EAAqB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,OAAO,CAAC,QAAQ,CAAmB;gBAEhB,QAAQ,EAAE,eAAe;IAMrC,WAAW,IAAI,eAAe;CAGtC"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Language.js b/backend/dist/modules/userSettings/core/objects/Language.js index f4036009..f4aa244b 100644 --- a/backend/dist/modules/userSettings/core/objects/Language.js +++ b/backend/dist/modules/userSettings/core/objects/Language.js @@ -8,20 +8,8 @@ export default class Language extends ValueObject { throw new UnsupportedLanguage(language); this.language = language; } - static create(language) { - return new Language(language); - } - static es() { - return new Language(AllowedLanguage.es); - } - static en() { - return new Language(AllowedLanguage.en); - } getLanguage() { return this.language; } - toPrimitives() { - return this.language; - } } //# sourceMappingURL=Language.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Language.js.map b/backend/dist/modules/userSettings/core/objects/Language.js.map index c8bb2a56..3daa9b2a 100644 --- a/backend/dist/modules/userSettings/core/objects/Language.js.map +++ b/backend/dist/modules/userSettings/core/objects/Language.js.map @@ -1 +1 @@ -{"version":3,"file":"Language.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Language.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAG/C,YAAoB,QAAyB;QAC3C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACnF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,QAAyB;QAC5C,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,EAAE;QACd,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,EAAE;QACd,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"Language.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Language.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAG/C,YAAmB,QAAyB;QAC1C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACnF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts b/backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts index 0ca84f8a..e38d5a85 100644 --- a/backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts +++ b/backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts @@ -1,11 +1,11 @@ import ValueObject from '../../../shared/core/objects/ValueObject'; -import { AllowedChannelType, AllowedNotificationType, AllowedProjectType } from '../types/NotificationSettings'; +import { type AllowedChannelType, type AllowedNotificationType, type AllowedProjectType } from '../types/NotificationSettings'; export default class NotificationSettings extends ValueObject { private readonly type; private readonly projectType; private readonly channel; private readonly active; - constructor(type: AllowedNotificationType, projectType: AllowedProjectType, channel: AllowedChannelType, active: boolean); + private constructor(); static create(type: AllowedNotificationType, projectType: AllowedProjectType, channel: AllowedChannelType, active: boolean): NotificationSettings; isActive(): boolean; toPrimitives(): { diff --git a/backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts.map b/backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts.map index cbf92c4d..53d3a1ac 100644 --- a/backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts.map +++ b/backend/dist/modules/userSettings/core/objects/NotificationSettings.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"NotificationSettings.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/NotificationSettings.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,EAIL,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,WAAW;IAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAG/B,IAAI,EAAE,uBAAuB,EAC7B,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,OAAO;WAYH,MAAM,CAClB,IAAI,EAAE,uBAAuB,EAC7B,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,OAAO,GACd,oBAAoB;IAIhB,QAAQ,IAAI,OAAO;IAInB,YAAY;;;;;;CAQpB"} \ No newline at end of file +{"version":3,"file":"NotificationSettings.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/NotificationSettings.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,EAA4E,KAAK,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEzM,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,WAAW;IAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC,OAAO;WAgBO,MAAM,CAClB,IAAI,EAAE,uBAAuB,EAC7B,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,OAAO,GACd,oBAAoB;IAIhB,QAAQ,IAAI,OAAO;IAInB,YAAY;;;;;;CAQpB"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/NotificationSettings.js b/backend/dist/modules/userSettings/core/objects/NotificationSettings.js index b3a6cd71..106ba220 100644 --- a/backend/dist/modules/userSettings/core/objects/NotificationSettings.js +++ b/backend/dist/modules/userSettings/core/objects/NotificationSettings.js @@ -1,6 +1,6 @@ import InvalidParameters from '../../../shared/core/errors/InvalidParameters'; import ValueObject from '../../../shared/core/objects/ValueObject'; -import { ALLOWED_CHANNEL_TYPES, ALLOWED_NOTIFICATION_TYPES, ALLOWED_PROJECT_TYPES, AllowedChannelType, AllowedNotificationType, AllowedProjectType, } from '../types/NotificationSettings'; +import { ALLOWED_CHANNEL_TYPES, ALLOWED_NOTIFICATION_TYPES, ALLOWED_PROJECT_TYPES } from '../types/NotificationSettings'; export default class NotificationSettings extends ValueObject { constructor(type, projectType, channel, active) { super(); diff --git a/backend/dist/modules/userSettings/core/objects/NotificationSettings.js.map b/backend/dist/modules/userSettings/core/objects/NotificationSettings.js.map index 310f0f17..c3f39019 100644 --- a/backend/dist/modules/userSettings/core/objects/NotificationSettings.js.map +++ b/backend/dist/modules/userSettings/core/objects/NotificationSettings.js.map @@ -1 +1 @@ -{"version":3,"file":"NotificationSettings.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/NotificationSettings.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAC9E,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,WAAW;IAM3D,YACE,IAA6B,EAC7B,WAA+B,EAC/B,OAA2B,EAC3B,MAAe;QAEf,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;QACzG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAC7F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,MAAM,CAClB,IAA6B,EAC7B,WAA+B,EAC/B,OAA2B,EAC3B,MAAe;QAEf,OAAO,IAAI,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,YAAY;QACjB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"NotificationSettings.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/NotificationSettings.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAC9E,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,qBAAqB,EAAkF,MAAM,+BAA+B,CAAC;AAEzM,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,WAAW;IAM3D,YACE,IAA6B,EAC7B,WAA+B,EAC/B,OAA2B,EAC3B,MAAe;QAEf,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;QACzG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAC7F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,MAAM,CAClB,IAA6B,EAC7B,WAA+B,EAC/B,OAA2B,EAC3B,MAAe;QAEf,OAAO,IAAI,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,YAAY;QACjB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Theme.d.ts b/backend/dist/modules/userSettings/core/objects/Theme.d.ts index 1aba962e..25938525 100644 --- a/backend/dist/modules/userSettings/core/objects/Theme.d.ts +++ b/backend/dist/modules/userSettings/core/objects/Theme.d.ts @@ -2,11 +2,7 @@ import ValueObject from '../../../shared/core/objects/ValueObject'; import { AllowedTheme } from '../types/Theme'; export default class Theme extends ValueObject { private theme; - private constructor(); - static create(theme: AllowedTheme): Theme; - static dark(): Theme; - static light(): Theme; + constructor(theme: AllowedTheme); getTheme(): AllowedTheme; - toPrimitives(): AllowedTheme; } //# sourceMappingURL=Theme.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Theme.d.ts.map b/backend/dist/modules/userSettings/core/objects/Theme.d.ts.map index 28f4f280..9725a8c5 100644 --- a/backend/dist/modules/userSettings/core/objects/Theme.d.ts.map +++ b/backend/dist/modules/userSettings/core/objects/Theme.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Theme.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAEnE,OAAO,EAAkB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO;WAMO,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK;WAIlC,IAAI,IAAI,KAAK;WAIb,KAAK,IAAI,KAAK;IAIrB,QAAQ,IAAI,YAAY;IAIxB,YAAY,IAAI,YAAY;CAGpC"} \ No newline at end of file +{"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Theme.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAEnE,OAAO,EAAkB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,OAAO,CAAC,KAAK,CAAgB;gBAEV,KAAK,EAAE,YAAY;IAM/B,QAAQ,IAAI,YAAY;CAGhC"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Theme.js b/backend/dist/modules/userSettings/core/objects/Theme.js index b9332bd0..da6c3701 100644 --- a/backend/dist/modules/userSettings/core/objects/Theme.js +++ b/backend/dist/modules/userSettings/core/objects/Theme.js @@ -8,20 +8,8 @@ export default class Theme extends ValueObject { throw new UnsupportedTheme(theme); this.theme = theme; } - static create(theme) { - return new Theme(theme); - } - static dark() { - return new Theme(AllowedTheme.dark); - } - static light() { - return new Theme(AllowedTheme.light); - } getTheme() { return this.theme; } - toPrimitives() { - return this.theme; - } } //# sourceMappingURL=Theme.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Theme.js.map b/backend/dist/modules/userSettings/core/objects/Theme.js.map index 556f88e2..6be84c9e 100644 --- a/backend/dist/modules/userSettings/core/objects/Theme.js.map +++ b/backend/dist/modules/userSettings/core/objects/Theme.js.map @@ -1 +1 @@ -{"version":3,"file":"Theme.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Theme.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,gBAAgB,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAG5C,YAAoB,KAAmB;QACrC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,KAAmB;QACtC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAEM,MAAM,CAAC,IAAI;QAChB,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,KAAK;QACjB,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"Theme.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Theme.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,gBAAgB,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAG5C,YAAmB,KAAmB;QACpC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Timezone.d.ts b/backend/dist/modules/userSettings/core/objects/Timezone.d.ts index 197e7f0b..cdd9dc29 100644 --- a/backend/dist/modules/userSettings/core/objects/Timezone.d.ts +++ b/backend/dist/modules/userSettings/core/objects/Timezone.d.ts @@ -4,6 +4,5 @@ export default class Timezone extends ValueObject { private readonly testTimeZone; constructor(tz: string); getTimezone(): string; - toPrimitives(): string; } //# sourceMappingURL=Timezone.d.ts.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Timezone.d.ts.map b/backend/dist/modules/userSettings/core/objects/Timezone.d.ts.map index f19ddf89..c4ad59aa 100644 --- a/backend/dist/modules/userSettings/core/objects/Timezone.d.ts.map +++ b/backend/dist/modules/userSettings/core/objects/Timezone.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Timezone.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Timezone.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAGnE,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,OAAO,CAAC,EAAE,CAAU;IACpB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8C;gBAE/D,EAAE,EAAE,MAAM;IAMf,WAAW,IAAI,MAAM;IAIrB,YAAY,IAAI,MAAM;CAG9B"} \ No newline at end of file +{"version":3,"file":"Timezone.d.ts","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Timezone.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAGnE,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,OAAO,CAAC,EAAE,CAAU;IACpB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8C;gBAExD,EAAE,EAAE,MAAM;IAMtB,WAAW,IAAI,MAAM;CAG7B"} \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Timezone.js b/backend/dist/modules/userSettings/core/objects/Timezone.js index b57ab9ab..2af6e613 100644 --- a/backend/dist/modules/userSettings/core/objects/Timezone.js +++ b/backend/dist/modules/userSettings/core/objects/Timezone.js @@ -11,8 +11,5 @@ export default class Timezone extends ValueObject { getTimezone() { return this.tz; } - toPrimitives() { - return this.tz; - } } //# sourceMappingURL=Timezone.js.map \ No newline at end of file diff --git a/backend/dist/modules/userSettings/core/objects/Timezone.js.map b/backend/dist/modules/userSettings/core/objects/Timezone.js.map index b9d29bf1..b66bb1d6 100644 --- a/backend/dist/modules/userSettings/core/objects/Timezone.js.map +++ b/backend/dist/modules/userSettings/core/objects/Timezone.js.map @@ -1 +1 @@ -{"version":3,"file":"Timezone.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Timezone.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAExD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAI/C,YAAY,EAAU;QACpB,KAAK,EAAE,CAAC;QAHO,iBAAY,GAAG,0CAA0C,CAAC;QAIzE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"Timezone.js","sourceRoot":"","sources":["../../../../../src/modules/userSettings/core/objects/Timezone.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAExD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAI/C,YAAmB,EAAU;QAC3B,KAAK,EAAE,CAAC;QAHO,iBAAY,GAAG,0CAA0C,CAAC;QAIzE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;CACF"} \ No newline at end of file diff --git a/backend/eslint.config.mts b/backend/eslint.config.mts index e9334129..c04d2867 100644 --- a/backend/eslint.config.mts +++ b/backend/eslint.config.mts @@ -14,8 +14,11 @@ export default defineConfig([ ignores: [ "**/dist/**", "**/node_modules/**", + "**/tests/**", "jest.config.js", "prettier.config.js", + "eslint.config.mts", + "vitest.config.ts" ], }, diff --git a/backend/src/modules/account/core/errors/InvalidAccount.ts b/backend/src/modules/account/core/errors/InvalidAccount.ts deleted file mode 100644 index 1a25d329..00000000 --- a/backend/src/modules/account/core/errors/InvalidAccount.ts +++ /dev/null @@ -1,8 +0,0 @@ -import CoreError from '../../../shared/core/errors/CoreError'; - -export default class InvalidAccount extends CoreError { - constructor(info?: unknown) { - super('Invalid account', info); - Object.setPrototypeOf(this, InvalidAccount.prototype); - } -} diff --git a/backend/src/modules/account/core/model/Account.ts b/backend/src/modules/account/core/model/Account.ts index bd7baaf9..e4ae05a4 100644 --- a/backend/src/modules/account/core/model/Account.ts +++ b/backend/src/modules/account/core/model/Account.ts @@ -65,9 +65,9 @@ export default class Account extends Entity { new Email(params.email), params.isPrimary, new AccountName(params.name), - provider as any, - profileImage as any, - owner as any, + provider, + profileImage, + owner, createdAt, ); } diff --git a/backend/src/modules/invitation/core/model/Invitation.ts b/backend/src/modules/invitation/core/model/Invitation.ts index b2cc6878..36862549 100644 --- a/backend/src/modules/invitation/core/model/Invitation.ts +++ b/backend/src/modules/invitation/core/model/Invitation.ts @@ -33,7 +33,7 @@ export default class Invitation extends Entity { this.addEvent(new InvitationCanceled(key, DateTime.now(), this.host, this.host, super.getID())); } - public accept(key: string): void { + public accept(): void { this.status = InvitationStatus.accepted(); } diff --git a/backend/src/modules/project/core/model/Project.ts b/backend/src/modules/project/core/model/Project.ts index 6c58c638..c406a85e 100644 --- a/backend/src/modules/project/core/model/Project.ts +++ b/backend/src/modules/project/core/model/Project.ts @@ -241,7 +241,7 @@ export default class Project extends Entity { throw new ResourceNotFound(`The list with id: ${listId.getID()} does not exists in project with id: ${this.getID()}`, {listId: listId.getID(), projectId: this.getID()}); } - let ProjectlistToReorganize = this.lists.slice(list.position.getValue() -1); + const ProjectlistToReorganize = this.lists.slice(list.position.getValue() -1); ProjectlistToReorganize.forEach(l => l.position = new PositiveInteger(l.position.getValue() - 1)); this.lists = this.lists.filter(l => l.idList.getID() !== list.idList.getID()); diff --git a/backend/src/modules/taskAttachment/core/model/TaskAttachment.ts b/backend/src/modules/taskAttachment/core/model/TaskAttachment.ts index 0c80ca1d..909ac27b 100644 --- a/backend/src/modules/taskAttachment/core/model/TaskAttachment.ts +++ b/backend/src/modules/taskAttachment/core/model/TaskAttachment.ts @@ -1,7 +1,6 @@ import Entity from '../../../shared/core/model/Entity'; import DateTime from '../../../shared/core/objects/DateTime'; import IdEntity from '../../../shared/core/objects/IdEntity'; -import DeletedAt from '../../../shared/core/objects/DeletedAt'; import Attachment from '../../../shared/core/objects/Attachment'; import Url from '../../../shared/core/objects/URL'; import Text from '../../../shared/core/objects/Text'; diff --git a/backend/tests/modules/account/core/model/Account.test.ts b/backend/tests/modules/account/core/model/Account.test.ts index 1969fba5..c90a685f 100644 --- a/backend/tests/modules/account/core/model/Account.test.ts +++ b/backend/tests/modules/account/core/model/Account.test.ts @@ -4,32 +4,88 @@ import IdEntity from '../../../../../src/modules/shared/core/objects/IdEntity'; import ID from '../../../../../src/modules/shared/core/objects/ID'; import Email from '../../../../../src/modules/shared/core/objects/Email'; import AccountName from '../../../../../src/modules/account/core/objects/AccountName'; +import Url from '../../../../../src/modules/shared/core/objects/URL'; +import None from '../../../../../src/modules/shared/core/objects/None'; +import InvalidParameters from '../../../../../src/modules/shared/core/errors/InvalidParameters'; import { describe, it, expect } from 'vitest'; describe('Account model', () => { - it('create emits AccountCreated event', () => { + it('create builds account with current signature', () => { const id = new IdAccount(ID.generateId().getId()); - const actor = new IdEntity(ID.generateId().getId()); - const acc = Account.create('k1', id, actor, { email: new Email('test@example.com'), name: new AccountName('Test') }); - const events = acc.pullEvents(); - expect(events.length).toBeGreaterThan(0); - expect(events[0].getEvent()).toBe('ACCOUNT_CREATED'); + const owner = new IdEntity(ID.generateId().getId()); + const email = new Email('test@example.com'); + const name = new AccountName('Test'); + const profileImage = new Url('https://example.com/photo.png'); + + const account = Account.create(id, email, name, 'google', profileImage, owner, true); + const primitives = account.toPrimitives(); + + expect(primitives.id).toBe(id.getID()); + expect(primitives.userId).toBe(owner.getID()); + expect(primitives.email).toBe('test@example.com'); + expect(primitives.name).toBe('Test'); + expect(primitives.provider).toBe('google'); + expect(primitives.profileImage).toBe('https://example.com/photo.png'); + expect(primitives.isPrimary).toBe(true); + expect(primitives.createdAt).toBeInstanceOf(Date); }); - it('fromPrimitives and toPrimitives roundtrip', () => { + it('fromPrimitives and toPrimitives roundtrip with null profile image', () => { const primitives = { id: ID.generateId().getId(), email: 'test2@example.com', name: 'Test 2', provider: 'local', profileImage: null, - userId: null, + userId: ID.generateId().getId(), createdAt: new Date(), isPrimary: false, }; - const account = Account.fromPrimitives(primitives as any); + + const account = Account.fromPrimitives(primitives); const round = account.toPrimitives(); + + expect(account.getProfileImage()).toBeInstanceOf(None); + expect(account.getEmail().getEmail()).toBe(primitives.email); + expect(account.getName().getName()).toBe(primitives.name); + expect(round.id).toBe(primitives.id); expect(round.email).toBe(primitives.email); expect(round.name).toBe(primitives.name); + expect(round.provider).toBe(primitives.provider); + expect(round.profileImage).toBeNull(); + expect(round.userId).toBe(primitives.userId); + expect(round.isPrimary).toBe(false); + expect(round.createdAt).toBeInstanceOf(Date); + }); + + it('fromPrimitives throws when provider is missing', () => { + const primitives = { + id: ID.generateId().getId(), + email: 'test3@example.com', + name: 'Test 3', + provider: '', + profileImage: null, + userId: ID.generateId().getId(), + createdAt: new Date(), + isPrimary: false, + }; + + expect(() => Account.fromPrimitives(primitives)).toThrow(InvalidParameters); + expect(() => Account.fromPrimitives(primitives)).toThrow('The provider is required'); + }); + + it('fromPrimitives throws when createdAt is missing', () => { + const primitives = { + id: ID.generateId().getId(), + email: 'test4@example.com', + name: 'Test 4', + provider: 'local', + profileImage: null, + userId: ID.generateId().getId(), + isPrimary: true, + }; + + expect(() => Account.fromPrimitives(primitives as any)).toThrow(InvalidParameters); + expect(() => Account.fromPrimitives(primitives as any)).toThrow('The account must include a creation date'); }); }); diff --git a/backend/tests/modules/userSettings/core/model/UserSettings.test.ts b/backend/tests/modules/userSettings/core/model/UserSettings.test.ts index e30c23c5..bbae2571 100644 --- a/backend/tests/modules/userSettings/core/model/UserSettings.test.ts +++ b/backend/tests/modules/userSettings/core/model/UserSettings.test.ts @@ -4,29 +4,30 @@ import Language from '../../../../../src/modules/userSettings/core/objects/Langu import Theme from '../../../../../src/modules/userSettings/core/objects/Theme'; import Timezone from '../../../../../src/modules/userSettings/core/objects/Timezone'; import NotificationSettings from '../../../../../src/modules/userSettings/core/objects/NotificationSettings'; -import { AllowedChannelType, AllowedNotificationType, AllowedProjectType } from '../../../../../src/modules/userSettings/core/types/NotificationSettings'; -import { AllowedLanguage } from '../../../../../src/modules/userSettings/core/types/Language'; -import { AllowedTheme } from '../../../../../src/modules/userSettings/core/types/Theme'; +import { AllowedChannelType, AllowedNotificationType, AllowedProjectType, type AllowedChannelType as AllowedChannelTypeType, type AllowedNotificationType as AllowedNotificationTypeType, type AllowedProjectType as AllowedProjectTypeType } from '../../../../../src/modules/userSettings/core/types/NotificationSettings'; +import { AllowedLanguage, type AllowedLanguage as AllowedLanguageType } from '../../../../../src/modules/userSettings/core/types/Language'; +import { AllowedTheme, type AllowedTheme as AllowedThemeType } from '../../../../../src/modules/userSettings/core/types/Theme'; import ID from '../../../../../src/modules/shared/core/objects/ID'; -import InvalidUserSettingsKey from '../../../../../src/modules/userSettings/core/errors/InvalidUserSettingsKey'; +import InvalidParameters from '../../../../../src/modules/shared/core/errors/InvalidParameters'; -describe('UserSettings entity', () => { - it('creates from primitives and updates typed settings values', () => { - const params = { - id: ID.generateId().getId(), - userId: ID.generateId().getId(), - language: AllowedLanguage.en, - theme: AllowedTheme.dark, - timezone: 'Europe/Madrid', - notificationSettings: { - type: AllowedNotificationType.all, - projectType: AllowedProjectType.all, - channel: AllowedChannelType.email, - active: true, - }, - }; +const buildParams = () => ({ + id: ID.generateId().getId(), + userId: ID.generateId().getId(), + language: AllowedLanguage.en as AllowedLanguageType, + theme: AllowedTheme.dark as AllowedThemeType, + timezone: 'Europe/Madrid', + notificationSettings: { + type: AllowedNotificationType.all as AllowedNotificationTypeType, + projectType: AllowedProjectType.all as AllowedProjectTypeType, + channel: AllowedChannelType.email as AllowedChannelTypeType, + active: true, + }, +}); - const settings = UserSettings.fromPrimitives(params); +describe('UserSettings entity', () => { + it('creates from params and exposes values', () => { + const params = buildParams(); + const settings = new UserSettings(params); expect(settings.getUserId().getID()).toBe(params.userId); expect(settings.getLanguage().getLanguage()).toBe(params.language); @@ -38,14 +39,20 @@ describe('UserSettings entity', () => { channel: params.notificationSettings.channel, active: params.notificationSettings.active, }); + expect(settings.toPrimitives()).toEqual(params); + }); + + it('updates language, theme, timezone and notification settings', () => { + const params = buildParams(); + const settings = new UserSettings(params); - settings.updateLanguage(Language.create(AllowedLanguage.es)); + settings.updateLanguage(new Language(AllowedLanguage.es)); expect(settings.getLanguage().getLanguage()).toBe(AllowedLanguage.es); - settings.updateSetting('theme', Theme.create(AllowedTheme.light)); + settings.updateTheme(new Theme(AllowedTheme.light)); expect(settings.getTheme().getTheme()).toBe(AllowedTheme.light); - settings.updateSetting('timezone', new Timezone('America/New_York')); + settings.updateTimezone(new Timezone('America/New_York')); expect(settings.getTimezone().getTimezone()).toBe('America/New_York'); const notificationSettings = NotificationSettings.create( @@ -58,22 +65,17 @@ describe('UserSettings entity', () => { expect(settings.getNotificationSettings().toPrimitives()).toEqual(notificationSettings.toPrimitives()); }); - it('throws when updating with an invalid setting key', () => { + it('throws when notification settings values are invalid', () => { const params = { - id: ID.generateId().getId(), - userId: ID.generateId().getId(), - language: AllowedLanguage.en, - theme: AllowedTheme.dark, - timezone: 'Europe/Madrid', + ...buildParams(), notificationSettings: { - type: AllowedNotificationType.all, + type: 'INVALID' as AllowedNotificationTypeType, projectType: AllowedProjectType.all, channel: AllowedChannelType.email, active: true, }, }; - const settings = UserSettings.fromPrimitives(params); - expect(() => settings.updateSetting('invalid' as any, Language.create(AllowedLanguage.en) as any)).toThrow(InvalidUserSettingsKey); + expect(() => new UserSettings(params)).toThrow(InvalidParameters); }); }); diff --git a/backend/tests/modules/userSettings/core/objects/Language.test.ts b/backend/tests/modules/userSettings/core/objects/Language.test.ts new file mode 100644 index 00000000..ed9d6647 --- /dev/null +++ b/backend/tests/modules/userSettings/core/objects/Language.test.ts @@ -0,0 +1,17 @@ +import { describe, expect, it } from 'vitest'; +import Language from '../../../../../src/modules/userSettings/core/objects/Language'; +import UnsupportedLanguage from '../../../../../src/modules/userSettings/core/errors/UnsupportedLanguage'; +import { AllowedLanguage, type AllowedLanguage as AllowedLanguageType } from '../../../../../src/modules/userSettings/core/types/Language'; + +describe('Language value object', () => { + it('accepts valid language values', () => { + const language = new Language(AllowedLanguage.en); + + expect(language.getLanguage()).toBe(AllowedLanguage.en); + }); + + it('throws for unsupported language', () => { + expect(() => new Language('PT' as AllowedLanguageType)).toThrow(UnsupportedLanguage); + expect(() => new Language('PT' as AllowedLanguageType)).toThrow('Unsupported language: PT'); + }); +}); diff --git a/backend/tests/modules/userSettings/core/objects/NotificationSettings.test.ts b/backend/tests/modules/userSettings/core/objects/NotificationSettings.test.ts new file mode 100644 index 00000000..05047aff --- /dev/null +++ b/backend/tests/modules/userSettings/core/objects/NotificationSettings.test.ts @@ -0,0 +1,64 @@ +import { describe, expect, it } from 'vitest'; +import InvalidParameters from '../../../../../src/modules/shared/core/errors/InvalidParameters'; +import NotificationSettings from '../../../../../src/modules/userSettings/core/objects/NotificationSettings'; +import { AllowedChannelType, AllowedNotificationType, AllowedProjectType, type AllowedChannelType as AllowedChannelTypeType, type AllowedNotificationType as AllowedNotificationTypeType, type AllowedProjectType as AllowedProjectTypeType } from '../../../../../src/modules/userSettings/core/types/NotificationSettings'; + +describe('NotificationSettings value object', () => { + it('creates and serializes valid notification settings', () => { + const notification = NotificationSettings.create( + AllowedNotificationType.assigned, + AllowedProjectType.watching, + AllowedChannelType.push, + true, + ); + + expect(notification.isActive()).toBe(true); + expect(notification.toPrimitives()).toEqual({ + type: AllowedNotificationType.assigned, + projectType: AllowedProjectType.watching, + channel: AllowedChannelType.push, + active: true, + }); + }); + + it('throws for invalid notification type', () => { + expect(() => + NotificationSettings.create( + 'INVALID' as AllowedNotificationTypeType, + AllowedProjectType.watching, + AllowedChannelType.push, + true, + ), + ).toThrow(InvalidParameters); + expect(() => + NotificationSettings.create( + 'INVALID' as AllowedNotificationTypeType, + AllowedProjectType.watching, + AllowedChannelType.push, + true, + ), + ).toThrow('Invalid notification type'); + }); + + it('throws for invalid project type', () => { + expect(() => + NotificationSettings.create( + AllowedNotificationType.assigned, + 'INVALID' as AllowedProjectTypeType, + AllowedChannelType.push, + true, + ), + ).toThrow('Invalid project notification type'); + }); + + it('throws for invalid channel type', () => { + expect(() => + NotificationSettings.create( + AllowedNotificationType.assigned, + AllowedProjectType.watching, + 'SMS' as AllowedChannelTypeType, + true, + ), + ).toThrow('Invalid channel'); + }); +}); diff --git a/backend/tests/modules/userSettings/core/objects/Theme.test.ts b/backend/tests/modules/userSettings/core/objects/Theme.test.ts new file mode 100644 index 00000000..a84ebca9 --- /dev/null +++ b/backend/tests/modules/userSettings/core/objects/Theme.test.ts @@ -0,0 +1,17 @@ +import { describe, expect, it } from 'vitest'; +import Theme from '../../../../../src/modules/userSettings/core/objects/Theme'; +import UnsupportedTheme from '../../../../../src/modules/userSettings/core/errors/UnsupportedTheme'; +import { AllowedTheme, type AllowedTheme as AllowedThemeType } from '../../../../../src/modules/userSettings/core/types/Theme'; + +describe('Theme value object', () => { + it('accepts valid theme values', () => { + const theme = new Theme(AllowedTheme.dark); + + expect(theme.getTheme()).toBe(AllowedTheme.dark); + }); + + it('throws for unsupported theme', () => { + expect(() => new Theme('BLUE' as AllowedThemeType)).toThrow(UnsupportedTheme); + expect(() => new Theme('BLUE' as AllowedThemeType)).toThrow('Unsupported theme: BLUE'); + }); +}); diff --git a/backend/tests/modules/userSettings/core/objects/Timezone.test.ts b/backend/tests/modules/userSettings/core/objects/Timezone.test.ts new file mode 100644 index 00000000..19106b33 --- /dev/null +++ b/backend/tests/modules/userSettings/core/objects/Timezone.test.ts @@ -0,0 +1,16 @@ +import { describe, expect, it } from 'vitest'; +import Timezone from '../../../../../src/modules/userSettings/core/objects/Timezone'; +import InvalidTimezone from '../../../../../src/modules/userSettings/core/errors/InvalidTimezone'; + +describe('Timezone value object', () => { + it('accepts valid timezone formats', () => { + const timezone = new Timezone('America/Argentina/Buenos_Aires'); + + expect(timezone.getTimezone()).toBe('America/Argentina/Buenos_Aires'); + }); + + it('throws for invalid timezone format', () => { + expect(() => new Timezone('UTC')).toThrow(InvalidTimezone); + expect(() => new Timezone('')).toThrow(InvalidTimezone); + }); +});