diff --git a/src/app.module.ts b/src/app.module.ts index 10eb378..6f199e6 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -9,6 +9,8 @@ import { EventEntity } from './events/events.entity'; import { FormularModule } from './formular/formular.module'; import { FormularEntity } from './formular/formular.entity'; import { FieldEntity } from './formular/fields.entity'; +import { FormResultEntity } from './formular/result.entity'; +import { FormResultsEntity } from './formular/results.entity'; @Module({ imports: [ @@ -26,7 +28,7 @@ import { FieldEntity } from './formular/fields.entity'; password: process.env.DB_PASSWORD || 'root', database: process.env.DB_NAME || 'ritzenbergen', synchronize: true, - entities: [EventEntity, FormularEntity,FieldEntity] + entities: [EventEntity, FormularEntity,FieldEntity,FormResultEntity,FormResultsEntity] }), FormularModule, diff --git a/src/dto b/src/dto index 7a379bf..12938c8 160000 --- a/src/dto +++ b/src/dto @@ -1 +1 @@ -Subproject commit 7a379bf72e1969184e1369d0674b5bf20144bb44 +Subproject commit 12938c81257e48bc33d9caf7950038780d3f9f04 diff --git a/src/formular/formular.controller.ts b/src/formular/formular.controller.ts index a56348a..9a7e5c1 100644 --- a/src/formular/formular.controller.ts +++ b/src/formular/formular.controller.ts @@ -27,4 +27,12 @@ export class FormularController { return await this.formularService.getFields(formularid); } + @Get("/submit/:formularid") + async submit( + @Param("formularid") + formularid:number + ){ + return await this.formularService.submit(formularid); + } + } diff --git a/src/formular/formular.entity.ts b/src/formular/formular.entity.ts index a4fe4f8..f4ac317 100644 --- a/src/formular/formular.entity.ts +++ b/src/formular/formular.entity.ts @@ -1,7 +1,8 @@ import { Field, ObjectType } from "@nestjs/graphql"; -import { Formular, MyField } from "src/dto/formular.dto"; -import { Column, Entity, OneToMany, PrimaryColumn, PrimaryGeneratedColumn } from "typeorm"; +import { Formular, FormularResults, MyField } from "src/dto/formular.dto"; +import { Column, Entity, ManyToOne, OneToMany, PrimaryColumn, PrimaryGeneratedColumn } from "typeorm"; import { FieldEntity } from "./fields.entity"; +import { FormResultsEntity } from "./results.entity"; @ObjectType() @@ -30,4 +31,8 @@ export class FormularEntity implements Formular{ @Field(()=>[FieldEntity]) @OneToMany(()=>FieldEntity,field=>field.formularObject) public fields: FieldEntity[]; -} \ No newline at end of file + + @Field(()=>[FormResultsEntity]) + @OneToMany(()=>FormResultsEntity,entity=>entity.formular) + public results: FormResultsEntity[]; +} diff --git a/src/formular/formular.module.ts b/src/formular/formular.module.ts index c4bc28d..0b2eaac 100644 --- a/src/formular/formular.module.ts +++ b/src/formular/formular.module.ts @@ -4,10 +4,12 @@ import { FormularEntity } from './formular.entity'; import { FormularController } from './formular.controller'; import { FormularService } from './formular.service'; import { FieldEntity } from './fields.entity'; +import { FormResultEntity } from './result.entity'; +import { FormResultsEntity } from './results.entity'; @Module({ imports:[ - TypeOrmModule.forFeature([FormularEntity,FieldEntity]) + TypeOrmModule.forFeature([FormularEntity,FieldEntity,FormResultEntity,FormResultsEntity]) ], controllers: [ FormularController diff --git a/src/formular/formular.service.ts b/src/formular/formular.service.ts index 31a32e2..57c92a4 100644 --- a/src/formular/formular.service.ts +++ b/src/formular/formular.service.ts @@ -1,6 +1,7 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { FormularEntity } from './formular.entity'; +import { FormResultsEntity } from './results.entity'; import { Repository } from 'typeorm'; import { Formular, MyField } from 'src/dto/formular.dto'; import { FieldEntity } from './fields.entity'; @@ -11,16 +12,20 @@ export class FormularService { @InjectRepository(FormularEntity) private readonly formularRepository: Repository, @InjectRepository(FieldEntity) - private readonly fieldRepository: Repository + private readonly fieldRepository: Repository, ){} async getFormulare(): Promise{ - return await this.formularRepository.find({relations: ['fields']}); + return await this.formularRepository.find({relations: ['fields',"results","results.results"]}); } async getFields( formularid:number ): Promise{ return await this.fieldRepository.findBy({formular: formularid}); + } + async submit( + formularid:number + ){ } } diff --git a/src/formular/result.entity.ts b/src/formular/result.entity.ts new file mode 100644 index 0000000..9ec1c8c --- /dev/null +++ b/src/formular/result.entity.ts @@ -0,0 +1,32 @@ +import { Field, ObjectType } from "@nestjs/graphql"; +import { FormularResult, FormularResults } from "src/dto/formular.dto"; +import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from "typeorm"; +import { FormResultsEntity } from "./results.entity"; + + +@ObjectType() +@Entity() +export class FormResultEntity implements FormularResult{ + + @PrimaryGeneratedColumn() + @Field() + id: number; + + @Column() + @Field() + parentid: number; + + @Field(()=>FormResultsEntity) + @ManyToOne(()=>FormResultsEntity,entity=>entity.id) + @JoinColumn({"name":"parentid"}) + parentobj: FormResultsEntity; + + @Column() + @Field() + name: string; + + @Column() + @Field() + value: string; + +} \ No newline at end of file diff --git a/src/formular/results.entity.ts b/src/formular/results.entity.ts new file mode 100644 index 0000000..8a185b2 --- /dev/null +++ b/src/formular/results.entity.ts @@ -0,0 +1,28 @@ +import { Field, ObjectType } from "@nestjs/graphql"; +import { Formular, FormularResult, FormularResults } from "src/dto/formular.dto"; +import { Column, Entity, JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn } from "typeorm"; +import { FormularEntity } from "./formular.entity"; +import { FormResultEntity } from "./result.entity"; + + +@ObjectType() +@Entity() +export class FormResultsEntity implements FormularResults{ + @PrimaryGeneratedColumn() + @Field() + id: number; + + @ManyToOne(()=>FormularEntity,entity=>entity.id) + @Field(()=>FormularEntity) + @JoinColumn({name:"formularid"}) + formular: FormularEntity; + + @Field() + @Column() + formularid: number; + + @Field(()=>[FormResultEntity]) + @OneToMany(()=>FormResultEntity,entity=>entity.parentobj) + results: FormResultEntity[]; + +} \ No newline at end of file