UNPKG

@bit-ui-libs/common

Version:
139 lines (124 loc) 4.4 kB
import { CustomerAsset, RelationsTypeEnum, WitnessAsset } from '.'; import { ApplicationData, CreateAttachmentInputData, CreateQrAttachmentInputData, DeviceData, PagedRequest, PagedResponse, QrPackageTypeEnum, UpdateAttachmentInputData, UpdateAttachmentResponse, UploadedAttachmentData, } from '../../common'; import { Event } from '../../core-events'; import { AddReferenceVdtRequest, ShareAssetRequest } from '../asset.service.interfaces'; import { ChainBaseEvent, ChainBaseEventData, ChainBaseEventMetadata, CreateChainBaseRequest } from './chain-base'; import { EventGroupItem } from './event-group-item'; export interface IChainService { chainApiUrl: string; create: (req: CreateChainBaseRequest) => Promise<ChainBaseEvent>; createAttachments: (req: CreateAttachmentsPayload) => Promise<UploadedAttachmentData[]>; createQrAttachment: (eventId: string, req: CreateQrAttachmentRequest) => Promise<void>; getEvent: (eventId: string) => Promise<ChainBaseEvent>; getChildEvents: (eventId: string) => Promise<EventGroupItem[]>; getDetailsByEvent: (eventId: string) => Promise<CustomerAsset>; getDetails: (assetId: string) => Promise<CustomerAsset>; assetByQr: (qrId: string) => Promise<ChainBaseEvent>; getAttachmentImageUrl: (attId: string, thumb?: boolean) => string; getWitnesses: (req: GetWitnessAssetsRequest) => Promise<PagedResponse<WitnessAsset>>; update: (eventId: string, req: UpdateChainBaseDetailsRequest) => Promise<ChainBaseEvent>; updateMetadata: (eventId: string, req: UpdateMetadataRequest) => Promise<ChainBaseEventData>; updateLocationPrivacy: (eventId: string, req: UpdateLocationPrivacyRequest) => Promise<void>; linkQr: (qrId: string, req: LinkQrRequest) => Promise<QrPackageCodeResponse>; generateQr: (req: GenerateQrRequest) => Promise<QrPackageCodeResponse>; deleteAttachments: (attId: string) => Promise<any>; addReferenceVdt: (req: AddReferenceVdtRequest) => Promise<AddReferenceVdtRequest>; updateAttachments: (eventId: string, req: UpdateAttachmentRequest) => Promise<UpdateAttachmentResponse>; updateConfirmStatus: (eventId: string) => Promise<void>; deleteReferenceVdt: (id: string, qrCodeRefId: string) => Promise<void>; eventByQr: (qrId: string) => Promise<Event>; updateFavorite: (req: UpdateFavoriteRequest) => Promise<void>; share: (eventId: string, data: ShareAssetRequest) => Promise<void>; } export interface CreateAttachmentsPayload { // This is needed to know which Asset Anchoring Event // we are adding the attachments for eventId: string; // This is the input passed to the API (see above) req: CreateAttachmentRequest; // This doesn't seem to even be used chainType?: string; onUpload?: (index: number, total: number) => void; } export interface CreateAttachmentRequest { application: ApplicationData; device: DeviceData; eventId: string; docs: CreateAttachmentInputData[]; } export interface UpdateAttachmentRequest { application: ApplicationData; docs: UpdateAttachmentInputData[]; } export interface CreateQrAttachmentRequest { application: ApplicationData; device: DeviceData; docs: CreateQrAttachmentInputData[]; } export interface UpdateChainBaseDetailsRequest { date: string; } export interface UpdateMetadataRequest { metadata: ChainBaseEventMetadata; } export enum LocationAccuracy { Exact = 'exact', City = 'city', State = 'state', Country = 'country', } export interface UpdateLocationPrivacyRequest { locationAccuracy: LocationAccuracy; city?: string; state?: string; country?: string; } export interface LinkQrRequest { eventId: string; device: DeviceData; isAdminAsset?: boolean; } export interface QrPackageCodeResponse { id: string; eventId?: string; package?: { id: string; isSystem: boolean; isCategoryDefault: boolean; type: QrPackageTypeEnum; name: string; url: string; qrCodeTotalCount: number; createdBy: string; createdAt: string; }; } export interface GenerateQrRequest { application: ApplicationData; type: QrPackageTypeEnum; categoryId?: string; orgId?: string; } export type GetWitnessAssetsRequest = PagedRequest<{ name?: string; id?: string; userId: string; relationType?: RelationsTypeEnum; isMinted?: boolean; categoryId?: string; }>; export interface UpdateFavoriteRequest { ids: string[]; isFavorite: boolean; }