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