MCPcopy Create free account
hub / github.com/IQEngine/IQEngine / ApiClient

Class ApiClient

client/src/api/metadata/api-client.ts:6–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4import { AuthUtil } from '@/api/utils/Auth-Utils';
5
6export class ApiClient implements MetadataClient {
7 private authUtil: AuthUtil;
8
9 constructor(instance: IPublicClientApplication, account: AccountInfo) {
10 this.authUtil = new AuthUtil(instance, account);
11 }
12
13 async getMeta(account: string, container: string, filePath: string): Promise<SigMFMetadata> {
14 const response = await this.authUtil.requestWithAuthIfRequired({
15 method: 'get',
16 url: `/api/datasources/${account}/${container}/${filePath}/meta`
17 });
18 let responseMetaData: SigMFMetadata | null = null;
19 responseMetaData = Object.assign(new SigMFMetadata(), response.data);
20 responseMetaData.annotations = responseMetaData.annotations?.map((annotation) =>
21 Object.assign(new Annotation(), annotation)
22 );
23 responseMetaData.captures = responseMetaData.captures?.map((capture) =>
24 Object.assign(new CaptureSegment(), capture)
25 );
26 return responseMetaData;
27 }
28
29 async getDataSourceMetaPaths(account: string, container: string): Promise<string[]> {
30 const response = await this.authUtil.requestWithAuthIfRequired({
31 method: 'get',
32 url: `/api/datasources/${account}/${container}/meta/paths`
33 });
34 return response.data;
35 }
36
37 async updateMeta(account: string, container: string, filePath: string, meta: SigMFMetadata): Promise<SigMFMetadata> {
38 try {
39 const config = {
40 method: 'PUT',
41 url: `/api/datasources/${account}/${container}/${filePath}/meta`,
42 data: meta
43 };
44
45 await this.authUtil.requestWithAuthIfRequired(config);
46
47 return meta as SigMFMetadata;
48 } catch (error) {
49 console.error(error);
50 throw new Error('Failed to update metadata.');
51 }
52 }
53
54 async track(account: string, container: string, filepath: string, signal: AbortSignal): Promise<number[][]> {
55 if (!account || !container || !filepath) {
56 return null;
57 }
58 const response = await this.authUtil.requestWithAuthIfRequired({
59 method: 'get',
60 url: `/api/datasources/${account}/${container}/${filepath}/track`,
61 signal: signal,
62 });
63 if (response.status !== 200) {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected