From bf7c0e93a8ee1ce21bdc92b933588ed27c466c92 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 2 Apr 2025 11:14:45 -0600 Subject: [PATCH] variables de entorno, correcciones de codigo actual, docker file --- Dockerfile | 23 +++++++++++++++ docker-compose.yml | 28 +++++++++++++++++++ src/app.module.ts | 13 ++++++--- src/cuestionario/cuestionario.module.ts | 4 +++ .../entities/cuestionario.entity.ts | 8 ++---- .../cuestionario_respondido.module.ts | 10 +++++++ .../cuestionario_respondido.entity.ts | 10 +++---- .../cuestionario_seccion.module.ts | 10 +++++++ .../entities/cuestionario_seccion.entity.ts | 8 ++++-- src/main.ts | 2 +- src/opcion/entities/opcion.entity.ts | 4 +-- src/opcion/opcion.module.ts | 2 +- src/participante/participante.entity.ts | 2 +- src/participante/participante.module.ts | 2 +- src/pregunta/entities/pregunta.entity.ts | 9 ++++-- src/pregunta/pregunta.module.ts | 8 ++++++ .../entities/pregunta_opcion.entity.ts | 15 +++++----- src/pregunta_opcion/pregunta_opcion.module.ts | 10 +++++++ .../respuesta_participante_abierta.entity.ts | 11 +++----- .../respuesta_participante_abierta.module.ts | 10 +++++++ .../respuesta_participante_cerrada.entity.ts | 6 ++-- .../respuesta_participante_cerrada.module.ts | 10 +++++++ src/seccion/entities/seccion.entity.ts | 4 +-- src/seccion/seccion.module.ts | 4 +++ .../entities/seccion_pregunta.entity.ts | 8 ++++-- .../seccion_pregunta.module.ts | 10 +++++++ .../entities/tipo_pregunta.entity.ts | 2 +- src/tipo_pregunta/tipo_pregunta.module.ts | 4 +++ utils/crear_formulario.json | 0 utils/crear_formulario_feria.json | 0 utils/mandar_formulario.json | 0 utils/respuesta_1.json | 0 utils/respuesta_2.json | 0 33 files changed, 190 insertions(+), 47 deletions(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 utils/crear_formulario.json create mode 100644 utils/crear_formulario_feria.json create mode 100644 utils/mandar_formulario.json create mode 100644 utils/respuesta_1.json create mode 100644 utils/respuesta_2.json diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4f67ac3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +# Etapa de construcción +FROM node:22-alpine AS builder + +WORKDIR /app + +COPY package*.json ./ +RUN npm install + +COPY . . +RUN npm run build + +# Etapa de producción +FROM node:20-alpine AS production + +WORKDIR /app + +COPY --from=builder /app/node_modules ./node_modules +COPY --from=builder /app/dist ./dist +COPY --from=builder /app/package*.json ./ + +EXPOSE 4100 + +CMD ["node", "dist/main"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..ab95035 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,28 @@ +version: '3.8' + +services: + mariadb: + image: mariadb:latest + container_name: formularios_db + ports: + - "4201:3306" + environment: + MARIADB_ROOT_PASSWORD: mypass + MARIADB_DATABASE: formularios_test + volumes: + - mariadb_data:/var/lib/mysql + + api: + build: + context: . + dockerfile: Dockerfile + container_name: formularios_api + env_file: + - .env + ports: + - "4200:3000" + depends_on: + - mariadb + +volumes: + mariadb_data: diff --git a/src/app.module.ts b/src/app.module.ts index 1bcc365..155c9b8 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -29,7 +29,7 @@ import { ParticipanteEventoModule } from './participante_evento/participante_eve imports: [ ConfigModule.forRoot(), TypeOrmModule.forRoot({ - /* + type: 'mysql', host: process.env.db_host, //process.env.db_host username: process.env.db_username, @@ -40,16 +40,21 @@ import { ParticipanteEventoModule } from './participante_evento/participante_eve dropSchema: true, // elimina la base de datos // logging: true, // Habilita los logs para depuración autoLoadEntities: true, // Carga automáticamente las entidades - */ + //esta es mi base de datos local + + /* type: 'mysql', host: 'localhost', port: 3306, //3306 username: 'root', password: 'admin', //admin database: 'cidwa', //nestdb - entities: [__dirname + '/**/*.entity{.ts,.js}'], - synchronize: true, + */ + // entities: [__dirname + '/**/*.entity{.ts,.js}'], + // synchronize: true, + + //extra retryAttempts: 10, // Intentos para reconectar retryDelay: 3000, // Tiempo entre reintentos diff --git a/src/cuestionario/cuestionario.module.ts b/src/cuestionario/cuestionario.module.ts index 478b3d6..c6ba022 100644 --- a/src/cuestionario/cuestionario.module.ts +++ b/src/cuestionario/cuestionario.module.ts @@ -1,9 +1,13 @@ import { Module } from '@nestjs/common'; import { CuestionarioService } from './cuestionario.service'; import { CuestionarioController } from './cuestionario.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { Cuestionario } from './entities/cuestionario.entity'; @Module({ + imports: [TypeOrmModule.forFeature([Cuestionario])], controllers: [CuestionarioController], providers: [CuestionarioService], + exports: [TypeOrmModule] }) export class CuestionarioModule {} diff --git a/src/cuestionario/entities/cuestionario.entity.ts b/src/cuestionario/entities/cuestionario.entity.ts index f6add87..f755b13 100644 --- a/src/cuestionario/entities/cuestionario.entity.ts +++ b/src/cuestionario/entities/cuestionario.entity.ts @@ -31,14 +31,12 @@ export class Cuestionario { @OneToMany(() => CuestionarioSeccion,(cuestionario_seccion) => cuestionario_seccion.id_cuestionario) cuestionarioSeccion:CuestionarioSeccion[] - @OneToMany(()=> Cuestionario, (cuestionario) => cuestionario.id_cuestionario) - @Column({ type: 'int' }) + @Column({ type: 'int', nullable: true }) id_cuestionario_original: number; - @OneToMany(()=> TipoCuestionario, (tipo_cuestionario) => tipo_cuestionario.id_tipo_cuestionario ) @Column({ type: 'int' }) id_tipo_cuestionario: number; - @ManyToOne(()=> Cuestionario, (cuestionario) => cuestionario.id_cuestionario) - Cuestionario: Cuestionario[]; + @ManyToOne(()=> Cuestionario) + cuestionarioOriginal: Cuestionario; } diff --git a/src/cuestionario_respondido/cuestionario_respondido.module.ts b/src/cuestionario_respondido/cuestionario_respondido.module.ts index 49b24eb..221348e 100644 --- a/src/cuestionario_respondido/cuestionario_respondido.module.ts +++ b/src/cuestionario_respondido/cuestionario_respondido.module.ts @@ -1,9 +1,19 @@ import { Module } from '@nestjs/common'; import { CuestionarioRespondidoService } from './cuestionario_respondido.service'; import { CuestionarioRespondidoController } from './cuestionario_respondido.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { CuestionarioRespondido } from './entities/cuestionario_respondido.entity'; +import { CuestionarioModule } from '../cuestionario/cuestionario.module'; +import { ParticipanteModule } from '../participante/participante.module'; @Module({ + imports: [ + TypeOrmModule.forFeature([CuestionarioRespondido]), + CuestionarioModule, + ParticipanteModule + ], controllers: [CuestionarioRespondidoController], providers: [CuestionarioRespondidoService], + exports: [TypeOrmModule] }) export class CuestionarioRespondidoModule {} diff --git a/src/cuestionario_respondido/entities/cuestionario_respondido.entity.ts b/src/cuestionario_respondido/entities/cuestionario_respondido.entity.ts index 77e21e7..bd44499 100644 --- a/src/cuestionario_respondido/entities/cuestionario_respondido.entity.ts +++ b/src/cuestionario_respondido/entities/cuestionario_respondido.entity.ts @@ -16,18 +16,18 @@ export class CuestionarioRespondido { // Relación con Participante @ManyToOne(() => Participante, participante => participante.cuestionariosRespondidos) @JoinColumn({ name: 'id_participante' }) - id_participante: Participante; + participante: Participante; // Relación con Cuestionario - @ManyToOne(() => Cuestionario, cuestionario => cuestionario.id_cuestionario) + @ManyToOne(() => Cuestionario) @JoinColumn({ name: 'id_cuestionario' }) - id_cuestionario: Cuestionario; + cuestionario: Cuestionario; // Relación con RespuestasCerradas - @OneToMany(() => RespuestaParticipanteCerrada, respuestaCerrada => respuestaCerrada.id_cuestionario_respondido) + @OneToMany(() => RespuestaParticipanteCerrada, respuestaCerrada => respuestaCerrada.cuestionarioRespondido) respuestasCerradas: RespuestaParticipanteCerrada[]; // Relación con RespuestasAbiertas - @OneToMany(() => RespuestaParticipanteAbierta, respuestaAbierta => respuestaAbierta.id_cuestionario_respondido) + @OneToMany(() => RespuestaParticipanteAbierta, respuestaAbierta => respuestaAbierta.cuestionarioRespondido) respuestasAbiertas: RespuestaParticipanteAbierta[]; } \ No newline at end of file diff --git a/src/cuestionario_seccion/cuestionario_seccion.module.ts b/src/cuestionario_seccion/cuestionario_seccion.module.ts index d3635ed..8d70889 100644 --- a/src/cuestionario_seccion/cuestionario_seccion.module.ts +++ b/src/cuestionario_seccion/cuestionario_seccion.module.ts @@ -1,9 +1,19 @@ import { Module } from '@nestjs/common'; import { CuestionarioSeccionService } from './cuestionario_seccion.service'; import { CuestionarioSeccionController } from './cuestionario_seccion.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { CuestionarioSeccion } from './entities/cuestionario_seccion.entity'; +import { CuestionarioModule } from '../cuestionario/cuestionario.module'; +import { SeccionModule } from '../seccion/seccion.module'; @Module({ + imports: [ + TypeOrmModule.forFeature([CuestionarioSeccion]), + CuestionarioModule, + SeccionModule + ], controllers: [CuestionarioSeccionController], providers: [CuestionarioSeccionService], + exports: [TypeOrmModule] }) export class CuestionarioSeccionModule {} diff --git a/src/cuestionario_seccion/entities/cuestionario_seccion.entity.ts b/src/cuestionario_seccion/entities/cuestionario_seccion.entity.ts index 7bd9b70..9efcd9a 100644 --- a/src/cuestionario_seccion/entities/cuestionario_seccion.entity.ts +++ b/src/cuestionario_seccion/entities/cuestionario_seccion.entity.ts @@ -11,11 +11,15 @@ export class CuestionarioSeccion { posicion: number; - @ManyToOne(() => Cuestionario, (cuestionario) => cuestionario.id_cuestionario) + @ManyToOne(() => Cuestionario, (cuestionario) => cuestionario.cuestionarioSeccion) + cuestionario: Cuestionario; + @Column({ type: 'int' }) id_cuestionario: number; - @ManyToOne(() => Seccion, (seccion) => seccion.id_seccion) + @ManyToOne(() => Seccion, (seccion) => seccion.seccion) + seccion: Seccion; + @Column({type:'int'}) id_seccion:number; } diff --git a/src/main.ts b/src/main.ts index e1c5710..3eabdcd 100644 --- a/src/main.ts +++ b/src/main.ts @@ -9,7 +9,7 @@ async function bootstrap() { DocsModule.setupSwagger(app); - await app.listen(3000); + await app.listen(process.env.PORT ?? 3000); console.log('API en ejecución en http://localhost:3000'); console.log('Swagger disponible en http://localhost:3000/api-docs'); } diff --git a/src/opcion/entities/opcion.entity.ts b/src/opcion/entities/opcion.entity.ts index 3e2f2c4..3523e76 100644 --- a/src/opcion/entities/opcion.entity.ts +++ b/src/opcion/entities/opcion.entity.ts @@ -9,8 +9,8 @@ export class Opcion { @Column({ type: String, nullable: false, length: 200, default: '' }) opcion: string; - @OneToMany(() => PreguntaOpcion, (preguntaOpcion) => preguntaOpcion.id_opcion) - Preguntas: PreguntaOpcion[]; + @OneToMany(() => PreguntaOpcion, (preguntaOpcion) => preguntaOpcion.opcion) + preguntasOpciones: PreguntaOpcion[]; } \ No newline at end of file diff --git a/src/opcion/opcion.module.ts b/src/opcion/opcion.module.ts index d5cb46a..0e1a6a8 100644 --- a/src/opcion/opcion.module.ts +++ b/src/opcion/opcion.module.ts @@ -8,6 +8,6 @@ import { Opcion } from './entities/opcion.entity'; imports: [TypeOrmModule.forFeature([Opcion])], // Importa el repositorio de Opcion controllers: [OpcionController], providers: [OpcionService], - exports: [OpcionService] + exports: [OpcionService, TypeOrmModule] }) export class OpcionModule {} diff --git a/src/participante/participante.entity.ts b/src/participante/participante.entity.ts index 7bf4ae1..3579682 100644 --- a/src/participante/participante.entity.ts +++ b/src/participante/participante.entity.ts @@ -39,7 +39,7 @@ export class Participante { - @OneToMany(() => CuestionarioRespondido, cuestionario => cuestionario.id_participante) + @OneToMany(() => CuestionarioRespondido, cuestionario => cuestionario.participante) cuestionariosRespondidos: CuestionarioRespondido[]; @OneToMany(() => ParticipanteEvento, participanteEvento => participanteEvento.participante) diff --git a/src/participante/participante.module.ts b/src/participante/participante.module.ts index 912cd0c..41a0dd0 100644 --- a/src/participante/participante.module.ts +++ b/src/participante/participante.module.ts @@ -8,6 +8,6 @@ import { Participante } from './participante.entity'; imports: [TypeOrmModule.forFeature([Participante])], controllers: [ParticipanteController], providers: [ParticipanteService], - exports: [ParticipanteService], + exports: [ParticipanteService, TypeOrmModule], }) export class ParticipanteModule {} diff --git a/src/pregunta/entities/pregunta.entity.ts b/src/pregunta/entities/pregunta.entity.ts index d4c6671..1b67797 100644 --- a/src/pregunta/entities/pregunta.entity.ts +++ b/src/pregunta/entities/pregunta.entity.ts @@ -20,14 +20,17 @@ export class Pregunta { @ManyToOne(() => TipoPregunta, tipo => tipo.preguntas) @JoinColumn({ name: 'id_tipo_pregunta' }) - id_tipo_pregunta: TipoPregunta; + tipoPregunta: TipoPregunta; + + @Column() + id_tipo_pregunta: number; @Column({ nullable: true }) id_opcion_dependiente: number; - @OneToMany(() => SeccionPregunta, seccionPregunta => seccionPregunta.id_pregunta) + @OneToMany(() => SeccionPregunta, seccionPregunta => seccionPregunta.pregunta) seccionPreguntas: SeccionPregunta[]; - @OneToMany(() => PreguntaOpcion, preguntaOpcion => preguntaOpcion.id_pregunta) + @OneToMany(() => PreguntaOpcion, preguntaOpcion => preguntaOpcion.pregunta) opciones: PreguntaOpcion[]; } \ No newline at end of file diff --git a/src/pregunta/pregunta.module.ts b/src/pregunta/pregunta.module.ts index 905ec29..d829b94 100644 --- a/src/pregunta/pregunta.module.ts +++ b/src/pregunta/pregunta.module.ts @@ -1,9 +1,17 @@ import { Module } from '@nestjs/common'; import { PreguntaService } from './pregunta.service'; import { PreguntaController } from './pregunta.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { Pregunta } from './entities/pregunta.entity'; +import { TipoPreguntaModule } from '../tipo_pregunta/tipo_pregunta.module'; @Module({ + imports: [ + TypeOrmModule.forFeature([Pregunta]), + TipoPreguntaModule + ], controllers: [PreguntaController], providers: [PreguntaService], + exports: [TypeOrmModule] }) export class PreguntaModule {} diff --git a/src/pregunta_opcion/entities/pregunta_opcion.entity.ts b/src/pregunta_opcion/entities/pregunta_opcion.entity.ts index 7e76438..3c0a024 100644 --- a/src/pregunta_opcion/entities/pregunta_opcion.entity.ts +++ b/src/pregunta_opcion/entities/pregunta_opcion.entity.ts @@ -12,14 +12,15 @@ export class PreguntaOpcion { @Column() posicion: number; - @ManyToOne(() => Pregunta, pregunta => pregunta.id_pregunta) - //@Column() - id_pregunta: Pregunta; + @ManyToOne(() => Pregunta) + pregunta: Pregunta; + + @Column() + id_pregunta: number; - @ManyToOne(() => Opcion, opcion => opcion.id_opcion) - //@Column() - id_opcion: Opcion; + @ManyToOne(() => Opcion, opcion => opcion.preguntasOpciones) + opcion: Opcion; - @OneToMany(()=> RespuestaParticipanteCerrada, respuestaParticipanteCerrada=>respuestaParticipanteCerrada.id_pregunta_opcion) + @OneToMany(()=> RespuestaParticipanteCerrada, respuestaParticipanteCerrada=>respuestaParticipanteCerrada.preguntaOpcion) respuestaParticipanteCerrada:RespuestaParticipanteCerrada[]; } \ No newline at end of file diff --git a/src/pregunta_opcion/pregunta_opcion.module.ts b/src/pregunta_opcion/pregunta_opcion.module.ts index 6eff7d3..3386b19 100644 --- a/src/pregunta_opcion/pregunta_opcion.module.ts +++ b/src/pregunta_opcion/pregunta_opcion.module.ts @@ -1,9 +1,19 @@ import { Module } from '@nestjs/common'; import { PreguntaOpcionService } from './pregunta_opcion.service'; import { PreguntaOpcionController } from './pregunta_opcion.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { PreguntaOpcion } from './entities/pregunta_opcion.entity'; +import { OpcionModule } from '../opcion/opcion.module'; +import { PreguntaModule } from '../pregunta/pregunta.module'; @Module({ + imports: [ + TypeOrmModule.forFeature([PreguntaOpcion]), + OpcionModule, + PreguntaModule + ], controllers: [PreguntaOpcionController], providers: [PreguntaOpcionService], + exports: [TypeOrmModule] }) export class PreguntaOpcionModule {} diff --git a/src/respuesta_participante_abierta/entities/respuesta_participante_abierta.entity.ts b/src/respuesta_participante_abierta/entities/respuesta_participante_abierta.entity.ts index 1990bee..4a6262e 100644 --- a/src/respuesta_participante_abierta/entities/respuesta_participante_abierta.entity.ts +++ b/src/respuesta_participante_abierta/entities/respuesta_participante_abierta.entity.ts @@ -14,17 +14,14 @@ export class RespuestaParticipanteAbierta { // Relación con CuestionarioRespondido @ManyToOne( () => CuestionarioRespondido, - cuestionarioRespondido => cuestionarioRespondido.idCuestionarioRespondido + cuestionarioRespondido => cuestionarioRespondido.respuestasAbiertas ) @JoinColumn({ name: 'id_cuestionario_respondido' }) - id_cuestionario_respondido: CuestionarioRespondido; + cuestionarioRespondido: CuestionarioRespondido; - @ManyToOne( - () => Pregunta, - pregunta => pregunta.id_pregunta - ) + @ManyToOne(() => Pregunta) @JoinColumn({ name: 'id_pregunta' }) - id_pregunta: Pregunta; + pregunta: Pregunta; } \ No newline at end of file diff --git a/src/respuesta_participante_abierta/respuesta_participante_abierta.module.ts b/src/respuesta_participante_abierta/respuesta_participante_abierta.module.ts index 125f0d5..8fada88 100644 --- a/src/respuesta_participante_abierta/respuesta_participante_abierta.module.ts +++ b/src/respuesta_participante_abierta/respuesta_participante_abierta.module.ts @@ -1,9 +1,19 @@ import { Module } from '@nestjs/common'; import { RespuestaParticipanteAbiertaService } from './respuesta_participante_abierta.service'; import { RespuestaParticipanteAbiertaController } from './respuesta_participante_abierta.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { RespuestaParticipanteAbierta } from './entities/respuesta_participante_abierta.entity'; +import { CuestionarioRespondidoModule } from '../cuestionario_respondido/cuestionario_respondido.module'; +import { PreguntaModule } from '../pregunta/pregunta.module'; @Module({ + imports: [ + TypeOrmModule.forFeature([RespuestaParticipanteAbierta]), + CuestionarioRespondidoModule, + PreguntaModule + ], controllers: [RespuestaParticipanteAbiertaController], providers: [RespuestaParticipanteAbiertaService], + exports: [TypeOrmModule] }) export class RespuestaParticipanteAbiertaModule {} diff --git a/src/respuesta_participante_cerrada/entities/respuesta_participante_cerrada.entity.ts b/src/respuesta_participante_cerrada/entities/respuesta_participante_cerrada.entity.ts index ba96744..0d65cb0 100644 --- a/src/respuesta_participante_cerrada/entities/respuesta_participante_cerrada.entity.ts +++ b/src/respuesta_participante_cerrada/entities/respuesta_participante_cerrada.entity.ts @@ -10,11 +10,11 @@ export class RespuestaParticipanteCerrada { @ManyToOne(() => CuestionarioRespondido, cuestionarioRespondido => cuestionarioRespondido.respuestasCerradas) @JoinColumn({ name: 'id_cuestionario_respondido' }) - id_cuestionario_respondido: CuestionarioRespondido; + cuestionarioRespondido: CuestionarioRespondido; - @ManyToOne(() => PreguntaOpcion, preguntaOpcion => preguntaOpcion.id_pregunta_opcion) + @ManyToOne(() => PreguntaOpcion, preguntaOpcion => preguntaOpcion.respuestaParticipanteCerrada) @JoinColumn({ name: 'id_pregunta_opcion' }) - id_pregunta_opcion: PreguntaOpcion; + preguntaOpcion: PreguntaOpcion; } \ No newline at end of file diff --git a/src/respuesta_participante_cerrada/respuesta_participante_cerrada.module.ts b/src/respuesta_participante_cerrada/respuesta_participante_cerrada.module.ts index 5fdf968..7f826bd 100644 --- a/src/respuesta_participante_cerrada/respuesta_participante_cerrada.module.ts +++ b/src/respuesta_participante_cerrada/respuesta_participante_cerrada.module.ts @@ -1,9 +1,19 @@ import { Module } from '@nestjs/common'; import { RespuestaParticipanteCerradaService } from './respuesta_participante_cerrada.service'; import { RespuestaParticipanteCerradaController } from './respuesta_participante_cerrada.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { RespuestaParticipanteCerrada } from './entities/respuesta_participante_cerrada.entity'; +import { PreguntaOpcionModule } from '../pregunta_opcion/pregunta_opcion.module'; +import { CuestionarioRespondidoModule } from '../cuestionario_respondido/cuestionario_respondido.module'; @Module({ + imports: [ + TypeOrmModule.forFeature([RespuestaParticipanteCerrada]), + PreguntaOpcionModule, + CuestionarioRespondidoModule + ], controllers: [RespuestaParticipanteCerradaController], providers: [RespuestaParticipanteCerradaService], + exports: [TypeOrmModule] }) export class RespuestaParticipanteCerradaModule {} diff --git a/src/seccion/entities/seccion.entity.ts b/src/seccion/entities/seccion.entity.ts index ee2701d..6e27cd6 100644 --- a/src/seccion/entities/seccion.entity.ts +++ b/src/seccion/entities/seccion.entity.ts @@ -19,6 +19,6 @@ export class Seccion { @OneToMany(() => CuestionarioSeccion,(cuestionario_seccion) => cuestionario_seccion.id_seccion ) seccion:CuestionarioSeccion[]; - @OneToMany(()=> SeccionPregunta, (seccion_pregunta)=> seccion_pregunta.id_seccion) - seccion_pregunta:SeccionPregunta[]; + @OneToMany(()=> SeccionPregunta, (seccion_pregunta)=> seccion_pregunta.seccion) + seccionPreguntas:SeccionPregunta[]; } diff --git a/src/seccion/seccion.module.ts b/src/seccion/seccion.module.ts index a3b53de..d0d484c 100644 --- a/src/seccion/seccion.module.ts +++ b/src/seccion/seccion.module.ts @@ -1,9 +1,13 @@ import { Module } from '@nestjs/common'; import { SeccionService } from './seccion.service'; import { SeccionController } from './seccion.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { Seccion } from './entities/seccion.entity'; @Module({ + imports: [TypeOrmModule.forFeature([Seccion])], controllers: [SeccionController], providers: [SeccionService], + exports: [TypeOrmModule] }) export class SeccionModule {} diff --git a/src/seccion_pregunta/entities/seccion_pregunta.entity.ts b/src/seccion_pregunta/entities/seccion_pregunta.entity.ts index e476f4f..c0dcad6 100644 --- a/src/seccion_pregunta/entities/seccion_pregunta.entity.ts +++ b/src/seccion_pregunta/entities/seccion_pregunta.entity.ts @@ -11,11 +11,15 @@ export class SeccionPregunta { @Column({ type: 'tinyint' }) posicion: number; - @ManyToOne(() => Pregunta, (pregunta) => pregunta.id_pregunta) + @ManyToOne(() => Pregunta, (pregunta) => pregunta.seccionPreguntas) + pregunta: Pregunta; + @Column({ type: 'int' }) id_pregunta: number; - @ManyToOne(() => Seccion, (seccion) => seccion.id_seccion) + @ManyToOne(() => Seccion, (seccion) => seccion.seccionPreguntas) + seccion: Seccion; + @Column({ type: 'int' }) id_seccion: number; } diff --git a/src/seccion_pregunta/seccion_pregunta.module.ts b/src/seccion_pregunta/seccion_pregunta.module.ts index d911c60..5564e86 100644 --- a/src/seccion_pregunta/seccion_pregunta.module.ts +++ b/src/seccion_pregunta/seccion_pregunta.module.ts @@ -1,9 +1,19 @@ import { Module } from '@nestjs/common'; import { SeccionPreguntaService } from './seccion_pregunta.service'; import { SeccionPreguntaController } from './seccion_pregunta.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { SeccionPregunta } from './entities/seccion_pregunta.entity'; +import { PreguntaModule } from '../pregunta/pregunta.module'; +import { SeccionModule } from '../seccion/seccion.module'; @Module({ + imports: [ + TypeOrmModule.forFeature([SeccionPregunta]), + PreguntaModule, + SeccionModule + ], controllers: [SeccionPreguntaController], providers: [SeccionPreguntaService], + exports: [TypeOrmModule] }) export class SeccionPreguntaModule {} diff --git a/src/tipo_pregunta/entities/tipo_pregunta.entity.ts b/src/tipo_pregunta/entities/tipo_pregunta.entity.ts index 178c993..e6bea46 100644 --- a/src/tipo_pregunta/entities/tipo_pregunta.entity.ts +++ b/src/tipo_pregunta/entities/tipo_pregunta.entity.ts @@ -9,6 +9,6 @@ export class TipoPregunta { @Column() tipo_pregunta: string; - @OneToMany(() => Pregunta, pregunta => pregunta.id_tipo_pregunta) + @OneToMany(() => Pregunta, pregunta => pregunta.tipoPregunta) preguntas: Pregunta[]; } \ No newline at end of file diff --git a/src/tipo_pregunta/tipo_pregunta.module.ts b/src/tipo_pregunta/tipo_pregunta.module.ts index 0494c98..0e23b66 100644 --- a/src/tipo_pregunta/tipo_pregunta.module.ts +++ b/src/tipo_pregunta/tipo_pregunta.module.ts @@ -1,9 +1,13 @@ import { Module } from '@nestjs/common'; import { TipoPreguntaService } from './tipo_pregunta.service'; import { TipoPreguntaController } from './tipo_pregunta.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { TipoPregunta } from './entities/tipo_pregunta.entity'; @Module({ + imports: [TypeOrmModule.forFeature([TipoPregunta])], controllers: [TipoPreguntaController], providers: [TipoPreguntaService], + exports: [TypeOrmModule] }) export class TipoPreguntaModule {} diff --git a/utils/crear_formulario.json b/utils/crear_formulario.json new file mode 100644 index 0000000..e69de29 diff --git a/utils/crear_formulario_feria.json b/utils/crear_formulario_feria.json new file mode 100644 index 0000000..e69de29 diff --git a/utils/mandar_formulario.json b/utils/mandar_formulario.json new file mode 100644 index 0000000..e69de29 diff --git a/utils/respuesta_1.json b/utils/respuesta_1.json new file mode 100644 index 0000000..e69de29 diff --git a/utils/respuesta_2.json b/utils/respuesta_2.json new file mode 100644 index 0000000..e69de29