@shizuoka-its/core 2.0.0-alpha.2 → 2.0.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/application/exceptions/ApplicationExceptions.d.ts +6 -0
- package/dist/application/exceptions/ApplicationExceptions.js +15 -1
- package/dist/application/index.d.ts +1 -1
- package/dist/application/index.js +1 -1
- package/dist/application/usecase/base.d.ts +8 -0
- package/dist/application/usecase/base.js +11 -0
- package/dist/application/usecase/event/AddExhibitToEvent.d.ts +23 -0
- package/dist/application/usecase/event/AddExhibitToEvent.js +27 -0
- package/dist/application/usecase/event/ChangeExhibitDescription.d.ts +17 -0
- package/dist/application/usecase/event/ChangeExhibitDescription.js +24 -0
- package/dist/application/usecase/event/ChangeExhibitMarkdownContent.d.ts +17 -0
- package/dist/application/usecase/event/ChangeExhibitMarkdownContent.js +24 -0
- package/dist/application/usecase/event/ChangeExhibitName.d.ts +17 -0
- package/dist/application/usecase/event/ChangeExhibitName.js +24 -0
- package/dist/application/usecase/event/ChangeExhibitUrl.d.ts +18 -0
- package/dist/application/usecase/event/ChangeExhibitUrl.js +24 -0
- package/dist/application/usecase/event/ChangeLightningTalkDuration.d.ts +18 -0
- package/dist/application/usecase/event/ChangeLightningTalkDuration.js +24 -0
- package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.d.ts +18 -0
- package/dist/application/usecase/event/ChangeLightningTalkSlideUrl.js +24 -0
- package/dist/application/usecase/event/ChangeLightningTalkStartTime.d.ts +17 -0
- package/dist/application/usecase/event/ChangeLightningTalkStartTime.js +24 -0
- package/dist/application/usecase/event/CreateEvent.d.ts +19 -0
- package/dist/application/usecase/event/CreateEvent.js +25 -0
- package/dist/application/usecase/event/DeleteEvent.d.ts +14 -0
- package/dist/application/usecase/event/DeleteEvent.js +22 -0
- package/dist/application/usecase/event/GetEvent.d.ts +17 -0
- package/dist/application/usecase/event/GetEvent.js +18 -0
- package/dist/application/usecase/event/GetEventList.d.ts +13 -0
- package/dist/application/usecase/event/GetEventList.js +17 -0
- package/dist/application/usecase/event/RemoveExhibitFromEvent.d.ts +16 -0
- package/dist/application/usecase/event/RemoveExhibitFromEvent.js +24 -0
- package/dist/application/usecase/event/UpdateEvent.d.ts +17 -0
- package/dist/application/usecase/event/UpdateEvent.js +29 -0
- package/dist/application/usecase/event/index.d.ts +14 -0
- package/dist/application/usecase/event/index.js +30 -0
- package/dist/application/usecase/index.d.ts +3 -9
- package/dist/application/usecase/index.js +3 -9
- package/dist/application/usecase/{ChangeDiscordNickName.d.ts → member/ChangeDiscordNickName.d.ts} +3 -3
- package/dist/application/usecase/{ChangeDiscordNickName.js → member/ChangeDiscordNickName.js} +4 -2
- package/dist/application/usecase/{ConnectDiscordAccount.d.ts → member/ConnectDiscordAccount.d.ts} +2 -2
- package/dist/application/usecase/{ConnectDiscordAccount.js → member/ConnectDiscordAccount.js} +2 -2
- package/dist/application/usecase/{GetMember.d.ts → member/GetMember.d.ts} +2 -2
- package/dist/application/usecase/{GetMemberByDiscordId.d.ts → member/GetMemberByDiscordId.d.ts} +2 -2
- package/dist/application/usecase/{GetMemberByEmail.d.ts → member/GetMemberByEmail.d.ts} +2 -2
- package/dist/application/usecase/{GetMemberList.d.ts → member/GetMemberList.d.ts} +2 -2
- package/dist/application/usecase/{RegisterMember.d.ts → member/RegisterMember.d.ts} +3 -3
- package/dist/application/usecase/{RegisterMember.js → member/RegisterMember.js} +5 -3
- package/dist/application/usecase/member/UpdateMember.d.ts +18 -0
- package/dist/application/usecase/{UpdateMember.js → member/UpdateMember.js} +5 -3
- package/dist/application/usecase/member/index.d.ts +8 -0
- package/dist/application/usecase/member/index.js +24 -0
- package/dist/domain/aggregates/event/Event.d.ts +39 -0
- package/dist/domain/aggregates/event/Event.js +68 -0
- package/dist/domain/aggregates/event/EventRepository.d.ts +7 -0
- package/dist/domain/aggregates/event/Exhibit.d.ts +33 -0
- package/dist/domain/aggregates/event/Exhibit.js +62 -0
- package/dist/domain/aggregates/event/LightningTalk.d.ts +17 -0
- package/dist/domain/aggregates/event/LightningTalk.js +30 -0
- package/dist/domain/aggregates/event/index.d.ts +4 -0
- package/dist/domain/aggregates/event/index.js +20 -0
- package/dist/domain/aggregates/index.d.ts +2 -0
- package/dist/domain/aggregates/index.js +18 -0
- package/dist/domain/{member → aggregates/member}/DiscordAccount.d.ts +5 -0
- package/dist/domain/{member → aggregates/member}/DiscordAccount.js +7 -0
- package/dist/domain/aggregates/member/Member.d.ts +38 -0
- package/dist/domain/{member → aggregates/member}/Member.js +25 -8
- package/dist/domain/aggregates/memberEvent/MemberEvent.d.ts +11 -0
- package/dist/domain/aggregates/memberEvent/MemberEvent.js +18 -0
- package/dist/domain/aggregates/memberEvent/MemberEventRepository.d.ts +8 -0
- package/dist/domain/aggregates/memberEvent/MemberEventRepository.js +2 -0
- package/dist/domain/aggregates/memberExhibit/MemberExhibit.d.ts +11 -0
- package/dist/domain/aggregates/memberExhibit/MemberExhibit.js +18 -0
- package/dist/domain/aggregates/memberExhibit/MemberExhibitRepository.d.ts +8 -0
- package/dist/domain/aggregates/memberExhibit/MemberExhibitRepository.js +2 -0
- package/dist/domain/exceptions/DomainExceptions.d.ts +21 -0
- package/dist/domain/exceptions/DomainExceptions.js +50 -1
- package/dist/domain/index.d.ts +1 -1
- package/dist/domain/index.js +1 -1
- package/dist/domain/value-objects/LightningTalkDuration.d.ts +4 -0
- package/dist/domain/value-objects/LightningTalkDuration.js +11 -0
- package/dist/domain/value-objects/Url.d.ts +4 -0
- package/dist/domain/value-objects/Url.js +19 -0
- package/dist/domain/value-objects/index.d.ts +3 -1
- package/dist/domain/value-objects/index.js +3 -1
- package/dist/executable/event.d.ts +21 -0
- package/dist/executable/event.js +50 -0
- package/dist/executable/member.d.ts +9 -9
- package/dist/infrastructure/prisma/PrismaEventRepository.d.ts +22 -0
- package/dist/infrastructure/prisma/PrismaEventRepository.js +172 -0
- package/dist/infrastructure/prisma/PrismaMemberEventRepository.d.ts +10 -0
- package/dist/infrastructure/prisma/PrismaMemberEventRepository.js +48 -0
- package/dist/infrastructure/prisma/PrismaMemberExhibitRepository.d.ts +10 -0
- package/dist/infrastructure/prisma/PrismaMemberExhibitRepository.js +48 -0
- package/dist/infrastructure/prisma/PrismaMemberRepository.js +14 -13
- package/dist/infrastructure/prisma/index.d.ts +3 -0
- package/dist/infrastructure/prisma/index.js +3 -0
- package/package.json +1 -1
- package/dist/application/usecase/BaseUseCase.d.ts +0 -8
- package/dist/application/usecase/UpdateMember.d.ts +0 -27
- package/dist/domain/member/Member.d.ts +0 -23
- /package/dist/application/usecase/{GetMember.js → member/GetMember.js} +0 -0
- /package/dist/application/usecase/{GetMemberByDiscordId.js → member/GetMemberByDiscordId.js} +0 -0
- /package/dist/application/usecase/{GetMemberByEmail.js → member/GetMemberByEmail.js} +0 -0
- /package/dist/application/usecase/{GetMemberList.js → member/GetMemberList.js} +0 -0
- /package/dist/{application/usecase/BaseUseCase.js → domain/aggregates/event/EventRepository.js} +0 -0
- /package/dist/domain/{member → aggregates/member}/MemberRepository.d.ts +0 -0
- /package/dist/domain/{member → aggregates/member}/MemberRepository.js +0 -0
- /package/dist/domain/{member → aggregates/member}/index.d.ts +0 -0
- /package/dist/domain/{member → aggregates/member}/index.js +0 -0
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
export declare class ApplicationException extends Error {
|
|
2
2
|
constructor(message: string);
|
|
3
3
|
}
|
|
4
|
+
export declare class EventNotFoundException extends ApplicationException {
|
|
5
|
+
constructor(message?: string);
|
|
6
|
+
}
|
|
7
|
+
export declare class ExhibitNotFoundException extends ApplicationException {
|
|
8
|
+
constructor(message?: string);
|
|
9
|
+
}
|
|
4
10
|
export declare class MemberEmailAlreadyExistsException extends ApplicationException {
|
|
5
11
|
constructor(message?: string);
|
|
6
12
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DiscordAccountNotConnectedException = exports.MemberNotFoundException = exports.MemberEmailAlreadyExistsException = exports.ApplicationException = void 0;
|
|
3
|
+
exports.DiscordAccountNotConnectedException = exports.MemberNotFoundException = exports.MemberEmailAlreadyExistsException = exports.ExhibitNotFoundException = exports.EventNotFoundException = exports.ApplicationException = void 0;
|
|
4
4
|
class ApplicationException extends Error {
|
|
5
5
|
constructor(message) {
|
|
6
6
|
super(message);
|
|
@@ -8,6 +8,20 @@ class ApplicationException extends Error {
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
exports.ApplicationException = ApplicationException;
|
|
11
|
+
class EventNotFoundException extends ApplicationException {
|
|
12
|
+
constructor(message = "イベントが見つかりません") {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = "EventNotFoundException";
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.EventNotFoundException = EventNotFoundException;
|
|
18
|
+
class ExhibitNotFoundException extends ApplicationException {
|
|
19
|
+
constructor(message = "展示が見つかりません") {
|
|
20
|
+
super(message);
|
|
21
|
+
this.name = "ExhibitNotFoundException";
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.ExhibitNotFoundException = ExhibitNotFoundException;
|
|
11
25
|
class MemberEmailAlreadyExistsException extends ApplicationException {
|
|
12
26
|
constructor(message = "このメールアドレスは既に登録されています") {
|
|
13
27
|
super(message);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from "./usecase";
|
|
1
|
+
export * from "./usecase/member";
|
|
2
2
|
export * from "./exceptions";
|
|
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./usecase"), exports);
|
|
17
|
+
__exportStar(require("./usecase/member"), exports);
|
|
18
18
|
__exportStar(require("./exceptions"), exports);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { EventRepository } from "../../../domain";
|
|
2
|
+
import type { Url } from "../../../domain";
|
|
3
|
+
import type { Event } from "../../../domain";
|
|
4
|
+
import { IUseCase } from "../base";
|
|
5
|
+
export interface AddExhibitToEventInput {
|
|
6
|
+
eventId: string;
|
|
7
|
+
exhibit: {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
markdownContent?: string;
|
|
12
|
+
url?: Url;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export type AddExhibitToEventOutput = Event;
|
|
16
|
+
/**
|
|
17
|
+
* イベントに展示を追加するユースケース
|
|
18
|
+
*/
|
|
19
|
+
export declare class AddExhibitToEvent extends IUseCase<AddExhibitToEventInput, AddExhibitToEventOutput> {
|
|
20
|
+
private readonly eventRepository;
|
|
21
|
+
constructor(eventRepository: EventRepository);
|
|
22
|
+
execute(input: AddExhibitToEventInput): Promise<AddExhibitToEventOutput>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AddExhibitToEvent = void 0;
|
|
4
|
+
const domain_1 = require("../../../domain");
|
|
5
|
+
const exceptions_1 = require("../../exceptions");
|
|
6
|
+
const base_1 = require("../base");
|
|
7
|
+
/**
|
|
8
|
+
* イベントに展示を追加するユースケース
|
|
9
|
+
*/
|
|
10
|
+
class AddExhibitToEvent extends base_1.IUseCase {
|
|
11
|
+
constructor(eventRepository) {
|
|
12
|
+
super();
|
|
13
|
+
this.eventRepository = eventRepository;
|
|
14
|
+
}
|
|
15
|
+
async execute(input) {
|
|
16
|
+
const event = await this.eventRepository.findById(input.eventId);
|
|
17
|
+
if (!event) {
|
|
18
|
+
throw new exceptions_1.EventNotFoundException();
|
|
19
|
+
}
|
|
20
|
+
const { id, name, description, markdownContent, url } = input.exhibit;
|
|
21
|
+
const exhibit = new domain_1.Exhibit(id, name, description, markdownContent, url);
|
|
22
|
+
event.addExhibit(exhibit);
|
|
23
|
+
await this.eventRepository.save(event);
|
|
24
|
+
return event;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.AddExhibitToEvent = AddExhibitToEvent;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Event } from "../../../domain/aggregates/event/Event";
|
|
2
|
+
import type { EventRepository } from "../../../domain/aggregates/event/EventRepository";
|
|
3
|
+
import { IUseCase } from "../base";
|
|
4
|
+
export interface ChangeExhibitDescriptionInput {
|
|
5
|
+
eventId: string;
|
|
6
|
+
exhibitId: string;
|
|
7
|
+
newDescription: string;
|
|
8
|
+
}
|
|
9
|
+
export type ChangeExhibitDescriptionOutput = Event;
|
|
10
|
+
/**
|
|
11
|
+
* 展示説明変更ユースケース
|
|
12
|
+
*/
|
|
13
|
+
export declare class ChangeExhibitDescription extends IUseCase<ChangeExhibitDescriptionInput, ChangeExhibitDescriptionOutput> {
|
|
14
|
+
private readonly eventRepository;
|
|
15
|
+
constructor(eventRepository: EventRepository);
|
|
16
|
+
execute(input: ChangeExhibitDescriptionInput): Promise<ChangeExhibitDescriptionOutput>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChangeExhibitDescription = void 0;
|
|
4
|
+
const exceptions_1 = require("../../exceptions");
|
|
5
|
+
const base_1 = require("../base");
|
|
6
|
+
/**
|
|
7
|
+
* 展示説明変更ユースケース
|
|
8
|
+
*/
|
|
9
|
+
class ChangeExhibitDescription extends base_1.IUseCase {
|
|
10
|
+
constructor(eventRepository) {
|
|
11
|
+
super();
|
|
12
|
+
this.eventRepository = eventRepository;
|
|
13
|
+
}
|
|
14
|
+
async execute(input) {
|
|
15
|
+
const event = await this.eventRepository.findById(input.eventId);
|
|
16
|
+
if (!event) {
|
|
17
|
+
throw new exceptions_1.EventNotFoundException();
|
|
18
|
+
}
|
|
19
|
+
event.changeExhibitDescription(input.exhibitId, input.newDescription);
|
|
20
|
+
await this.eventRepository.save(event);
|
|
21
|
+
return event;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.ChangeExhibitDescription = ChangeExhibitDescription;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Event } from "../../../domain/aggregates/event/Event";
|
|
2
|
+
import type { EventRepository } from "../../../domain/aggregates/event/EventRepository";
|
|
3
|
+
import { IUseCase } from "../base";
|
|
4
|
+
export interface ChangeExhibitMarkdownContentInput {
|
|
5
|
+
eventId: string;
|
|
6
|
+
exhibitId: string;
|
|
7
|
+
newMarkdownContent: string;
|
|
8
|
+
}
|
|
9
|
+
export type ChangeExhibitMarkdownContentOutput = Event;
|
|
10
|
+
/**
|
|
11
|
+
* 展示Markdownコンテンツ変更ユースケース
|
|
12
|
+
*/
|
|
13
|
+
export declare class ChangeExhibitMarkdownContent extends IUseCase<ChangeExhibitMarkdownContentInput, ChangeExhibitMarkdownContentOutput> {
|
|
14
|
+
private readonly eventRepository;
|
|
15
|
+
constructor(eventRepository: EventRepository);
|
|
16
|
+
execute(input: ChangeExhibitMarkdownContentInput): Promise<ChangeExhibitMarkdownContentOutput>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChangeExhibitMarkdownContent = void 0;
|
|
4
|
+
const exceptions_1 = require("../../exceptions");
|
|
5
|
+
const base_1 = require("../base");
|
|
6
|
+
/**
|
|
7
|
+
* 展示Markdownコンテンツ変更ユースケース
|
|
8
|
+
*/
|
|
9
|
+
class ChangeExhibitMarkdownContent extends base_1.IUseCase {
|
|
10
|
+
constructor(eventRepository) {
|
|
11
|
+
super();
|
|
12
|
+
this.eventRepository = eventRepository;
|
|
13
|
+
}
|
|
14
|
+
async execute(input) {
|
|
15
|
+
const event = await this.eventRepository.findById(input.eventId);
|
|
16
|
+
if (!event) {
|
|
17
|
+
throw new exceptions_1.EventNotFoundException();
|
|
18
|
+
}
|
|
19
|
+
event.changeExhibitMarkdownContent(input.exhibitId, input.newMarkdownContent);
|
|
20
|
+
await this.eventRepository.save(event);
|
|
21
|
+
return event;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.ChangeExhibitMarkdownContent = ChangeExhibitMarkdownContent;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { EventRepository } from "../../../domain/aggregates/event/EventRepository";
|
|
2
|
+
import { IUseCase } from "../base";
|
|
3
|
+
export interface ChangeExhibitNameInput {
|
|
4
|
+
eventId: string;
|
|
5
|
+
exhibitId: string;
|
|
6
|
+
newName: string;
|
|
7
|
+
}
|
|
8
|
+
import type { Event } from "../../../domain/aggregates/event/Event";
|
|
9
|
+
export type ChangeExhibitNameOutput = Event;
|
|
10
|
+
/**
|
|
11
|
+
* 展示名変更ユースケース
|
|
12
|
+
*/
|
|
13
|
+
export declare class ChangeExhibitName extends IUseCase<ChangeExhibitNameInput, ChangeExhibitNameOutput> {
|
|
14
|
+
private readonly eventRepository;
|
|
15
|
+
constructor(eventRepository: EventRepository);
|
|
16
|
+
execute(input: ChangeExhibitNameInput): Promise<ChangeExhibitNameOutput>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChangeExhibitName = void 0;
|
|
4
|
+
const exceptions_1 = require("../../exceptions");
|
|
5
|
+
const base_1 = require("../base");
|
|
6
|
+
/**
|
|
7
|
+
* 展示名変更ユースケース
|
|
8
|
+
*/
|
|
9
|
+
class ChangeExhibitName extends base_1.IUseCase {
|
|
10
|
+
constructor(eventRepository) {
|
|
11
|
+
super();
|
|
12
|
+
this.eventRepository = eventRepository;
|
|
13
|
+
}
|
|
14
|
+
async execute(input) {
|
|
15
|
+
const event = await this.eventRepository.findById(input.eventId);
|
|
16
|
+
if (!event) {
|
|
17
|
+
throw new exceptions_1.EventNotFoundException();
|
|
18
|
+
}
|
|
19
|
+
event.changeExhibitName(input.exhibitId, input.newName);
|
|
20
|
+
await this.eventRepository.save(event);
|
|
21
|
+
return event;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.ChangeExhibitName = ChangeExhibitName;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Event } from "../../../domain/aggregates/event/Event";
|
|
2
|
+
import type { EventRepository } from "../../../domain/aggregates/event/EventRepository";
|
|
3
|
+
import type { Url } from "../../../domain/value-objects/Url";
|
|
4
|
+
import { IUseCase } from "../base";
|
|
5
|
+
export interface ChangeExhibitUrlInput {
|
|
6
|
+
eventId: string;
|
|
7
|
+
exhibitId: string;
|
|
8
|
+
newUrl: Url;
|
|
9
|
+
}
|
|
10
|
+
export type ChangeExhibitUrlOutput = Event;
|
|
11
|
+
/**
|
|
12
|
+
* 展示URL変更ユースケース
|
|
13
|
+
*/
|
|
14
|
+
export declare class ChangeExhibitUrl extends IUseCase<ChangeExhibitUrlInput, ChangeExhibitUrlOutput> {
|
|
15
|
+
private readonly eventRepository;
|
|
16
|
+
constructor(eventRepository: EventRepository);
|
|
17
|
+
execute(input: ChangeExhibitUrlInput): Promise<ChangeExhibitUrlOutput>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChangeExhibitUrl = void 0;
|
|
4
|
+
const exceptions_1 = require("../../exceptions");
|
|
5
|
+
const base_1 = require("../base");
|
|
6
|
+
/**
|
|
7
|
+
* 展示URL変更ユースケース
|
|
8
|
+
*/
|
|
9
|
+
class ChangeExhibitUrl extends base_1.IUseCase {
|
|
10
|
+
constructor(eventRepository) {
|
|
11
|
+
super();
|
|
12
|
+
this.eventRepository = eventRepository;
|
|
13
|
+
}
|
|
14
|
+
async execute(input) {
|
|
15
|
+
const event = await this.eventRepository.findById(input.eventId);
|
|
16
|
+
if (!event) {
|
|
17
|
+
throw new exceptions_1.EventNotFoundException();
|
|
18
|
+
}
|
|
19
|
+
event.changeExhibitUrl(input.exhibitId, input.newUrl);
|
|
20
|
+
await this.eventRepository.save(event);
|
|
21
|
+
return event;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.ChangeExhibitUrl = ChangeExhibitUrl;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Event } from "../../../domain/aggregates/event/Event";
|
|
2
|
+
import type { EventRepository } from "../../../domain/aggregates/event/EventRepository";
|
|
3
|
+
import type { LightningTalkDuration } from "../../../domain/value-objects/LightningTalkDuration";
|
|
4
|
+
import { IUseCase } from "../base";
|
|
5
|
+
export interface ChangeLightningTalkDurationInput {
|
|
6
|
+
eventId: string;
|
|
7
|
+
exhibitId: string;
|
|
8
|
+
newDuration: LightningTalkDuration;
|
|
9
|
+
}
|
|
10
|
+
export type ChangeLightningTalkDurationOutput = Event;
|
|
11
|
+
/**
|
|
12
|
+
* LT持ち時間変更ユースケース
|
|
13
|
+
*/
|
|
14
|
+
export declare class ChangeLightningTalkDuration extends IUseCase<ChangeLightningTalkDurationInput, ChangeLightningTalkDurationOutput> {
|
|
15
|
+
private readonly eventRepository;
|
|
16
|
+
constructor(eventRepository: EventRepository);
|
|
17
|
+
execute(input: ChangeLightningTalkDurationInput): Promise<ChangeLightningTalkDurationOutput>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChangeLightningTalkDuration = void 0;
|
|
4
|
+
const exceptions_1 = require("../../exceptions");
|
|
5
|
+
const base_1 = require("../base");
|
|
6
|
+
/**
|
|
7
|
+
* LT持ち時間変更ユースケース
|
|
8
|
+
*/
|
|
9
|
+
class ChangeLightningTalkDuration extends base_1.IUseCase {
|
|
10
|
+
constructor(eventRepository) {
|
|
11
|
+
super();
|
|
12
|
+
this.eventRepository = eventRepository;
|
|
13
|
+
}
|
|
14
|
+
async execute(input) {
|
|
15
|
+
const event = await this.eventRepository.findById(input.eventId);
|
|
16
|
+
if (!event) {
|
|
17
|
+
throw new exceptions_1.EventNotFoundException();
|
|
18
|
+
}
|
|
19
|
+
event.changeExhibitLightningTalkDuration(input.exhibitId, input.newDuration);
|
|
20
|
+
await this.eventRepository.save(event);
|
|
21
|
+
return event;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.ChangeLightningTalkDuration = ChangeLightningTalkDuration;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Event } from "../../../domain/aggregates/event/Event";
|
|
2
|
+
import type { EventRepository } from "../../../domain/aggregates/event/EventRepository";
|
|
3
|
+
import type { Url } from "../../../domain/value-objects/Url";
|
|
4
|
+
import { IUseCase } from "../base";
|
|
5
|
+
export interface ChangeLightningTalkSlideUrlInput {
|
|
6
|
+
eventId: string;
|
|
7
|
+
exhibitId: string;
|
|
8
|
+
newSlideUrl: Url;
|
|
9
|
+
}
|
|
10
|
+
export type ChangeLightningTalkSlideUrlOutput = Event;
|
|
11
|
+
/**
|
|
12
|
+
* LTスライドURL変更ユースケース
|
|
13
|
+
*/
|
|
14
|
+
export declare class ChangeLightningTalkSlideUrl extends IUseCase<ChangeLightningTalkSlideUrlInput, ChangeLightningTalkSlideUrlOutput> {
|
|
15
|
+
private readonly eventRepository;
|
|
16
|
+
constructor(eventRepository: EventRepository);
|
|
17
|
+
execute(input: ChangeLightningTalkSlideUrlInput): Promise<ChangeLightningTalkSlideUrlOutput>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChangeLightningTalkSlideUrl = void 0;
|
|
4
|
+
const exceptions_1 = require("../../exceptions");
|
|
5
|
+
const base_1 = require("../base");
|
|
6
|
+
/**
|
|
7
|
+
* LTスライドURL変更ユースケース
|
|
8
|
+
*/
|
|
9
|
+
class ChangeLightningTalkSlideUrl extends base_1.IUseCase {
|
|
10
|
+
constructor(eventRepository) {
|
|
11
|
+
super();
|
|
12
|
+
this.eventRepository = eventRepository;
|
|
13
|
+
}
|
|
14
|
+
async execute(input) {
|
|
15
|
+
const event = await this.eventRepository.findById(input.eventId);
|
|
16
|
+
if (!event) {
|
|
17
|
+
throw new exceptions_1.EventNotFoundException();
|
|
18
|
+
}
|
|
19
|
+
event.changeExhibitLightningTalkSlideUrl(input.exhibitId, input.newSlideUrl);
|
|
20
|
+
await this.eventRepository.save(event);
|
|
21
|
+
return event;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.ChangeLightningTalkSlideUrl = ChangeLightningTalkSlideUrl;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Event } from "../../../domain/aggregates/event/Event";
|
|
2
|
+
import type { EventRepository } from "../../../domain/aggregates/event/EventRepository";
|
|
3
|
+
import { IUseCase } from "../base";
|
|
4
|
+
export interface ChangeLightningTalkStartTimeInput {
|
|
5
|
+
eventId: string;
|
|
6
|
+
exhibitId: string;
|
|
7
|
+
newStartTime: Date;
|
|
8
|
+
}
|
|
9
|
+
export type ChangeLightningTalkStartTimeOutput = Event;
|
|
10
|
+
/**
|
|
11
|
+
* LT開始時刻変更ユースケース
|
|
12
|
+
*/
|
|
13
|
+
export declare class ChangeLightningTalkStartTime extends IUseCase<ChangeLightningTalkStartTimeInput, ChangeLightningTalkStartTimeOutput> {
|
|
14
|
+
private readonly eventRepository;
|
|
15
|
+
constructor(eventRepository: EventRepository);
|
|
16
|
+
execute(input: ChangeLightningTalkStartTimeInput): Promise<ChangeLightningTalkStartTimeOutput>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChangeLightningTalkStartTime = void 0;
|
|
4
|
+
const exceptions_1 = require("../../exceptions");
|
|
5
|
+
const base_1 = require("../base");
|
|
6
|
+
/**
|
|
7
|
+
* LT開始時刻変更ユースケース
|
|
8
|
+
*/
|
|
9
|
+
class ChangeLightningTalkStartTime extends base_1.IUseCase {
|
|
10
|
+
constructor(eventRepository) {
|
|
11
|
+
super();
|
|
12
|
+
this.eventRepository = eventRepository;
|
|
13
|
+
}
|
|
14
|
+
async execute(input) {
|
|
15
|
+
const event = await this.eventRepository.findById(input.eventId);
|
|
16
|
+
if (!event) {
|
|
17
|
+
throw new exceptions_1.EventNotFoundException();
|
|
18
|
+
}
|
|
19
|
+
event.changeExhibitLightningTalkStartTime(input.exhibitId, input.newStartTime);
|
|
20
|
+
await this.eventRepository.save(event);
|
|
21
|
+
return event;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.ChangeLightningTalkStartTime = ChangeLightningTalkStartTime;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { EventRepository } from "../../../domain/aggregates/event/EventRepository";
|
|
2
|
+
import { IUseCase } from "../base";
|
|
3
|
+
export interface CreateEventInput {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
date: Date;
|
|
7
|
+
}
|
|
8
|
+
export interface CreateEventOutput {
|
|
9
|
+
success: boolean;
|
|
10
|
+
message?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* 新しいEventを作成し、DBに保存するユースケース。
|
|
14
|
+
*/
|
|
15
|
+
export declare class CreateEvent extends IUseCase<CreateEventInput, CreateEventOutput> {
|
|
16
|
+
private readonly eventRepository;
|
|
17
|
+
constructor(eventRepository: EventRepository);
|
|
18
|
+
execute(input: CreateEventInput): Promise<CreateEventOutput>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateEvent = void 0;
|
|
4
|
+
const event_1 = require("../../../domain/aggregates/event");
|
|
5
|
+
const base_1 = require("../base");
|
|
6
|
+
/**
|
|
7
|
+
* 新しいEventを作成し、DBに保存するユースケース。
|
|
8
|
+
*/
|
|
9
|
+
class CreateEvent extends base_1.IUseCase {
|
|
10
|
+
constructor(eventRepository) {
|
|
11
|
+
super();
|
|
12
|
+
this.eventRepository = eventRepository;
|
|
13
|
+
}
|
|
14
|
+
async execute(input) {
|
|
15
|
+
const { id, name, date } = input;
|
|
16
|
+
// event生成
|
|
17
|
+
const event = new event_1.Event(id, name, date);
|
|
18
|
+
// save
|
|
19
|
+
await this.eventRepository.save(event);
|
|
20
|
+
return {
|
|
21
|
+
success: true,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.CreateEvent = CreateEvent;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { EventRepository } from "../../../domain/aggregates/event/EventRepository";
|
|
2
|
+
import { IUseCase } from "../base";
|
|
3
|
+
export interface DeleteEventInput {
|
|
4
|
+
eventId: string;
|
|
5
|
+
}
|
|
6
|
+
export type DeleteEventOutput = undefined;
|
|
7
|
+
/**
|
|
8
|
+
* イベント削除ユースケース
|
|
9
|
+
*/
|
|
10
|
+
export declare class DeleteEvent extends IUseCase<DeleteEventInput, DeleteEventOutput> {
|
|
11
|
+
private readonly eventRepository;
|
|
12
|
+
constructor(eventRepository: EventRepository);
|
|
13
|
+
execute(input: DeleteEventInput): Promise<DeleteEventOutput>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeleteEvent = void 0;
|
|
4
|
+
const exceptions_1 = require("../../exceptions");
|
|
5
|
+
const base_1 = require("../base");
|
|
6
|
+
/**
|
|
7
|
+
* イベント削除ユースケース
|
|
8
|
+
*/
|
|
9
|
+
class DeleteEvent extends base_1.IUseCase {
|
|
10
|
+
constructor(eventRepository) {
|
|
11
|
+
super();
|
|
12
|
+
this.eventRepository = eventRepository;
|
|
13
|
+
}
|
|
14
|
+
async execute(input) {
|
|
15
|
+
const event = await this.eventRepository.findById(input.eventId);
|
|
16
|
+
if (!event) {
|
|
17
|
+
throw new exceptions_1.EventNotFoundException();
|
|
18
|
+
}
|
|
19
|
+
await this.eventRepository.delete(input.eventId);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.DeleteEvent = DeleteEvent;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Event } from "../../../domain/aggregates/event";
|
|
2
|
+
import type { EventRepository } from "../../../domain/aggregates/event/EventRepository";
|
|
3
|
+
import { IUseCase } from "../base";
|
|
4
|
+
export interface GetEventInput {
|
|
5
|
+
eventId: string;
|
|
6
|
+
}
|
|
7
|
+
export interface GetEventOutput {
|
|
8
|
+
event: Event | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* 指定したEvent IDに該当するEventを取得
|
|
12
|
+
*/
|
|
13
|
+
export declare class GetEvent extends IUseCase<GetEventInput, GetEventOutput> {
|
|
14
|
+
private readonly eventRepository;
|
|
15
|
+
constructor(eventRepository: EventRepository);
|
|
16
|
+
execute(input: GetEventInput): Promise<GetEventOutput>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetEvent = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
/**
|
|
6
|
+
* 指定したEvent IDに該当するEventを取得
|
|
7
|
+
*/
|
|
8
|
+
class GetEvent extends base_1.IUseCase {
|
|
9
|
+
constructor(eventRepository) {
|
|
10
|
+
super();
|
|
11
|
+
this.eventRepository = eventRepository;
|
|
12
|
+
}
|
|
13
|
+
async execute(input) {
|
|
14
|
+
const event = await this.eventRepository.findById(input.eventId);
|
|
15
|
+
return { event };
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.GetEvent = GetEvent;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Event } from "../../../domain/aggregates/event";
|
|
2
|
+
import type { EventRepository } from "../../../domain/aggregates/event/EventRepository";
|
|
3
|
+
import { IUseCase } from "../base";
|
|
4
|
+
export type GetEventListInput = Record<string, never>;
|
|
5
|
+
export type GetEventListOutput = Event[];
|
|
6
|
+
/**
|
|
7
|
+
* 全Eventを一覧取得するユースケース
|
|
8
|
+
*/
|
|
9
|
+
export declare class GetEventList extends IUseCase<GetEventListInput, GetEventListOutput> {
|
|
10
|
+
private readonly eventRepository;
|
|
11
|
+
constructor(eventRepository: EventRepository);
|
|
12
|
+
execute(_input: GetEventListInput): Promise<GetEventListOutput>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetEventList = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
/**
|
|
6
|
+
* 全Eventを一覧取得するユースケース
|
|
7
|
+
*/
|
|
8
|
+
class GetEventList extends base_1.IUseCase {
|
|
9
|
+
constructor(eventRepository) {
|
|
10
|
+
super();
|
|
11
|
+
this.eventRepository = eventRepository;
|
|
12
|
+
}
|
|
13
|
+
async execute(_input) {
|
|
14
|
+
return await this.eventRepository.findAll();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.GetEventList = GetEventList;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { EventRepository } from "../../../domain/aggregates/event/EventRepository";
|
|
2
|
+
import { IUseCase } from "../base";
|
|
3
|
+
export interface RemoveExhibitFromEventInput {
|
|
4
|
+
eventId: string;
|
|
5
|
+
exhibitId: string;
|
|
6
|
+
}
|
|
7
|
+
import type { Event } from "../../../domain/aggregates/event/Event";
|
|
8
|
+
export type RemoveExhibitFromEventOutput = Event;
|
|
9
|
+
/**
|
|
10
|
+
* イベントから展示を削除するユースケース
|
|
11
|
+
*/
|
|
12
|
+
export declare class RemoveExhibitFromEvent extends IUseCase<RemoveExhibitFromEventInput, RemoveExhibitFromEventOutput> {
|
|
13
|
+
private readonly eventRepository;
|
|
14
|
+
constructor(eventRepository: EventRepository);
|
|
15
|
+
execute(input: RemoveExhibitFromEventInput): Promise<RemoveExhibitFromEventOutput>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RemoveExhibitFromEvent = void 0;
|
|
4
|
+
const exceptions_1 = require("../../exceptions");
|
|
5
|
+
const base_1 = require("../base");
|
|
6
|
+
/**
|
|
7
|
+
* イベントから展示を削除するユースケース
|
|
8
|
+
*/
|
|
9
|
+
class RemoveExhibitFromEvent extends base_1.IUseCase {
|
|
10
|
+
constructor(eventRepository) {
|
|
11
|
+
super();
|
|
12
|
+
this.eventRepository = eventRepository;
|
|
13
|
+
}
|
|
14
|
+
async execute(input) {
|
|
15
|
+
const event = await this.eventRepository.findById(input.eventId);
|
|
16
|
+
if (!event) {
|
|
17
|
+
throw new exceptions_1.EventNotFoundException();
|
|
18
|
+
}
|
|
19
|
+
event.removeExhibit(input.exhibitId);
|
|
20
|
+
await this.eventRepository.save(event);
|
|
21
|
+
return event;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.RemoveExhibitFromEvent = RemoveExhibitFromEvent;
|