9
9
Body ,
10
10
Get ,
11
11
Tags ,
12
+ FieldErrors ,
13
+ ValidateError ,
12
14
} from 'tsoa' ;
13
15
import { KeystoneService } from '../ioc/keystoneInjector' ;
14
16
import { inject , injectable } from 'tsyringe' ;
@@ -19,6 +21,11 @@ import { getOrgNamespaces } from '../../services/workflow/get-namespaces';
19
21
import { getAccessRequestsByNamespace } from '../../services/keystone' ;
20
22
import { OrgAccessRequest , OrgAccessRequestCreateInput } from './types-extra' ;
21
23
import { OrgAccessRequestCreate } from '../../services/workflow/org-access-request' ;
24
+ import { Logger } from '../../logger' ;
25
+ import { gql } from 'graphql-request' ;
26
+ import { data } from 'msw/lib/types/context' ;
27
+
28
+ const logger = Logger ( 'controllers.OrgAccessReq' ) ;
22
29
23
30
@injectable ( )
24
31
@Route ( '/organizations' )
@@ -76,17 +83,34 @@ export class OrgAccessRequestsController extends Controller {
76
83
@Path ( ) org : string ,
77
84
@Body ( ) body : OrgAccessRequestCreateInput ,
78
85
@Request ( ) request : any
79
- ) : Promise < OrgAccessRequest > {
80
- const ctx = this . keystone . createContext ( request , true ) ;
81
-
82
-
83
- const userId = body . userId ;
84
-
85
- //const userId = ctx.authedItem.userId
86
+ ) : Promise < { id : string } > {
86
87
87
- const result = await OrgAccessRequestCreate ( ctx , org , body . orgMemberId , userId ,
88
- body . consumerProductEnvAppId , body . providerProductEnvAppId , body . businessProcess , body . accessPointDN , body . optionalClientScopes ) ;
88
+ const result = await this . keystone . executeGraphQL ( {
89
+ context : this . keystone . createContext ( request ) ,
90
+ query : createAccessRequest ,
91
+ variables : { data : body } ,
92
+ } ) ;
93
+ logger . debug ( 'Result %j' , result ) ;
94
+ if ( result . errors ) {
95
+ const errors : FieldErrors = { } ;
96
+ result . errors . forEach ( ( err : any , ind : number ) => {
97
+ errors [ `d${ ind } ` ] = { message : err . message } ;
98
+ } ) ;
99
+ logger . error ( '%j' , result ) ;
100
+ throw new ValidateError ( errors , 'Unable to create Gateway' ) ;
101
+ }
102
+ return {
103
+ id : result . data . orgAccessRequest . id ,
104
+ } ;
89
105
90
- return result . accessRequest as any
91
106
}
92
107
}
108
+
109
+ const createAccessRequest = gql `
110
+ mutation OrgAccessRequestCreate($data: OrgAccessRequestCreateInput!) {
111
+ orgAccessRequest(data: $data) {
112
+ id
113
+ }
114
+ }
115
+ ` ;
116
+
0 commit comments