UNPKG

@novo-learning/novo-sdk

Version:

SDK for the Novolanguage Speech Analysis API

33 lines (29 loc) 1.39 kB
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 }; } }