@ekisa-xsighub/sdk
Version:
SDK de emparejamiento que permite la integración de la aplicación móvil con el servidor centralizado para capturar y transferir las firmas de los usuarios en tiempo real.
64 lines (55 loc) • 2.44 kB
TypeScript
import { SessionReference, Session, SessionSignature, SessionSignatureMetadata, SessionDocument, SessionDocumentSignature, SessionDocumentMetadata } from '@ekisa-xsighub/core';
interface SdkQr {
generate(pairingKey: string): Promise<string>;
generatex(pairingKey: string): Promise<string>;
}
type SdkClientConfig = {
api: string;
version: string;
};
type ReferenceCreate = Omit<SessionReference, 'id' | 'signatures'>;
type ReferenceUpdate = Partial<ReferenceCreate>;
interface SdkReferences {
create(data: ReferenceCreate): Promise<SessionReference>;
update(referenceId: number, data: ReferenceUpdate): Promise<SessionReference>;
delete(referenceId: number): Promise<SessionReference>;
}
interface SdkSessions {
create(): Promise<Session>;
findByIpAddress(): Promise<Session>;
findByPairingKey(pairingKey: string): Promise<Session>;
pair(pairingKey: string): Promise<Session>;
unpair(pairingKey: string): Promise<Session>;
destroy(pairingKey: string): Promise<Session>;
}
type SignatureCreate = Omit<SessionSignature, 'id'>;
interface SdkSignatures {
create(data: SignatureCreate): Promise<SessionSignature>;
findById(signatureId: number): Promise<SessionSignature>;
update(signatureId: number, data: SessionSignature): Promise<SessionSignature>;
loadMetadata(documentId: number, data: SessionSignatureMetadata): Promise<SessionSignature>;
delete(signatureId: number): Promise<SessionSignature>;
}
type DocumentCreate = Omit<SessionDocument, 'id'>;
interface SdkDocuments {
create(data: DocumentCreate): Promise<SessionDocument>;
findById(documentId: number): Promise<SessionDocument>;
update(signatureId: number, data: SessionDocument): Promise<SessionDocument>;
attach(documentId: number, data: SessionDocumentSignature): Promise<SessionDocument>;
delete(signatureId: number): Promise<SessionDocument>;
loadMetadata(documentId: number, data: SessionDocumentMetadata): Promise<SessionDocument>;
populateMetadata(rawContent: string, data: SessionDocumentMetadata): string;
extractSignatures(rawContent: string): {
[key: string]: string;
};
}
interface SdkClient {
init: (config: SdkClientConfig) => SdkClient;
sessions: SdkSessions;
references: SdkReferences;
signatures: SdkSignatures;
documents: SdkDocuments;
qr: SdkQr;
}
declare const client: SdkClient;
export { SdkClient, client };