feat(fullstack): Add middleware API to frontend, add dummy signature mode for middleware
This commit is contained in:
38
legalconsenthub/composables/middleware/useMiddleware.ts
Normal file
38
legalconsenthub/composables/middleware/useMiddleware.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import type {
|
||||
VerifySignatureHashAlgorithmEnum,
|
||||
VerifySignatureResponseDto,
|
||||
SignPdfHashHashAlgorithmEnum
|
||||
} from '~/.api-client-middleware'
|
||||
import { useMiddlewareApi } from '~/composables/middleware/useMiddlewareApi'
|
||||
|
||||
export function useMiddleware() {
|
||||
const middlewareApi = useMiddlewareApi()
|
||||
|
||||
async function signPdfHash(document: Blob, certificateId: string, hashAlgorithm?: SignPdfHashHashAlgorithmEnum) {
|
||||
try {
|
||||
return middlewareApi.signPdfHash(document, certificateId, hashAlgorithm)
|
||||
} catch (e: unknown) {
|
||||
console.error('Failed signing PDF hash:', e)
|
||||
return Promise.reject(e)
|
||||
}
|
||||
}
|
||||
|
||||
async function verifySignature(
|
||||
document: Blob,
|
||||
signature: string,
|
||||
certificateId?: string,
|
||||
hashAlgorithm?: VerifySignatureHashAlgorithmEnum
|
||||
): Promise<VerifySignatureResponseDto> {
|
||||
try {
|
||||
return await middlewareApi.verifySignature(document, signature, certificateId, hashAlgorithm)
|
||||
} catch (e: unknown) {
|
||||
console.error('Failed verifying signature:', e)
|
||||
return Promise.reject(e)
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
signPdfHash,
|
||||
verifySignature
|
||||
}
|
||||
}
|
||||
45
legalconsenthub/composables/middleware/useMiddlewareApi.ts
Normal file
45
legalconsenthub/composables/middleware/useMiddlewareApi.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { cleanDoubleSlashes, withoutTrailingSlash } from 'ufo'
|
||||
import {
|
||||
SmartCardApi,
|
||||
SignatureApi,
|
||||
Configuration,
|
||||
type VerifySignatureHashAlgorithmEnum,
|
||||
type VerifySignatureResponseDto,
|
||||
type SignPdfHashHashAlgorithmEnum
|
||||
} from '~/.api-client-middleware'
|
||||
|
||||
export function useMiddlewareApi() {
|
||||
const appBaseUrl = useRuntimeConfig().app.baseURL
|
||||
const { serverApiBaseUrl, serverApiBasePath, clientProxyBasePath } = useRuntimeConfig().public
|
||||
const { jwt } = useAuth()
|
||||
|
||||
const basePath = withoutTrailingSlash(
|
||||
cleanDoubleSlashes(import.meta.client ? appBaseUrl + clientProxyBasePath : serverApiBaseUrl + serverApiBasePath)
|
||||
)
|
||||
|
||||
const smartCardApiClient = new SmartCardApi(
|
||||
new Configuration({ basePath, headers: { Authorization: jwt.value ? `Bearer ${jwt.value}` : '' } })
|
||||
)
|
||||
|
||||
const signatureApiClient = new SignatureApi(
|
||||
new Configuration({ basePath, headers: { Authorization: jwt.value ? `Bearer ${jwt.value}` : '' } })
|
||||
)
|
||||
|
||||
async function signPdfHash(document: Blob, certificateId: string, hashAlgorithm?: SignPdfHashHashAlgorithmEnum) {
|
||||
return signatureApiClient.signPdfHash({ document, certificateId, hashAlgorithm })
|
||||
}
|
||||
|
||||
async function verifySignature(
|
||||
document: Blob,
|
||||
signature: string,
|
||||
certificateId?: string,
|
||||
hashAlgorithm?: VerifySignatureHashAlgorithmEnum
|
||||
): Promise<VerifySignatureResponseDto> {
|
||||
return signatureApiClient.verifySignature({ document, signature, certificateId, hashAlgorithm })
|
||||
}
|
||||
|
||||
return {
|
||||
signPdfHash,
|
||||
verifySignature
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user