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

Class ApiClient

client/src/api/datasource/api-client.ts:8–110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6import { AuthUtil } from '@/api/utils/Auth-Utils';
7
8export class ApiClient implements DataSourceClient {
9 private authUtil: AuthUtil;
10
11 constructor(instance: IPublicClientApplication, account: AccountInfo) {
12 this.authUtil = new AuthUtil(instance, account);
13 }
14
15 async sync(account: string, container: string): Promise<void> {
16 await this.authUtil.requestWithAuthIfRequired({
17 method: 'put',
18 url: `/api/datasources/${account}/${container}/sync`,
19 });
20 }
21 async query(queryString: string, signal: AbortSignal): Promise<TraceabilityOrigin[]> {
22 const response = await this.authUtil.requestWithAuthIfRequired({
23 method: 'get',
24 url: `/api/datasources/query?${queryString}`,
25 signal,
26 });
27 return response.data.map((item, i) => {
28 item = Object.assign(new TraceabilityOrigin(), item);
29 return item;
30 });
31 }
32 async list(): Promise<DataSource[]> {
33 const response = await this.authUtil.requestWithAuthIfRequired({
34 method: 'get',
35 url: '/api/datasources',
36 });
37 if (response.status !== 200) {
38 throw new Error(`Unexpected status code: ${response.status}`);
39 }
40 if (!response.data) {
41 return null;
42 }
43 return response.data;
44 }
45 async get(account: string, container: string): Promise<DataSource> {
46 const response = await this.authUtil.requestWithAuthIfRequired({
47 method: 'get',
48 url: `/api/datasources/${account}/${container}/datasource`,
49 });
50 if (response.status !== 200) {
51 throw new Error(`Unexpected status code: ${response.status}`);
52 }
53 if (!response.data) {
54 return null;
55 }
56 return response.data;
57 }
58 async getSasToken(account: string, container: string, filepath: string, write: boolean): Promise<Object> {
59 try {
60 const response = await this.authUtil.requestWithAuthIfRequired({
61 method: 'get',
62 url: `/api/datasources/${account}/${container}/${filepath}/sas?write=${write}`,
63 });
64 if (!response.data) {
65 return null;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected