@bit-ui-libs/common
Version:
This library was generated with [Nx](https://nx.dev).
139 lines (124 loc) • 4.4 kB
text/typescript
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;
}