-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathservice.ts
More file actions
31 lines (26 loc) · 1.02 KB
/
service.ts
File metadata and controls
31 lines (26 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import { plainToInstance } from 'class-transformer';
import { getApiService } from '@open-webui-react-native/shared/data-access/api-client';
import { EntityPromiseService } from '@open-webui-react-native/shared/data-access/base-entity';
import { knowledgeApiConfig } from './config';
import { Knowledge, KnowledgeResponse } from './models';
class KnowledgeService extends EntityPromiseService<Knowledge> {
constructor() {
super({
endpoint: knowledgeApiConfig.route,
entityConstructor: Knowledge,
apiService: getApiService,
});
}
public async getKnowledge(): Promise<Array<Knowledge>> {
const response = await getApiService().get<KnowledgeResponse>(`${knowledgeApiConfig.route}/`);
const transformed = plainToInstance(KnowledgeResponse, response, {
excludeExtraneousValues: true,
});
return transformed.items.map((item) =>
plainToInstance(Knowledge, item, {
excludeExtraneousValues: true,
}),
);
}
}
export const knowledgeService = new KnowledgeService();