33
apps/web/src/infrastructure/composition.ts
Normal file
33
apps/web/src/infrastructure/composition.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import {
|
||||
updateAdventureItem as updateAdventureItemUseCase,
|
||||
type UpdateAdventureItemDeps,
|
||||
} from "@adventureos/application";
|
||||
import { drizzleActionEventsRepository } from "@/adapters/persistence/drizzle-action-events.repository";
|
||||
import { drizzleAdventureRepository } from "@/adapters/persistence/drizzle-adventure.repository";
|
||||
import { drizzleScoringService } from "@/adapters/persistence/drizzle-scoring.service";
|
||||
import { drizzleXpRepository } from "@/adapters/persistence/drizzle-xp.repository";
|
||||
import { dayOfWeek as getDayOfWeek } from "@/lib/dates";
|
||||
|
||||
const adventureDeps: UpdateAdventureItemDeps = {
|
||||
adventureRepository: drizzleAdventureRepository,
|
||||
xpRepository: drizzleXpRepository,
|
||||
actionEventsRepository: drizzleActionEventsRepository,
|
||||
scoringService: drizzleScoringService,
|
||||
};
|
||||
|
||||
export async function updateAdventureItemViaUseCase(
|
||||
userId: string,
|
||||
date: string,
|
||||
itemId: string,
|
||||
updates: Parameters<typeof updateAdventureItemUseCase>[1]["updates"]
|
||||
) {
|
||||
return updateAdventureItemUseCase(adventureDeps, {
|
||||
userId,
|
||||
date,
|
||||
itemId,
|
||||
dayOfWeek: getDayOfWeek(date),
|
||||
updates,
|
||||
});
|
||||
}
|
||||
|
||||
export { adventureDeps };
|
||||
Reference in New Issue
Block a user