@@ -3,20 +3,24 @@ import { TenantConnection } from '../../database/connection'
3
3
import { getServiceKeyUser } from '../../database/tenant'
4
4
import { getPostgresConnection } from '../../database'
5
5
import { verifyJWT } from '../../auth'
6
+ import { Database , StorageKnexDB } from '../../storage/database'
6
7
7
8
declare module 'fastify' {
8
9
interface FastifyRequest {
9
- db : TenantConnection
10
+ dbConnection : TenantConnection
11
+ db : Database
10
12
}
11
13
}
12
14
13
15
export const db = fastifyPlugin ( async ( fastify ) => {
14
16
fastify . decorateRequest ( 'db' , null )
17
+ fastify . decorateRequest ( 'dbConnection' , null )
18
+
15
19
fastify . addHook ( 'preHandler' , async ( request ) => {
16
20
const adminUser = await getServiceKeyUser ( request . tenantId )
17
21
const userPayload = await verifyJWT < { role ?: string } > ( request . jwt , adminUser . jwtSecret )
18
22
19
- request . db = await getPostgresConnection ( {
23
+ request . dbConnection = await getPostgresConnection ( {
20
24
user : {
21
25
payload : userPayload ,
22
26
jwt : request . jwt ,
@@ -28,11 +32,16 @@ export const db = fastifyPlugin(async (fastify) => {
28
32
path : request . url ,
29
33
method : request . method ,
30
34
} )
35
+
36
+ request . db = new StorageKnexDB ( request . dbConnection , {
37
+ tenantId : request . tenantId ,
38
+ host : request . headers [ 'x-forwarded-host' ] as string ,
39
+ } )
31
40
} )
32
41
33
42
fastify . addHook ( 'onSend' , async ( request , reply , payload ) => {
34
43
if ( request . db ) {
35
- request . db . dispose ( ) . catch ( ( e ) => {
44
+ request . dbConnection . dispose ( ) . catch ( ( e ) => {
36
45
request . log . error ( e , 'Error disposing db connection' )
37
46
} )
38
47
}
@@ -41,13 +50,13 @@ export const db = fastifyPlugin(async (fastify) => {
41
50
42
51
fastify . addHook ( 'onTimeout' , async ( request ) => {
43
52
if ( request . db ) {
44
- await request . db . dispose ( )
53
+ await request . dbConnection . dispose ( )
45
54
}
46
55
} )
47
56
48
57
fastify . addHook ( 'onRequestAbort' , async ( request ) => {
49
58
if ( request . db ) {
50
- await request . db . dispose ( )
59
+ await request . dbConnection . dispose ( )
51
60
}
52
61
} )
53
62
} )
@@ -58,7 +67,7 @@ export const dbSuperUser = fastifyPlugin(async (fastify) => {
58
67
fastify . addHook ( 'preHandler' , async ( request ) => {
59
68
const adminUser = await getServiceKeyUser ( request . tenantId )
60
69
61
- request . db = await getPostgresConnection ( {
70
+ request . dbConnection = await getPostgresConnection ( {
62
71
user : adminUser ,
63
72
superUser : adminUser ,
64
73
tenantId : request . tenantId ,
@@ -67,11 +76,16 @@ export const dbSuperUser = fastifyPlugin(async (fastify) => {
67
76
method : request . method ,
68
77
headers : request . headers ,
69
78
} )
79
+
80
+ request . db = new StorageKnexDB ( request . dbConnection , {
81
+ tenantId : request . tenantId ,
82
+ host : request . headers [ 'x-forwarded-host' ] as string ,
83
+ } )
70
84
} )
71
85
72
86
fastify . addHook ( 'onSend' , async ( request , reply , payload ) => {
73
87
if ( request . db ) {
74
- request . db . dispose ( ) . catch ( ( e ) => {
88
+ request . dbConnection . dispose ( ) . catch ( ( e ) => {
75
89
request . log . error ( e , 'Error disposing db connection' )
76
90
} )
77
91
}
@@ -81,13 +95,13 @@ export const dbSuperUser = fastifyPlugin(async (fastify) => {
81
95
82
96
fastify . addHook ( 'onTimeout' , async ( request ) => {
83
97
if ( request . db ) {
84
- await request . db . dispose ( )
98
+ await request . dbConnection . dispose ( )
85
99
}
86
100
} )
87
101
88
102
fastify . addHook ( 'onRequestAbort' , async ( request ) => {
89
103
if ( request . db ) {
90
- await request . db . dispose ( )
104
+ await request . dbConnection . dispose ( )
91
105
}
92
106
} )
93
107
} )
0 commit comments