-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
ca749c0
commit b7c1e3b
Showing
20 changed files
with
2,110 additions
and
3,655 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,66 +1,98 @@ | ||
import type Member from "../entities/member"; | ||
import getMembers from "../usecases/getMembers"; | ||
import insertMember from "../usecases/insertMember"; | ||
import setDiscordId from "../usecases/setDiscordId"; | ||
import type { | ||
MemberCreateInput, | ||
CreateDiscordAccountInput, | ||
} from "../infra/repository/IMemberRepository"; | ||
|
||
export async function getAllMembers(): Promise<Member[] | undefined> { | ||
// UseCase のインポート | ||
import getAllMembers from "../usecases/member/getAllMembers"; | ||
import getMemberByEmail from "../usecases/member/getMemberByEmail"; | ||
import getMemberByDiscordId from "../usecases/member/getMemberByDiscordId"; | ||
import insertMember from "../usecases/member/insertMember"; | ||
import connectDiscordAccount from "../usecases/member/connectDiscordAccount"; | ||
|
||
// リポジトリの実装と Prisma のインスタンス(インフラ層) | ||
import MemberRepository from "../infra/repository/memberRepository"; | ||
import prismaClient from "../infra/prisma"; | ||
|
||
// リポジトリインスタンスの生成(DI) | ||
const memberRepository = new MemberRepository(prismaClient); | ||
|
||
/** | ||
* 全メンバー取得エンドポイント | ||
*/ | ||
export async function getAllMembersController(): Promise<Member[]> { | ||
try { | ||
return await getMembers(); | ||
return await getAllMembers(memberRepository); | ||
} catch (error) { | ||
console.error("Error getting members:", error); | ||
return undefined; | ||
throw error; | ||
} | ||
} | ||
|
||
export async function getMemberByEmail( | ||
/** | ||
* メールアドレスからメンバーを取得するエンドポイント | ||
*/ | ||
export async function getMemberByEmailController( | ||
email: string, | ||
): Promise<Member | undefined> { | ||
try { | ||
const members = await getMembers(); | ||
return members.find((m) => m.mail === email); | ||
const member = await getMemberByEmail(memberRepository, email); | ||
if (!member) { | ||
return undefined; | ||
} | ||
return member; | ||
} catch (error) { | ||
console.error("Error getting member by email:", error); | ||
return undefined; | ||
throw error; | ||
} | ||
} | ||
|
||
export async function getMemberByDiscordId( | ||
/** | ||
* Discord IDからメンバーを取得するエンドポイント | ||
*/ | ||
export async function getMemberByDiscordIdController( | ||
discordId: string, | ||
): Promise<Member | undefined> { | ||
try { | ||
const members = await getMembers(); | ||
return members.find((m) => m.discordId === discordId); | ||
const member = await getMemberByDiscordId(memberRepository, discordId); | ||
if (!member) { | ||
return undefined; | ||
} | ||
return member; | ||
} catch (error) { | ||
console.error("Error getting member by discord id:", error); | ||
return undefined; | ||
throw error; | ||
} | ||
} | ||
|
||
export async function addDiscordId( | ||
member: Member, | ||
discordId: string, | ||
): Promise<boolean> { | ||
if (!member.id) { | ||
console.error("Member ID is undefined"); | ||
return false; | ||
} | ||
|
||
/** | ||
* 新規メンバー作成エンドポイント | ||
*/ | ||
export async function addMemberController( | ||
input: MemberCreateInput, | ||
): Promise<Member> { | ||
try { | ||
await setDiscordId(member.id, discordId); | ||
return true; | ||
const member = await insertMember(memberRepository, input); | ||
console.log("Member successfully added"); | ||
return member; | ||
} catch (error) { | ||
console.error("Error adding discord id:", error); | ||
return false; | ||
console.error("Error adding member:", error); | ||
throw error; | ||
} | ||
} | ||
|
||
export async function addMember(memberData: Member): Promise<boolean> { | ||
/** | ||
* Discordアカウントをメンバーに紐付けるエンドポイント | ||
*/ | ||
export async function addDiscordAccountController( | ||
memberId: string, | ||
discordId: string, | ||
): Promise<Member> { | ||
try { | ||
await insertMember(memberData); | ||
console.log("Member successfully added"); | ||
return true; | ||
return await connectDiscordAccount(memberRepository, memberId, discordId); | ||
} catch (error) { | ||
console.error("Error adding member:", error); | ||
return false; | ||
console.error("Error connecting discord account:", error); | ||
throw error; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
import { PrismaClient } from "@shizuoka-its/core"; | ||
|
||
const prismaClient = new PrismaClient(); | ||
|
||
export default prismaClient; |
Oops, something went wrong.