@shizuoka-its/core 1.1.1 → 2.0.0-alpha.1

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.
Files changed (66) hide show
  1. package/dist/application/exceptions/ApplicationExceptions.d.ts +12 -0
  2. package/dist/application/exceptions/ApplicationExceptions.js +31 -0
  3. package/dist/application/exceptions/index.d.ts +1 -0
  4. package/dist/application/exceptions/index.js +17 -0
  5. package/dist/application/index.d.ts +2 -0
  6. package/dist/application/index.js +18 -0
  7. package/dist/application/usecase/BaseUseCase.d.ts +8 -0
  8. package/dist/application/usecase/BaseUseCase.js +2 -0
  9. package/dist/application/usecase/ChangeDiscordNickName.d.ts +12 -0
  10. package/dist/application/usecase/ChangeDiscordNickName.js +23 -0
  11. package/dist/application/usecase/ConnectDiscordAccount.d.ts +13 -0
  12. package/dist/application/usecase/ConnectDiscordAccount.js +22 -0
  13. package/dist/application/usecase/GetMember.d.ts +11 -0
  14. package/dist/application/usecase/GetMember.js +12 -0
  15. package/dist/application/usecase/GetMemberByDiscordId.d.ts +11 -0
  16. package/dist/application/usecase/GetMemberByDiscordId.js +12 -0
  17. package/dist/application/usecase/GetMemberByEmail.d.ts +11 -0
  18. package/dist/application/usecase/GetMemberByEmail.js +12 -0
  19. package/dist/application/usecase/GetMemberList.d.ts +9 -0
  20. package/dist/application/usecase/GetMemberList.js +12 -0
  21. package/dist/application/usecase/RegisterMember.d.ts +17 -0
  22. package/dist/application/usecase/RegisterMember.js +35 -0
  23. package/dist/application/usecase/UpdateMember.d.ts +27 -0
  24. package/dist/application/usecase/UpdateMember.js +38 -0
  25. package/dist/application/usecase/index.d.ts +9 -0
  26. package/dist/application/usecase/index.js +25 -0
  27. package/dist/domain/exceptions/DomainExceptions.d.ts +21 -0
  28. package/dist/domain/exceptions/DomainExceptions.js +52 -0
  29. package/dist/domain/exceptions/index.d.ts +1 -0
  30. package/dist/domain/exceptions/index.js +17 -0
  31. package/dist/domain/index.d.ts +3 -0
  32. package/dist/domain/index.js +19 -0
  33. package/dist/domain/member/DiscordAccount.d.ts +8 -0
  34. package/dist/domain/member/DiscordAccount.js +15 -0
  35. package/dist/domain/member/Member.d.ts +23 -0
  36. package/dist/domain/member/Member.js +51 -0
  37. package/dist/domain/member/MemberRepository.d.ts +9 -0
  38. package/dist/domain/member/MemberRepository.js +2 -0
  39. package/dist/domain/member/index.d.ts +3 -0
  40. package/dist/domain/member/index.js +19 -0
  41. package/dist/domain/value-objects/Departments.d.ts +7 -0
  42. package/dist/domain/value-objects/Departments.js +22 -0
  43. package/dist/domain/value-objects/Email.d.ts +4 -0
  44. package/dist/domain/value-objects/Email.js +12 -0
  45. package/dist/domain/value-objects/UniversityEmail.d.ts +4 -0
  46. package/dist/domain/value-objects/UniversityEmail.js +13 -0
  47. package/dist/domain/value-objects/ValueObject.d.ts +8 -0
  48. package/dist/domain/value-objects/ValueObject.js +24 -0
  49. package/dist/domain/value-objects/index.d.ts +4 -0
  50. package/dist/domain/value-objects/index.js +20 -0
  51. package/dist/executable/index.d.ts +1 -0
  52. package/dist/{errors → executable}/index.js +1 -1
  53. package/dist/executable/member.d.ts +12 -0
  54. package/dist/executable/member.js +18 -0
  55. package/dist/index.d.ts +2 -3
  56. package/dist/index.js +2 -16
  57. package/dist/infrastructure/index.d.ts +1 -0
  58. package/dist/infrastructure/index.js +17 -0
  59. package/dist/infrastructure/prisma/PrismaMemberRepository.d.ts +11 -0
  60. package/dist/infrastructure/prisma/PrismaMemberRepository.js +95 -0
  61. package/dist/infrastructure/prisma/index.d.ts +1 -0
  62. package/dist/infrastructure/prisma/index.js +17 -0
  63. package/package.json +48 -45
  64. package/dist/errors/index.d.ts +0 -1
  65. package/dist/errors/prismaErrors.d.ts +0 -281
  66. package/dist/errors/prismaErrors.js +0 -749
@@ -0,0 +1,12 @@
1
+ export declare class ApplicationException extends Error {
2
+ constructor(message: string);
3
+ }
4
+ export declare class MemberEmailAlreadyExistsException extends ApplicationException {
5
+ constructor(message?: string);
6
+ }
7
+ export declare class MemberNotFoundException extends ApplicationException {
8
+ constructor(message?: string);
9
+ }
10
+ export declare class DiscordAccountNotConnectedException extends ApplicationException {
11
+ constructor(message?: string);
12
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DiscordAccountNotConnectedException = exports.MemberNotFoundException = exports.MemberEmailAlreadyExistsException = exports.ApplicationException = void 0;
4
+ class ApplicationException extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ this.name = "ApplicationException";
8
+ }
9
+ }
10
+ exports.ApplicationException = ApplicationException;
11
+ class MemberEmailAlreadyExistsException extends ApplicationException {
12
+ constructor(message = "このメールアドレスは既に登録されています") {
13
+ super(message);
14
+ this.name = "MemberEmailAlreadyExistsException";
15
+ }
16
+ }
17
+ exports.MemberEmailAlreadyExistsException = MemberEmailAlreadyExistsException;
18
+ class MemberNotFoundException extends ApplicationException {
19
+ constructor(message = "メンバーが見つかりません") {
20
+ super(message);
21
+ this.name = "MemberNotFoundException";
22
+ }
23
+ }
24
+ exports.MemberNotFoundException = MemberNotFoundException;
25
+ class DiscordAccountNotConnectedException extends ApplicationException {
26
+ constructor(message = "このDiscordアカウントは紐づいていません") {
27
+ super(message);
28
+ this.name = "DiscordAccountNotConnectedException";
29
+ }
30
+ }
31
+ exports.DiscordAccountNotConnectedException = DiscordAccountNotConnectedException;
@@ -0,0 +1 @@
1
+ export * from "./ApplicationExceptions";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ApplicationExceptions"), exports);
@@ -0,0 +1,2 @@
1
+ export * from "./usecase";
2
+ export * from "./exceptions";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./usecase"), exports);
18
+ __exportStar(require("./exceptions"), exports);
@@ -0,0 +1,8 @@
1
+ /**
2
+ * ユースケースの基底インターフェース
3
+ * TInputはユースケースへの入力型
4
+ * TOutputはユースケースからの出力型
5
+ */
6
+ export interface IUseCase<TInput, TOutput> {
7
+ execute(input: TInput): Promise<TOutput>;
8
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,12 @@
1
+ import type { Member, MemberRepository } from "../../domain";
2
+ import type { IUseCase } from "./BaseUseCase";
3
+ export interface ChangeDiscordNickNameInput {
4
+ discordAccountId: string;
5
+ discordNickName: string;
6
+ }
7
+ export type ChangeDiscordNickNameOutput = Member;
8
+ export declare class ChangeDiscordNickNameUseCase implements IUseCase<ChangeDiscordNickNameInput, ChangeDiscordNickNameOutput> {
9
+ private readonly memberRepo;
10
+ constructor(memberRepo: MemberRepository);
11
+ execute(input: ChangeDiscordNickNameInput): Promise<ChangeDiscordNickNameOutput>;
12
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChangeDiscordNickNameUseCase = void 0;
4
+ const ApplicationExceptions_1 = require("../exceptions/ApplicationExceptions");
5
+ class ChangeDiscordNickNameUseCase {
6
+ constructor(memberRepo) {
7
+ this.memberRepo = memberRepo;
8
+ }
9
+ async execute(input) {
10
+ const member = await this.memberRepo.findByDiscordAccountId(input.discordAccountId);
11
+ if (!member) {
12
+ throw new ApplicationExceptions_1.MemberNotFoundException();
13
+ }
14
+ const discordAccount = member.getDiscordAccountById(input.discordAccountId);
15
+ if (!discordAccount) {
16
+ throw new ApplicationExceptions_1.DiscordAccountNotConnectedException();
17
+ }
18
+ discordAccount.setNickName(input.discordNickName);
19
+ await this.memberRepo.save(member);
20
+ return member;
21
+ }
22
+ }
23
+ exports.ChangeDiscordNickNameUseCase = ChangeDiscordNickNameUseCase;
@@ -0,0 +1,13 @@
1
+ import { type Member, type MemberRepository } from "../../domain";
2
+ import type { IUseCase } from "./BaseUseCase";
3
+ export interface ConnectDiscordAccountInput {
4
+ memberId: string;
5
+ discordAccountId: string;
6
+ discordNickName?: string;
7
+ }
8
+ export type ConnectDiscordAccountOutput = Member;
9
+ export declare class ConnectDiscordAccountUseCase implements IUseCase<ConnectDiscordAccountInput, ConnectDiscordAccountOutput> {
10
+ private readonly memberRepo;
11
+ constructor(memberRepo: MemberRepository);
12
+ execute(input: ConnectDiscordAccountInput): Promise<ConnectDiscordAccountOutput>;
13
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConnectDiscordAccountUseCase = void 0;
4
+ const domain_1 = require("../../domain");
5
+ const ApplicationExceptions_1 = require("../exceptions/ApplicationExceptions");
6
+ class ConnectDiscordAccountUseCase {
7
+ constructor(memberRepo) {
8
+ this.memberRepo = memberRepo;
9
+ }
10
+ async execute(input) {
11
+ var _a;
12
+ const member = await this.memberRepo.findById(input.memberId);
13
+ if (!member) {
14
+ throw new ApplicationExceptions_1.MemberNotFoundException();
15
+ }
16
+ const discordAccount = new domain_1.DiscordAccount(input.discordAccountId, (_a = input.discordNickName) !== null && _a !== void 0 ? _a : "", member.id);
17
+ member.addDiscordAccount(discordAccount);
18
+ await this.memberRepo.save(member);
19
+ return member;
20
+ }
21
+ }
22
+ exports.ConnectDiscordAccountUseCase = ConnectDiscordAccountUseCase;
@@ -0,0 +1,11 @@
1
+ import type { Member, MemberRepository } from "../../domain";
2
+ import type { IUseCase } from "./BaseUseCase";
3
+ export interface GetMemberInput {
4
+ id: string;
5
+ }
6
+ export type GetMemberOutput = Member | null;
7
+ export declare class GetMemberUseCase implements IUseCase<GetMemberInput, GetMemberOutput> {
8
+ private readonly memberRepo;
9
+ constructor(memberRepo: MemberRepository);
10
+ execute(input: GetMemberInput): Promise<GetMemberOutput>;
11
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetMemberUseCase = void 0;
4
+ class GetMemberUseCase {
5
+ constructor(memberRepo) {
6
+ this.memberRepo = memberRepo;
7
+ }
8
+ async execute(input) {
9
+ return await this.memberRepo.findById(input.id);
10
+ }
11
+ }
12
+ exports.GetMemberUseCase = GetMemberUseCase;
@@ -0,0 +1,11 @@
1
+ import type { Member, MemberRepository } from "../../domain";
2
+ import type { IUseCase } from "./BaseUseCase";
3
+ export interface GetMemberByDiscordIdInput {
4
+ discordId: string;
5
+ }
6
+ export type GetMemberByDiscordIdOutput = Member | null;
7
+ export declare class GetMemberByDiscordIdUseCase implements IUseCase<GetMemberByDiscordIdInput, GetMemberByDiscordIdOutput> {
8
+ private readonly memberRepo;
9
+ constructor(memberRepo: MemberRepository);
10
+ execute(input: GetMemberByDiscordIdInput): Promise<GetMemberByDiscordIdOutput>;
11
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetMemberByDiscordIdUseCase = void 0;
4
+ class GetMemberByDiscordIdUseCase {
5
+ constructor(memberRepo) {
6
+ this.memberRepo = memberRepo;
7
+ }
8
+ async execute(input) {
9
+ return await this.memberRepo.findByDiscordAccountId(input.discordId);
10
+ }
11
+ }
12
+ exports.GetMemberByDiscordIdUseCase = GetMemberByDiscordIdUseCase;
@@ -0,0 +1,11 @@
1
+ import type { Member, MemberRepository } from "../../domain";
2
+ import type { IUseCase } from "./BaseUseCase";
3
+ export interface GetMemberByEmailInput {
4
+ email: string;
5
+ }
6
+ export type GetMemberByEmailOutput = Member | null;
7
+ export declare class GetMemberByEmailUseCase implements IUseCase<GetMemberByEmailInput, GetMemberByEmailOutput> {
8
+ private readonly memberRepo;
9
+ constructor(memberRepo: MemberRepository);
10
+ execute(input: GetMemberByEmailInput): Promise<GetMemberByEmailOutput>;
11
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetMemberByEmailUseCase = void 0;
4
+ class GetMemberByEmailUseCase {
5
+ constructor(memberRepo) {
6
+ this.memberRepo = memberRepo;
7
+ }
8
+ async execute(input) {
9
+ return await this.memberRepo.findByEmail(input.email);
10
+ }
11
+ }
12
+ exports.GetMemberByEmailUseCase = GetMemberByEmailUseCase;
@@ -0,0 +1,9 @@
1
+ import type { Member, MemberRepository } from "../../domain";
2
+ import type { IUseCase } from "./BaseUseCase";
3
+ export type GetMemberListInput = Record<string, never>;
4
+ export type GetMemberListOutput = Member[];
5
+ export declare class GetMemberListUseCase implements IUseCase<GetMemberListInput, GetMemberListOutput> {
6
+ private readonly memberRepo;
7
+ constructor(memberRepo: MemberRepository);
8
+ execute(_input: GetMemberListInput): Promise<GetMemberListOutput>;
9
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetMemberListUseCase = void 0;
4
+ class GetMemberListUseCase {
5
+ constructor(memberRepo) {
6
+ this.memberRepo = memberRepo;
7
+ }
8
+ async execute(_input) {
9
+ return await this.memberRepo.findAll();
10
+ }
11
+ }
12
+ exports.GetMemberListUseCase = GetMemberListUseCase;
@@ -0,0 +1,17 @@
1
+ import { Member, type MemberRepository } from "../../domain";
2
+ import type { IUseCase } from "./BaseUseCase";
3
+ export interface RegisterMemberInput {
4
+ name: string;
5
+ studentId: string;
6
+ department: string;
7
+ email: string;
8
+ personalEmail?: string;
9
+ discordAccountId?: string;
10
+ discordNickName?: string;
11
+ }
12
+ export type RegisterMemberOutput = Member;
13
+ export declare class RegisterMemberUseCase implements IUseCase<RegisterMemberInput, RegisterMemberOutput> {
14
+ private readonly memberRepo;
15
+ constructor(memberRepo: MemberRepository);
16
+ execute(input: RegisterMemberInput): Promise<RegisterMemberOutput>;
17
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RegisterMemberUseCase = void 0;
4
+ const uuid_1 = require("uuid");
5
+ const domain_1 = require("../../domain");
6
+ const ApplicationExceptions_1 = require("../exceptions/ApplicationExceptions");
7
+ class RegisterMemberUseCase {
8
+ constructor(memberRepo) {
9
+ this.memberRepo = memberRepo;
10
+ }
11
+ async execute(input) {
12
+ // TODO: この入力値のバリデーションはUsecaseが本来着目するべき処理の流れという関心事では無い
13
+ if (input.discordNickName) {
14
+ if (!input.discordAccountId) {
15
+ throw new ApplicationExceptions_1.DiscordAccountNotConnectedException();
16
+ }
17
+ }
18
+ const existingMember = await this.memberRepo.findByEmail(input.email);
19
+ if (existingMember) {
20
+ throw new ApplicationExceptions_1.MemberEmailAlreadyExistsException();
21
+ }
22
+ const universityEmail = new domain_1.UniversityEmail(input.email);
23
+ const personalEmail = input.personalEmail
24
+ ? new domain_1.Email(input.personalEmail)
25
+ : undefined;
26
+ const member = new domain_1.Member((0, uuid_1.v4)(), input.name, input.studentId, domain_1.Department.fromString(input.department), universityEmail, personalEmail);
27
+ if (input.discordAccountId && input.discordNickName) {
28
+ const discordAccount = new domain_1.DiscordAccount(input.discordAccountId, input.discordNickName, member.id);
29
+ member.addDiscordAccount(discordAccount);
30
+ }
31
+ await this.memberRepo.save(member);
32
+ return member;
33
+ }
34
+ }
35
+ exports.RegisterMemberUseCase = RegisterMemberUseCase;
@@ -0,0 +1,27 @@
1
+ import { type Member, type MemberRepository } from "../../domain";
2
+ import type { IUseCase } from "./BaseUseCase";
3
+ export interface UpdateMemberInput {
4
+ memberId: string;
5
+ name?: string;
6
+ studentId?: string;
7
+ department?: string;
8
+ email?: string;
9
+ personalEmail?: string;
10
+ discordAccountId?: string;
11
+ discordNickName?: string;
12
+ }
13
+ export type UpdateMemberOutput = Member;
14
+ export declare class UpdateMemberUseCase implements IUseCase<UpdateMemberInput, UpdateMemberOutput> {
15
+ private readonly memberRepo;
16
+ constructor(memberRepo: MemberRepository);
17
+ execute(input: {
18
+ memberId: string;
19
+ name?: string;
20
+ studentId?: string;
21
+ department?: string;
22
+ email?: string;
23
+ personalEmail?: string;
24
+ discordAccountId?: string;
25
+ discordNickName?: string;
26
+ }): Promise<Member>;
27
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateMemberUseCase = void 0;
4
+ const domain_1 = require("../../domain");
5
+ const ApplicationExceptions_1 = require("../exceptions/ApplicationExceptions");
6
+ class UpdateMemberUseCase {
7
+ constructor(memberRepo) {
8
+ this.memberRepo = memberRepo;
9
+ }
10
+ async execute(input) {
11
+ const member = await this.memberRepo.findById(input.memberId);
12
+ if (!member) {
13
+ throw new ApplicationExceptions_1.MemberNotFoundException();
14
+ }
15
+ if (input.name) {
16
+ member.setName(input.name);
17
+ }
18
+ if (input.studentId) {
19
+ member.setStudentId(input.studentId);
20
+ }
21
+ if (input.department) {
22
+ member.setDepartment(domain_1.Department.fromString(input.department));
23
+ }
24
+ if (input.email) {
25
+ member.setEmail(new domain_1.UniversityEmail(input.email));
26
+ }
27
+ if (input.personalEmail) {
28
+ member.setPersonalEmail(new domain_1.Email(input.personalEmail));
29
+ }
30
+ if (input.discordAccountId && input.discordNickName) {
31
+ const discordAccount = new domain_1.DiscordAccount(input.discordAccountId, input.discordNickName, member.id);
32
+ member.addDiscordAccount(discordAccount);
33
+ }
34
+ await this.memberRepo.save(member);
35
+ return member;
36
+ }
37
+ }
38
+ exports.UpdateMemberUseCase = UpdateMemberUseCase;
@@ -0,0 +1,9 @@
1
+ export * from "./BaseUseCase";
2
+ export * from "./ChangeDiscordNickName";
3
+ export * from "./ConnectDiscordAccount";
4
+ export * from "./GetMember";
5
+ export * from "./GetMemberByEmail";
6
+ export * from "./GetMemberByDiscordId";
7
+ export * from "./GetMemberList";
8
+ export * from "./RegisterMember";
9
+ export * from "./UpdateMember";
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./BaseUseCase"), exports);
18
+ __exportStar(require("./ChangeDiscordNickName"), exports);
19
+ __exportStar(require("./ConnectDiscordAccount"), exports);
20
+ __exportStar(require("./GetMember"), exports);
21
+ __exportStar(require("./GetMemberByEmail"), exports);
22
+ __exportStar(require("./GetMemberByDiscordId"), exports);
23
+ __exportStar(require("./GetMemberList"), exports);
24
+ __exportStar(require("./RegisterMember"), exports);
25
+ __exportStar(require("./UpdateMember"), exports);
@@ -0,0 +1,21 @@
1
+ export declare class DomainException extends Error {
2
+ constructor(message: string);
3
+ }
4
+ export declare class InvalidMemberException extends DomainException {
5
+ constructor(message?: string);
6
+ }
7
+ export declare class InvalidEmailFormatException extends DomainException {
8
+ constructor(message?: string);
9
+ }
10
+ export declare class DiscordAccountAlreadyConnectedException extends DomainException {
11
+ constructor(message?: string);
12
+ }
13
+ export declare class DiscordAccountNotConnectedException extends DomainException {
14
+ constructor(message?: string);
15
+ }
16
+ export declare class InvalidUniversityEmailException extends DomainException {
17
+ constructor(message?: string);
18
+ }
19
+ export declare class InvalidDepartmentException extends DomainException {
20
+ constructor(message?: string);
21
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidDepartmentException = exports.InvalidUniversityEmailException = exports.DiscordAccountNotConnectedException = exports.DiscordAccountAlreadyConnectedException = exports.InvalidEmailFormatException = exports.InvalidMemberException = exports.DomainException = void 0;
4
+ class DomainException extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ this.name = "DomainException";
8
+ }
9
+ }
10
+ exports.DomainException = DomainException;
11
+ class InvalidMemberException extends DomainException {
12
+ constructor(message = "無効なメンバーです") {
13
+ super(message);
14
+ this.name = "InvalidMemberException";
15
+ }
16
+ }
17
+ exports.InvalidMemberException = InvalidMemberException;
18
+ class InvalidEmailFormatException extends DomainException {
19
+ constructor(message = "無効なメールアドレスの形式です") {
20
+ super(message);
21
+ this.name = "InvalidEmailFormatException";
22
+ }
23
+ }
24
+ exports.InvalidEmailFormatException = InvalidEmailFormatException;
25
+ class DiscordAccountAlreadyConnectedException extends DomainException {
26
+ constructor(message = "同じDiscordアカウントがすでにユーザーに紐づいています") {
27
+ super(message);
28
+ this.name = "DiscordAccountAlreadyConnectedException";
29
+ }
30
+ }
31
+ exports.DiscordAccountAlreadyConnectedException = DiscordAccountAlreadyConnectedException;
32
+ class DiscordAccountNotConnectedException extends DomainException {
33
+ constructor(message = "指定されたDiscordアカウントがユーザーに紐づいていません") {
34
+ super(message);
35
+ this.name = "DiscordAccountNotConnectedException";
36
+ }
37
+ }
38
+ exports.DiscordAccountNotConnectedException = DiscordAccountNotConnectedException;
39
+ class InvalidUniversityEmailException extends DomainException {
40
+ constructor(message = "無効な大学のメールアドレスです") {
41
+ super(message);
42
+ this.name = "InvalidUniversityEmailException";
43
+ }
44
+ }
45
+ exports.InvalidUniversityEmailException = InvalidUniversityEmailException;
46
+ class InvalidDepartmentException extends DomainException {
47
+ constructor(message = "無効な学部識別子です") {
48
+ super(message);
49
+ this.name = "InvalidDepartmentException";
50
+ }
51
+ }
52
+ exports.InvalidDepartmentException = InvalidDepartmentException;
@@ -0,0 +1 @@
1
+ export * from "./DomainExceptions";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./DomainExceptions"), exports);
@@ -0,0 +1,3 @@
1
+ export * from "./member";
2
+ export * from "./value-objects";
3
+ export * from "./exceptions";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./member"), exports);
18
+ __exportStar(require("./value-objects"), exports);
19
+ __exportStar(require("./exceptions"), exports);
@@ -0,0 +1,8 @@
1
+ export declare class DiscordAccount {
2
+ readonly id: string;
3
+ nickName: string;
4
+ memberId: string;
5
+ constructor(id: string, // Discord ID
6
+ nickName: string, memberId: string);
7
+ setNickName(newNickName: string): void;
8
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DiscordAccount = void 0;
4
+ class DiscordAccount {
5
+ constructor(id, // Discord ID
6
+ nickName, memberId) {
7
+ this.id = id;
8
+ this.nickName = nickName;
9
+ this.memberId = memberId;
10
+ }
11
+ setNickName(newNickName) {
12
+ this.nickName = newNickName;
13
+ }
14
+ }
15
+ exports.DiscordAccount = DiscordAccount;
@@ -0,0 +1,23 @@
1
+ import type { Department } from "../value-objects/Departments";
2
+ import type { Email } from "../value-objects/Email";
3
+ import type { UniversityEmail } from "../value-objects/UniversityEmail";
4
+ import type { DiscordAccount } from "./DiscordAccount";
5
+ export declare class Member {
6
+ readonly id: string;
7
+ name: string;
8
+ studentId: string;
9
+ department: Department;
10
+ email: UniversityEmail;
11
+ personalEmail?: Email | undefined;
12
+ private discordAccounts;
13
+ constructor(id: string, name: string, studentId: string, department: Department, email: UniversityEmail, personalEmail?: Email | undefined);
14
+ setName(newName: string): void;
15
+ setStudentId(newStudentId: string): void;
16
+ setDepartment(newDepartment: Department): void;
17
+ setEmail(newEmail: UniversityEmail): void;
18
+ setPersonalEmail(newPersonalEmail?: Email): void;
19
+ addDiscordAccount(discordAccount: DiscordAccount): void;
20
+ removeDiscordAccount(discordAccountId: string): void;
21
+ getDiscordAccounts(): DiscordAccount[];
22
+ getDiscordAccountById(discordAccountId: string): DiscordAccount | undefined;
23
+ }