hexabot/api/src/utils/test/fixtures/nlpsample.ts
2025-01-09 12:31:25 +01:00

64 lines
1.8 KiB
TypeScript

/*
* Copyright © 2024 Hexastack. All rights reserved.
*
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
*/
import mongoose from 'mongoose';
import { NlpSampleCreateDto } from '@/nlp/dto/nlp-sample.dto';
import { NlpSample, NlpSampleModel } from '@/nlp/schemas/nlp-sample.schema';
import { NlpSampleState } from '@/nlp/schemas/types';
import { getFixturesWithDefaultValues } from '../defaultValues';
import { TFixturesDefaultValues } from '../types';
import { installLanguageFixtures } from './language';
const nlpSamples: NlpSampleCreateDto[] = [
{
text: 'yess',
language: '0',
},
{
text: 'No',
language: '0',
},
{
text: 'Hello',
trained: true,
language: '0',
},
{
text: 'Bye Jhon',
trained: true,
language: '0',
},
];
export const nlpSampleDefaultValues: TFixturesDefaultValues<NlpSample> = {
type: NlpSampleState.train,
trained: false,
};
export const nlpSampleFixtures = getFixturesWithDefaultValues<NlpSample>({
fixtures: nlpSamples,
defaultValues: nlpSampleDefaultValues,
});
export const installNlpSampleFixtures = async () => {
const languages = await installLanguageFixtures();
const NlpSample = mongoose.model(NlpSampleModel.name, NlpSampleModel.schema);
return await NlpSample.insertMany(
nlpSampleFixtures.map((v) => {
return {
...v,
language: v.language ? languages[parseInt(v.language)].id : null,
};
}),
);
};