1- import { PrismaClient , prisma } from "~/db.server" ;
1+ import { $replica , PrismaClient , PrismaReplicaClient , prisma } from "~/db.server" ;
22import { Project } from "~/models/project.server" ;
33import { User } from "~/models/user.server" ;
44import { EnvironmentVariablesRepository } from "~/v3/environmentVariables/environmentVariablesRepository.server" ;
@@ -15,13 +15,15 @@ export type EnvironmentVariableWithSetValues = Result["environmentVariables"][nu
1515
1616export class EnvironmentVariablesPresenter {
1717 #prismaClient: PrismaClient ;
18+ #replicaClient: PrismaReplicaClient ;
1819
19- constructor ( prismaClient : PrismaClient = prisma ) {
20+ constructor ( prismaClient : PrismaClient = prisma , replicaClient : PrismaReplicaClient = $replica ) {
2021 this . #prismaClient = prismaClient ;
22+ this . #replicaClient = replicaClient ;
2123 }
2224
2325 public async call ( { userId, projectSlug } : { userId : User [ "id" ] ; projectSlug : Project [ "slug" ] } ) {
24- const project = await this . #prismaClient . project . findFirst ( {
26+ const project = await this . #replicaClient . project . findFirst ( {
2527 select : {
2628 id : true ,
2729 } ,
@@ -43,7 +45,7 @@ export class EnvironmentVariablesPresenter {
4345
4446 const { environments : sortedEnvironments , hasStaging } =
4547 await loadEnvironmentVariablesEnvironments (
46- this . #prismaClient ,
48+ this . #replicaClient ,
4749 { userId, projectId : project . id } ,
4850 { skipProjectAccessCheck : true }
4951 ) ;
@@ -52,7 +54,7 @@ export class EnvironmentVariablesPresenter {
5254 // values in archived branch environments, which would otherwise all be loaded here.
5355 const environmentIds = sortedEnvironments . map ( ( env ) => env . id ) ;
5456
55- const environmentVariables = await this . #prismaClient . environmentVariable . findMany ( {
57+ const environmentVariables = await this . #replicaClient . environmentVariable . findMany ( {
5658 select : {
5759 id : true ,
5860 key : true ,
@@ -100,7 +102,7 @@ export class EnvironmentVariablesPresenter {
100102
101103 const users =
102104 userIds . size > 0
103- ? await this . #prismaClient . user . findMany ( {
105+ ? await this . #replicaClient . user . findMany ( {
104106 where : {
105107 id : {
106108 in : Array . from ( userIds ) ,
@@ -118,7 +120,7 @@ export class EnvironmentVariablesPresenter {
118120 const usersRecord : Record < string , { id : string ; name : string | null ; displayName : string | null ; avatarUrl : string | null } > =
119121 Object . fromEntries ( users . map ( ( u ) => [ u . id , u ] ) ) ;
120122
121- const repository = new EnvironmentVariablesRepository ( this . #prismaClient) ;
123+ const repository = new EnvironmentVariablesRepository ( this . #prismaClient, this . #replicaClient ) ;
122124
123125 const nonSecretItems : Array < { environmentId : string ; key : string } > = [ ] ;
124126 for ( const environmentVariable of environmentVariables ) {
0 commit comments