File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -15,7 +15,7 @@ export function useInsightsOrgTeams() {
1515 const teamId = orgTeamsType === "org" ? currentOrgId : orgTeamsType === "team" ? selectedTeamId : undefined ;
1616 const userId = orgTeamsType === "yours" ? session . data ?. user . id : undefined ;
1717
18- // Adding `scope` for InsightsRoutingService
18+ // Adding `scope` for InsightsRoutingBaseService
1919 // (renaming 'yours' to 'user')
2020 const scope : "org" | "team" | "user" = orgTeamsType === "yours" ? "user" : orgTeamsType ;
2121
Original file line number Diff line number Diff line change @@ -10,8 +10,8 @@ import {
1010 routingRepositoryBaseInputSchema ,
1111 bookingRepositoryBaseInputSchema ,
1212} from "@calcom/features/insights/server/raw-data.schema" ;
13+ import { getInsightsRoutingService } from "@calcom/lib/di/containers/insights-routing" ;
1314import { InsightsBookingService } from "@calcom/lib/server/service/insightsBooking" ;
14- import { InsightsRoutingService } from "@calcom/lib/server/service/insightsRouting" ;
1515import type { readonlyPrisma } from "@calcom/prisma" ;
1616import { BookingStatus } from "@calcom/prisma/enums" ;
1717import authedProcedure from "@calcom/trpc/server/procedures/authedProcedure" ;
@@ -1688,8 +1688,7 @@ export const insightsRouter = router({
16881688 timeView,
16891689 weekStart : ctx . user . weekStart ,
16901690 } ) ;
1691- const insightsRoutingService = new InsightsRoutingService ( {
1692- prisma : ctx . insightsDb ,
1691+ const insightsRoutingService = getInsightsRoutingService ( {
16931692 options : {
16941693 scope : input . scope ,
16951694 teamId : input . selectedTeamId ,
Original file line number Diff line number Diff line change 1+ import { createContainer } from "@evyweb/ioctopus" ;
2+
3+ import { DI_TOKENS } from "@calcom/lib/di/tokens" ;
4+ import type {
5+ InsightsRoutingServicePublicOptions ,
6+ InsightsRoutingServiceFilterOptions ,
7+ InsightsRoutingBaseService ,
8+ } from "@calcom/lib/server/service/insightsRoutingBase" ;
9+ import type { InsightsRoutingService } from "@calcom/lib/server/service/insightsRoutingDI" ;
10+ import { prismaModule } from "@calcom/prisma/prisma.module" ;
11+
12+ import { insightsRoutingModule } from "../modules/insights-routing" ;
13+
14+ export function getInsightsRoutingService ( {
15+ options,
16+ filters,
17+ } : {
18+ options : InsightsRoutingServicePublicOptions ;
19+ filters : InsightsRoutingServiceFilterOptions ;
20+ } ) : InsightsRoutingBaseService {
21+ const container = createContainer ( ) ;
22+ container . load ( DI_TOKENS . READ_ONLY_PRISMA_CLIENT , prismaModule ) ;
23+ container . load ( DI_TOKENS . INSIGHTS_ROUTING_SERVICE_MODULE , insightsRoutingModule ) ;
24+
25+ const diService = container . get < InsightsRoutingService > ( DI_TOKENS . INSIGHTS_ROUTING_SERVICE ) ;
26+ return diService . create ( { options, filters } ) ;
27+ }
Original file line number Diff line number Diff line change 1+ import { createModule } from "@evyweb/ioctopus" ;
2+
3+ import type { IInsightsRoutingService } from "@calcom/lib/server/service/insightsRoutingDI" ;
4+ import { InsightsRoutingService } from "@calcom/lib/server/service/insightsRoutingDI" ;
5+
6+ import { DI_TOKENS } from "../tokens" ;
7+
8+ export const insightsRoutingModule = createModule ( ) ;
9+ insightsRoutingModule . bind ( DI_TOKENS . INSIGHTS_ROUTING_SERVICE ) . toClass ( InsightsRoutingService , {
10+ prisma : DI_TOKENS . READ_ONLY_PRISMA_CLIENT ,
11+ } satisfies Record < keyof IInsightsRoutingService , symbol > ) ;
Original file line number Diff line number Diff line change @@ -20,4 +20,6 @@ export const DI_TOKENS = {
2020 ROUTING_FORM_RESPONSE_REPOSITORY_MODULE : Symbol ( "RoutingFormResponseRepositoryModule" ) ,
2121 AVAILABLE_SLOTS_SERVICE : Symbol ( "AvailableSlotsService" ) ,
2222 AVAILABLE_SLOTS_SERVICE_MODULE : Symbol ( "AvailableSlotsModule" ) ,
23+ INSIGHTS_ROUTING_SERVICE : Symbol ( "InsightsRoutingService" ) ,
24+ INSIGHTS_ROUTING_SERVICE_MODULE : Symbol ( "InsightsRoutingServiceModule" ) ,
2325} ;
Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ import { ColumnFilterType } from "@calcom/features/data-table/lib/types";
77import prisma from "@calcom/prisma" ;
88import { BookingStatus , MembershipRole } from "@calcom/prisma/enums" ;
99
10- import { InsightsRoutingService } from "../../service/insightsRouting " ;
10+ import { InsightsRoutingBaseService as InsightsRoutingService } from "../../service/insightsRoutingBase " ;
1111
1212// SQL condition constants for testing
1313const NOTHING_CONDITION = Prisma . sql `1=0` ;
Original file line number Diff line number Diff line change @@ -53,7 +53,7 @@ export type InsightsRoutingServiceFilterOptions = {
5353
5454const NOTHING_CONDITION = Prisma . sql `1=0` ;
5555
56- export class InsightsRoutingService {
56+ export class InsightsRoutingBaseService {
5757 private prisma : typeof readonlyPrisma ;
5858 private options : InsightsRoutingServiceOptions | null ;
5959 private filters : InsightsRoutingServiceFilterOptions ;
Original file line number Diff line number Diff line change 1+ import type { readonlyPrisma } from "@calcom/prisma" ;
2+
3+ import {
4+ InsightsRoutingBaseService ,
5+ type InsightsRoutingServicePublicOptions ,
6+ type InsightsRoutingServiceFilterOptions ,
7+ } from "./insightsRoutingBase" ;
8+
9+ export interface IInsightsRoutingService {
10+ prisma : typeof readonlyPrisma ;
11+ }
12+
13+ export class InsightsRoutingService {
14+ constructor ( private readonly dependencies : IInsightsRoutingService ) { }
15+
16+ create ( {
17+ options,
18+ filters,
19+ } : {
20+ options : InsightsRoutingServicePublicOptions ;
21+ filters : InsightsRoutingServiceFilterOptions ;
22+ } ) : InsightsRoutingBaseService {
23+ return new InsightsRoutingBaseService ( {
24+ prisma : this . dependencies . prisma ,
25+ options,
26+ filters,
27+ } ) ;
28+ }
29+ }
You can’t perform that action at this time.
0 commit comments