UNPKG

velocity-verification

Version:

JavaScript SDK view layer for identity verification

96 lines (86 loc) 2.8 kB
import { performHttpReq } from '~utils/http' import {forEach} from '~utils/object' const formatError = ({response, status}, onError) => { try { onError({status, response: JSON.parse(response)}) } catch { onError({status, response: {}}) } } export const uploadDocument = (data, url, token, onSuccess, onError) => { const {validations, ...other} = data data = { ...other, sdk_validations: JSON.stringify(validations) } const endpoint = `${url}/verification/6628` sendFile(endpoint, data, token, onSuccess, onError) } export const uploadDocToCore = async (coreRequest, Method, data, documentName, id, mobileUpload, onApiError, onApiSuccess) =>{ // upload documents to core try{ if(!mobileUpload){ await coreRequest.fetch(Method.PUT, `/verification/${id}`, data) }else{ await coreRequest.fetch(Method.PUT, `/verification/upload/${id}`, data) } onApiSuccess() }catch(e){ onApiError() } } export const uploadLivePhoto = ({sdkMetadata={}, ...data}, url, token, onSuccess, onError) => { const endpoint = `${url}/v2/live_photos` sendFile(endpoint, {...data, sdk_metadata: JSON.stringify(sdkMetadata)}, token, onSuccess, onError) } export const uploadLiveVideo = ({challengeData, blob, language, sdkMetadata={}}, url, token, onSuccess, onError) => { const { challenges: challenge, id: challenge_id, switchSeconds: challenge_switch_at } = challengeData const payload = { file: blob, languages: JSON.stringify([{source: 'sdk', language_code: language}]), challenge: JSON.stringify(challenge), challenge_id, challenge_switch_at, sdk_metadata: JSON.stringify(sdkMetadata) } const endpoint = `${url}/v2/live_videos` sendFile(endpoint, payload, token, onSuccess, onError) } export const requestChallenges = (url, token, onSuccess, onError) => { const options = { endpoint: `${url}/v2/live_video_challenge`, contentType: 'application/json', token: `Bearer ${token}` } performHttpReq(options, onSuccess, (request) => formatError(request, onError)) } const objectToFormData = (object) => { const formData = new FormData() forEach(object, (value, fieldName) => { if (typeof value === "object" && value.blob && value.filename) { formData.append(fieldName, value.blob, value.filename) } else { formData.append(fieldName, value) } }) return formData } const sendFile = (endpoint, data, token, onSuccess, onError) => { data = { ...data, sdk_source: 'onfido_web_sdk', sdk_version: process.env.SDK_VERSION, } const requestParams = { payload: objectToFormData(data), endpoint, token: `Bearer ${token}` } performHttpReq(requestParams, onSuccess, (request) => formatError(request, onError)) }