@@ -19,18 +19,17 @@ import { useClient } from 'urql';
1919import { FaSave } from 'react-icons/fa' ;
2020import {
2121 ECDSAEncryptionType ,
22- envVarTypes ,
2322 HMACEncryptionType ,
2423 RSAEncryptionType ,
2524 SelectInputType ,
2625 TextAreaInputType ,
2726} from '../constants' ;
2827import InputField from './InputField' ;
28+ import { GenerateKeys , UpdateEnvVariables } from '../graphql/mutation' ;
2929
3030interface propTypes {
31- saveEnvHandler : Function ;
32- variables : envVarTypes ;
33- setVariables : Function ;
31+ jwtType : string ;
32+ getData : Function ;
3433}
3534
3635interface stateVarTypes {
@@ -47,11 +46,7 @@ const initState: stateVarTypes = {
4746 JWT_PUBLIC_KEY : '' ,
4847} ;
4948
50- const GenerateKeysModal = ( {
51- saveEnvHandler,
52- variables,
53- setVariables,
54- } : propTypes ) => {
49+ const GenerateKeysModal = ( { jwtType, getData } : propTypes ) => {
5550 const client = useClient ( ) ;
5651 const toast = useToast ( ) ;
5752 const { isOpen, onOpen, onClose } = useDisclosure ( ) ;
@@ -60,57 +55,72 @@ const GenerateKeysModal = ({
6055 } ) ;
6156 React . useEffect ( ( ) => {
6257 if ( isOpen ) {
63- setStateVariables ( { ...initState , JWT_TYPE : variables . JWT_TYPE } ) ;
58+ setStateVariables ( { ...initState , JWT_TYPE : jwtType } ) ;
6459 }
6560 } , [ isOpen ] ) ;
66- const setKeys = ( ) => {
67- // fetch keys from api
68- console . log ( 'calling setKeys ==>> ' , stateVariables . JWT_TYPE ) ;
69- if ( true ) {
70- if ( Object . values ( HMACEncryptionType ) . includes ( stateVariables . JWT_TYPE ) ) {
61+ const fetchKeys = async ( ) => {
62+ const res = await client
63+ . mutation ( GenerateKeys , { params : { type : stateVariables . JWT_TYPE } } )
64+ . toPromise ( ) ;
65+ if ( res ?. error ) {
66+ toast ( {
67+ title : 'Error occurred generating jwt keys' ,
68+ isClosable : true ,
69+ status : 'error' ,
70+ position : 'bottom-right' ,
71+ } ) ;
72+ closeHandler ( ) ;
73+ } else {
74+ if ( res ?. data ?. _generate_jwt_keys ?. secret ) {
7175 setStateVariables ( {
7276 ...stateVariables ,
73- JWT_SECRET : 'hello_world' ,
77+ JWT_SECRET : res . data . _generate_jwt_keys . secret ,
7478 JWT_PRIVATE_KEY : '' ,
7579 JWT_PUBLIC_KEY : '' ,
7680 } ) ;
7781 } else {
7882 setStateVariables ( {
7983 ...stateVariables ,
8084 JWT_SECRET : '' ,
81- JWT_PRIVATE_KEY : 'test private key' ,
82- JWT_PUBLIC_KEY : 'test public key' ,
85+ JWT_PRIVATE_KEY : res . data . _generate_jwt_keys . private_key ,
86+ JWT_PUBLIC_KEY : res . data . _generate_jwt_keys . public_key ,
8387 } ) ;
8488 }
85- toast ( {
86- title : 'New keys generated' ,
87- isClosable : true ,
88- status : 'success' ,
89- position : 'bottom-right' ,
90- } ) ;
91- } else {
92- toast ( {
93- title : 'Error occurred generating keys' ,
94- isClosable : true ,
95- status : 'error' ,
96- position : 'bottom-right' ,
97- } ) ;
98- closeHandler ( ) ;
9989 }
10090 } ;
10191 React . useEffect ( ( ) => {
102- if ( isOpen ) {
103- setKeys ( ) ;
92+ if ( isOpen && stateVariables . JWT_TYPE ) {
93+ fetchKeys ( ) ;
10494 }
10595 } , [ stateVariables . JWT_TYPE ] ) ;
10696 const saveHandler = async ( ) => {
107- setVariables ( { ...variables , ...stateVariables } ) ;
108- saveEnvHandler ( ) ;
97+ const res = await client
98+ . mutation ( UpdateEnvVariables , { params : { ...stateVariables } } )
99+ . toPromise ( ) ;
100+
101+ if ( res . error ) {
102+ toast ( {
103+ title : 'Error occurred setting jwt keys' ,
104+ isClosable : true ,
105+ status : 'error' ,
106+ position : 'bottom-right' ,
107+ } ) ;
108+
109+ return ;
110+ }
111+ toast ( {
112+ title : 'JWT keys updated successfully' ,
113+ isClosable : true ,
114+ status : 'success' ,
115+ position : 'bottom-right' ,
116+ } ) ;
109117 closeHandler ( ) ;
110118 } ;
111- const closeHandler = async ( ) => {
119+
120+ const closeHandler = ( ) => {
112121 setStateVariables ( { ...initState } ) ;
113122 onClose ( ) ;
123+ getData ( ) ;
114124 } ;
115125 return (
116126 < >
@@ -149,10 +159,10 @@ const GenerateKeysModal = ({
149159 stateVariables . JWT_TYPE
150160 ) ? (
151161 < Flex marginTop = "8" >
152- < Flex w = "30 %" justifyContent = "start" alignItems = "center" >
162+ < Flex w = "23 %" justifyContent = "start" alignItems = "center" >
153163 < Text fontSize = "sm" > JWT Secret</ Text >
154164 </ Flex >
155- < Center w = "70 %" >
165+ < Center w = "77 %" >
156166 < Input
157167 size = "sm"
158168 value = { stateVariables . JWT_SECRET }
@@ -168,10 +178,10 @@ const GenerateKeysModal = ({
168178 ) : (
169179 < >
170180 < Flex marginTop = "8" >
171- < Flex w = "30 %" justifyContent = "start" alignItems = "center" >
181+ < Flex w = "23 %" justifyContent = "start" alignItems = "center" >
172182 < Text fontSize = "sm" > Public Key</ Text >
173183 </ Flex >
174- < Center w = "70 %" >
184+ < Center w = "77 %" >
175185 < InputField
176186 variables = { stateVariables }
177187 setVariables = { setStateVariables }
@@ -182,10 +192,10 @@ const GenerateKeysModal = ({
182192 </ Center >
183193 </ Flex >
184194 < Flex marginTop = "8" >
185- < Flex w = "30 %" justifyContent = "start" alignItems = "center" >
195+ < Flex w = "23 %" justifyContent = "start" alignItems = "center" >
186196 < Text fontSize = "sm" > Private Key</ Text >
187197 </ Flex >
188- < Center w = "70 %" >
198+ < Center w = "77 %" >
189199 < InputField
190200 variables = { stateVariables }
191201 setVariables = { setStateVariables }
@@ -202,7 +212,7 @@ const GenerateKeysModal = ({
202212 < ModalFooter >
203213 < Button
204214 leftIcon = { < FaSave /> }
205- colorScheme = "red "
215+ colorScheme = "blue "
206216 variant = "solid"
207217 onClick = { saveHandler }
208218 isDisabled = { false }
0 commit comments