@bit-ui-libs/common
Version:
This library was generated with [Nx](https://nx.dev).
77 lines (72 loc) • 2.22 kB
text/typescript
import {
AttachmentClassification,
CreateAttachmentInputData,
CreateQrAttachmentInputData,
DEFAULT_APP_ID,
DeviceTypeEnum,
GeolocationData,
makeSampleGeolocation,
} from '../../common';
import { CreateAttachmentsPayload, CreateQrAttachmentRequest } from '../interfaces';
interface MakeCreateAttachmentRequestOpts {
appId?: string;
eventId: string;
deviceId?: string;
deviceName?: string;
deviceType?: DeviceTypeEnum;
geolocation?: GeolocationData;
ipAddress?: string;
docs?: CreateAttachmentInputData[];
chainType?: string;
}
// This is a helper function that constructs the proper Asset Anchoring Attachment input
export function makeCreateAttachmentsRequest(opts: MakeCreateAttachmentRequestOpts): CreateAttachmentsPayload {
return {
eventId: opts.eventId,
req: {
application: { id: opts.appId ?? DEFAULT_APP_ID },
docs: opts.docs ?? [],
eventId: opts.eventId,
device: {
date: new Date().toISOString(),
deviceId: opts?.deviceId ?? '',
deviceName: opts?.deviceName ?? '',
geolocation: opts?.geolocation ?? makeSampleGeolocation(),
ipAddress: opts?.ipAddress ?? '',
deviceType: opts?.deviceType ?? DeviceTypeEnum.PHONE,
},
},
chainType: opts.chainType ?? '',
};
}
interface MakeCreateQrAttachmentRequestOpts {
qrImageBase64: string;
appId?: string;
eventId: string;
deviceId?: string;
deviceName?: string;
deviceType?: DeviceTypeEnum;
geolocation?: GeolocationData;
ipAddress?: string;
docs?: CreateQrAttachmentInputData[];
}
export function makeCreateQrAttachmentRequest(opts: MakeCreateQrAttachmentRequestOpts): CreateQrAttachmentRequest {
return {
application: { id: opts?.appId ?? DEFAULT_APP_ID },
device: {
date: new Date().toISOString(),
deviceId: opts.deviceId ?? '',
deviceName: opts.deviceName ?? '',
deviceType: opts.deviceType ?? DeviceTypeEnum.PHONE,
geolocation: opts.geolocation ?? makeSampleGeolocation(),
ipAddress: opts?.ipAddress ?? '',
},
docs: [
{
docType: 'PHOTO',
classification: AttachmentClassification.QrCode,
data: opts.qrImageBase64,
},
],
};
}