import Logger from '../utils/logger'; import { API_ENDPOINTS } from './apiEndpoints'; import type { VerifyApplicationResponse } from '../types/apiTypes'; import type { GetIdSdk } from '@get-id/react-native-sdk'; import { mapSdkForVerify } from './utils/apiResultMapper'; type VerifyApplicationProps = { sdk: GetIdSdk; }; type VerifyApplicationResult = Promise; const verifyApplication = async ({ sdk, }: VerifyApplicationProps): VerifyApplicationResult => { Logger.log(`Creating application...`); const verifyPayload = mapSdkForVerify(sdk); const headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + sdk.config.token, }; try { const response = await fetch( sdk.config.apiUrl + API_ENDPOINTS.VERIFY_APPLICATION, { method: 'POST', headers: headers, body: JSON.stringify(verifyPayload), } ); if (!response.ok) { const errorData = await response.json(); Logger.error( `Error while creating application: ${errorData}`, sdk.tracking.trySendEvent ); throw new Error('Error creating application'); } Logger.log(`Application created successfully`); const responseData = await response.json(); return responseData as VerifyApplicationResponse; } catch (error: any) { Logger.error( `Error while creating application: ${error}`, sdk.tracking.trySendEvent ); throw new Error('Error creating application'); } }; export default verifyApplication;