1
1
import { parseJwt } from '../../Utils.js' ;
2
2
import jwt from 'jsonwebtoken' ;
3
+
4
+ async function getTenantByUserId ( userId ) {
5
+ try {
6
+ const query = new Parse . Query ( 'contracts_Users' ) ;
7
+ query . equalTo ( 'UserId' , {
8
+ __type : 'Pointer' ,
9
+ className : '_User' ,
10
+ objectId : userId ,
11
+ } ) ;
12
+ const extuser = await query . first ( { useMasterKey : true } ) ;
13
+ if ( extuser ) {
14
+ const user = extuser ?. get ( 'CreatedBy' ) ?. id || userId ;
15
+ const tenantCreditsQuery = new Parse . Query ( 'partners_Tenant' ) ;
16
+ tenantCreditsQuery . equalTo ( 'UserId' , {
17
+ __type : 'Pointer' ,
18
+ className : '_User' ,
19
+ objectId : user ,
20
+ } ) ;
21
+ tenantCreditsQuery . exclude ( 'FileAdapters' ) ;
22
+ tenantCreditsQuery . exclude ( 'PfxFile' ) ;
23
+ const res = await tenantCreditsQuery . first ( { useMasterKey : true } ) ;
24
+ return res ;
25
+ } else {
26
+ return { } ;
27
+ }
28
+ } catch ( err ) {
29
+ console . log ( 'err in getTenant ' , err ) ;
30
+ return 'user does not exist!' ;
31
+ }
32
+ }
3
33
export default async function getTenant ( request ) {
4
34
const jwttoken = request . headers . jwttoken || '' ;
5
35
const userId = request . params . userId || '' ;
@@ -10,50 +40,22 @@ export default async function getTenant(request) {
10
40
const userCls = new Parse . Query ( Parse . User ) ;
11
41
userCls . equalTo ( 'email' , jwtDecode ?. user_email ) ;
12
42
const userRes = await userCls . first ( { useMasterKey : true } ) ;
13
- const userId = userRes ?. id ;
43
+ const apiUserId = userRes ?. id ;
14
44
const tokenQuery = new Parse . Query ( 'appToken' ) ;
15
45
tokenQuery . equalTo ( 'userId' , {
16
46
__type : 'Pointer' ,
17
47
className : '_User' ,
18
- objectId : userId ,
48
+ objectId : apiUserId ,
19
49
} ) ;
20
50
const appRes = await tokenQuery . first ( { useMasterKey : true } ) ;
21
51
const decoded = jwt . verify ( verifyToken , appRes ?. get ( 'token' ) ) ;
22
52
if ( decoded ?. user_email ) {
23
- try {
24
- const tenantCreditsQuery = new Parse . Query ( 'partners_Tenant' ) ;
25
- tenantCreditsQuery . equalTo ( 'UserId' , {
26
- __type : 'Pointer' ,
27
- className : '_User' ,
28
- objectId : userId ,
29
- } ) ;
30
- tenantCreditsQuery . exclude ( 'FileAdapters' ) ;
31
- tenantCreditsQuery . exclude ( 'PfxFile' ) ;
32
- const res = await tenantCreditsQuery . first ( { useMasterKey : true } ) ;
33
- if ( res ) {
34
- return res ;
35
- }
36
- } catch ( e ) {
37
- return 'user does not exist!' ;
38
- }
53
+ return await getTenantByUserId ( apiUserId ) ;
39
54
} else {
40
55
return { status : 'error' , result : 'Invalid token!' } ;
41
56
}
42
57
}
43
58
} else if ( userId ) {
44
- try {
45
- const tenantCreditsQuery = new Parse . Query ( 'partners_Tenant' ) ;
46
- tenantCreditsQuery . equalTo ( 'UserId' , {
47
- __type : 'Pointer' ,
48
- className : '_User' ,
49
- objectId : userId ,
50
- } ) ;
51
- const res = await tenantCreditsQuery . first ( ) ;
52
- if ( res ) {
53
- return res ;
54
- }
55
- } catch ( e ) {
56
- return 'user does not exist!' ;
57
- }
59
+ return await getTenantByUserId ( userId ) ;
58
60
}
59
61
}
0 commit comments