@novo-learning/novo-sdk
Version:
SDK for the Novolanguage Speech Analysis API
33 lines (29 loc) • 1.39 kB
text/typescript
import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
import { LanguageCodeMapper } from '../../mappers/language-code.mapper';
import { ConfusionDtoV1 } from './dto/confusion-rule.dto.v1';
import { ConfusionsRequestDtoV1 } from './dto/confusions-request.dto.v1';
import { PhoneArray } from './dto/pronunciation.dto.v1';
import { Configuration, ConfusionApi as GeneratedConfusionsApi } from './generated';
export class ConfusionsApi {
private readonly api: GeneratedConfusionsApi;
private readonly languageCodeMapper: LanguageCodeMapper;
constructor(configuration?: Configuration | undefined, basePath?: string, axios?: AxiosInstance) {
this.api = new GeneratedConfusionsApi(configuration, basePath, axios);
this.languageCodeMapper = new LanguageCodeMapper();
}
public async getConfusionsV1(
confusionsRequest: ConfusionsRequestDtoV1,
options?: AxiosRequestConfig<unknown> | undefined,
): Promise<AxiosResponse<Array<ConfusionDtoV1>>> {
const { data, ...result } = await this.api.getConfusionsV1(
this.languageCodeMapper.mapToGenerated(confusionsRequest.language),
options,
);
const dataResult = data.map(({ language, confusion, ...d }) => ({
...d,
...(confusion as PhoneArray[]),
language: this.languageCodeMapper.mapFromGenerated(language),
}));
return { ...result, data: dataResult };
}
}