62 lines
2.1 KiB
TypeScript
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;
|
|
}
|
|
}
|