From 4084f2f5ecf8379ff69d619d3d12495c010c3980 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Thu, 15 Dec 2022 12:24:06 +0100 Subject: [PATCH] feat(domain-core): add legacy session model --- .../src/Domain/Auth/LegacySession.spec.ts | 16 ++++++++++++++ .../src/Domain/Auth/LegacySession.ts | 22 +++++++++++++++++++ .../src/Domain/Auth/LegacySessionProps.ts | 3 +++ packages/domain-core/src/Domain/index.ts | 2 ++ 4 files changed, 43 insertions(+) create mode 100644 packages/domain-core/src/Domain/Auth/LegacySession.spec.ts create mode 100644 packages/domain-core/src/Domain/Auth/LegacySession.ts create mode 100644 packages/domain-core/src/Domain/Auth/LegacySessionProps.ts diff --git a/packages/domain-core/src/Domain/Auth/LegacySession.spec.ts b/packages/domain-core/src/Domain/Auth/LegacySession.spec.ts new file mode 100644 index 000000000..5317d332a --- /dev/null +++ b/packages/domain-core/src/Domain/Auth/LegacySession.spec.ts @@ -0,0 +1,16 @@ +import { LegacySession } from './LegacySession' + +describe('LegacySession', () => { + it('should create a value object', () => { + const valueOrError = LegacySession.create('foobar') + + expect(valueOrError.isFailed()).toBeFalsy() + expect(valueOrError.getValue().accessToken).toEqual('foobar') + }) + + it('should not create an invalid value object', () => { + const valueOrError = LegacySession.create('') + + expect(valueOrError.isFailed()).toBeTruthy() + }) +}) diff --git a/packages/domain-core/src/Domain/Auth/LegacySession.ts b/packages/domain-core/src/Domain/Auth/LegacySession.ts new file mode 100644 index 000000000..06187193f --- /dev/null +++ b/packages/domain-core/src/Domain/Auth/LegacySession.ts @@ -0,0 +1,22 @@ +import { ValueObject } from '../Core/ValueObject' +import { Result } from '../Core/Result' +import { LegacySessionProps } from './LegacySessionProps' +import { Validator } from '../Core/Validator' + +export class LegacySession extends ValueObject { + get accessToken(): string { + return this.props.token + } + + private constructor(props: LegacySessionProps) { + super(props) + } + + static create(token: string): Result { + if (Validator.isNotEmpty(token).isFailed()) { + return Result.fail('Could not create legacy session. Token value is empty') + } + + return Result.ok(new LegacySession({ token })) + } +} diff --git a/packages/domain-core/src/Domain/Auth/LegacySessionProps.ts b/packages/domain-core/src/Domain/Auth/LegacySessionProps.ts new file mode 100644 index 000000000..440e4c796 --- /dev/null +++ b/packages/domain-core/src/Domain/Auth/LegacySessionProps.ts @@ -0,0 +1,3 @@ +export interface LegacySessionProps { + token: string +} diff --git a/packages/domain-core/src/Domain/index.ts b/packages/domain-core/src/Domain/index.ts index 266b8186b..45c5e76a9 100644 --- a/packages/domain-core/src/Domain/index.ts +++ b/packages/domain-core/src/Domain/index.ts @@ -1,3 +1,5 @@ +export * from './Auth/LegacySession' +export * from './Auth/LegacySessionProps' export * from './Auth/Session' export * from './Auth/SessionProps' export * from './Auth/SessionToken'