Files
ritzenbergen-backend/src/formular/formular.service.ts
T
2026-04-15 17:33:44 +02:00

62 lines
2.1 KiB
TypeScript

import { Inject, Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { FormularEntity } from './formular.entity';
import { Repository } from 'typeorm';
import { Formular, MyField } from 'src/dto/formular.dto';
import { FieldEntity } from './fields.entity';
import { FormResultEntity } from './result.entity';
import { FormResultsEntity } from './results.entity';
@Injectable()
export class FormularService {
constructor(
@InjectRepository(FormularEntity)
private readonly formularRepository: Repository<FormularEntity>,
@InjectRepository(FieldEntity)
private readonly fieldRepository: Repository<FieldEntity>,
@InjectRepository(FormResultsEntity)
private readonly formularResultsRepository: Repository<FormResultsEntity>,
@InjectRepository(FormResultEntity)
private readonly formularResultRepository: Repository<FormResultEntity>
){}
async getFormulare(): Promise<Formular[]>{
return await this.formularRepository.find({relations: ['fields',"results","results.results"]});
}
async getFields(
formularid:number
): Promise<MyField[]>{
return await this.fieldRepository.findBy({formular: formularid});
}
async submit(
formularid:number,
names:string[],
values:string[]
): Promise<boolean>{
if(names.length!=values.length) return false;
let formResult=await this.formularResultsRepository.create({
formular: await this.formularRepository.findBy({id:formularid})[0],
formularid: formularid
} as FormResultsEntity);
await this.formularResultsRepository.save(formResult);
let entities=names.map((name,i)=>{
return {
name,
value: values[i],
parentobj: formResult,
parentid: formResult.id
} as FormResultEntity;
});
const formularResult=this.formularResultRepository.create(entities);
await this.formularResultRepository.save(formularResult);
return true;
}
}