creacion de dto para event y algunos servicios
This commit is contained in:
Generated
+79
@@ -12,6 +12,9 @@
|
||||
"@nestjs/common": "^9.0.0",
|
||||
"@nestjs/core": "^9.0.0",
|
||||
"@nestjs/platform-express": "^9.0.0",
|
||||
"class-transformer": "^0.5.1",
|
||||
"class-validator": "^0.14.0",
|
||||
"moment": "^2.29.4",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"rxjs": "^7.2.0"
|
||||
},
|
||||
@@ -2087,6 +2090,11 @@
|
||||
"@types/superagent": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/validator": {
|
||||
"version": "13.7.12",
|
||||
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.12.tgz",
|
||||
"integrity": "sha512-YVtyAPqpefU+Mm/qqnOANW6IkqKpCSrarcyV269C8MA8Ux0dbkEuQwM/4CjL47kVEM2LgBef/ETfkH+c6+moFA=="
|
||||
},
|
||||
"node_modules/@types/yargs": {
|
||||
"version": "17.0.22",
|
||||
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz",
|
||||
@@ -3100,6 +3108,21 @@
|
||||
"integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/class-transformer": {
|
||||
"version": "0.5.1",
|
||||
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz",
|
||||
"integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw=="
|
||||
},
|
||||
"node_modules/class-validator": {
|
||||
"version": "0.14.0",
|
||||
"resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.0.tgz",
|
||||
"integrity": "sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==",
|
||||
"dependencies": {
|
||||
"@types/validator": "^13.7.10",
|
||||
"libphonenumber-js": "^1.10.14",
|
||||
"validator": "^13.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/cli-cursor": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
|
||||
@@ -5896,6 +5919,11 @@
|
||||
"node": ">= 0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/libphonenumber-js": {
|
||||
"version": "1.10.19",
|
||||
"resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.19.tgz",
|
||||
"integrity": "sha512-MDZ1zLIkfSDZV5xBta3nuvbEOlsnKCPe4z5r3hyup/AXveevkl9A1eSWmLhd2FX4k7pJDe4MrLeQsux0HI/VWg=="
|
||||
},
|
||||
"node_modules/lines-and-columns": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
|
||||
@@ -6179,6 +6207,14 @@
|
||||
"mkdirp": "bin/cmd.js"
|
||||
}
|
||||
},
|
||||
"node_modules/moment": {
|
||||
"version": "2.29.4",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
|
||||
"integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
@@ -8084,6 +8120,14 @@
|
||||
"integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/validator": {
|
||||
"version": "13.9.0",
|
||||
"resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz",
|
||||
"integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==",
|
||||
"engines": {
|
||||
"node": ">= 0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/vary": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
||||
@@ -10003,6 +10047,11 @@
|
||||
"@types/superagent": "*"
|
||||
}
|
||||
},
|
||||
"@types/validator": {
|
||||
"version": "13.7.12",
|
||||
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.12.tgz",
|
||||
"integrity": "sha512-YVtyAPqpefU+Mm/qqnOANW6IkqKpCSrarcyV269C8MA8Ux0dbkEuQwM/4CjL47kVEM2LgBef/ETfkH+c6+moFA=="
|
||||
},
|
||||
"@types/yargs": {
|
||||
"version": "17.0.22",
|
||||
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz",
|
||||
@@ -10736,6 +10785,21 @@
|
||||
"integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
|
||||
"dev": true
|
||||
},
|
||||
"class-transformer": {
|
||||
"version": "0.5.1",
|
||||
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz",
|
||||
"integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw=="
|
||||
},
|
||||
"class-validator": {
|
||||
"version": "0.14.0",
|
||||
"resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.0.tgz",
|
||||
"integrity": "sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==",
|
||||
"requires": {
|
||||
"@types/validator": "^13.7.10",
|
||||
"libphonenumber-js": "^1.10.14",
|
||||
"validator": "^13.7.0"
|
||||
}
|
||||
},
|
||||
"cli-cursor": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
|
||||
@@ -12841,6 +12905,11 @@
|
||||
"type-check": "~0.4.0"
|
||||
}
|
||||
},
|
||||
"libphonenumber-js": {
|
||||
"version": "1.10.19",
|
||||
"resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.19.tgz",
|
||||
"integrity": "sha512-MDZ1zLIkfSDZV5xBta3nuvbEOlsnKCPe4z5r3hyup/AXveevkl9A1eSWmLhd2FX4k7pJDe4MrLeQsux0HI/VWg=="
|
||||
},
|
||||
"lines-and-columns": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
|
||||
@@ -13050,6 +13119,11 @@
|
||||
"minimist": "^1.2.6"
|
||||
}
|
||||
},
|
||||
"moment": {
|
||||
"version": "2.29.4",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
|
||||
"integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
@@ -14419,6 +14493,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"validator": {
|
||||
"version": "13.9.0",
|
||||
"resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz",
|
||||
"integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA=="
|
||||
},
|
||||
"vary": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
||||
|
||||
@@ -23,6 +23,9 @@
|
||||
"@nestjs/common": "^9.0.0",
|
||||
"@nestjs/core": "^9.0.0",
|
||||
"@nestjs/platform-express": "^9.0.0",
|
||||
"class-transformer": "^0.5.1",
|
||||
"class-validator": "^0.14.0",
|
||||
"moment": "^2.29.4",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"rxjs": "^7.2.0"
|
||||
},
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { AppController } from './app.controller';
|
||||
import { AppService } from './app.service';
|
||||
|
||||
describe('AppController', () => {
|
||||
let appController: AppController;
|
||||
|
||||
beforeEach(async () => {
|
||||
const app: TestingModule = await Test.createTestingModule({
|
||||
controllers: [AppController],
|
||||
providers: [AppService],
|
||||
}).compile();
|
||||
|
||||
appController = app.get<AppController>(AppController);
|
||||
});
|
||||
|
||||
describe('root', () => {
|
||||
it('should return "Hello World!"', () => {
|
||||
expect(appController.getHello()).toBe('Hello World!');
|
||||
});
|
||||
});
|
||||
});
|
||||
+4
-5
@@ -1,12 +1,11 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { AppController } from './app.controller';
|
||||
import { AppService } from './app.service';
|
||||
import { EventsController } from './events/events.controller';
|
||||
import { EventsService } from './events/events.service';
|
||||
import { eventsModule } from './events/events.module';
|
||||
|
||||
@Module({
|
||||
imports: [],
|
||||
controllers: [AppController, EventsController],
|
||||
providers: [AppService, EventsService],
|
||||
imports: [eventsModule],
|
||||
controllers: [AppController],
|
||||
providers: [AppService],
|
||||
})
|
||||
export class AppModule {}
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
import { IsString } from "class-validator";
|
||||
import { IsBoolean, IsDate, IsNumber } from "class-validator";
|
||||
|
||||
export class CreateEventDto {
|
||||
@IsNumber()
|
||||
id_event: number
|
||||
|
||||
@IsString()
|
||||
event_name: string
|
||||
|
||||
@IsString()
|
||||
desciption:string
|
||||
|
||||
@IsNumber()
|
||||
limit: number
|
||||
|
||||
@IsDate()
|
||||
start_date:Date
|
||||
|
||||
@IsDate()
|
||||
end_date:Date
|
||||
|
||||
@IsDate()
|
||||
regitration_deadline:Date
|
||||
|
||||
@IsString()
|
||||
start_time:string
|
||||
|
||||
@IsString()
|
||||
end_time:string
|
||||
|
||||
@IsString()
|
||||
requirements: string
|
||||
|
||||
@IsString()
|
||||
modality: string
|
||||
|
||||
@IsString()
|
||||
place: string
|
||||
|
||||
@IsNumber()
|
||||
registration_fee: number
|
||||
|
||||
@IsString()
|
||||
sponsor: string
|
||||
|
||||
@IsString()
|
||||
type_acreditation: string
|
||||
|
||||
@IsString()
|
||||
event_type: string
|
||||
|
||||
@IsBoolean()
|
||||
active: boolean
|
||||
}
|
||||
+50
-16
@@ -1,18 +1,52 @@
|
||||
import { Column, Entity, PrimaryGeneratedColumn } from "typeorm";
|
||||
|
||||
@Entity()
|
||||
export class event {
|
||||
//evento_identificador:string
|
||||
id_event: number //id_evento
|
||||
event_name: string //nombre
|
||||
desciption:string //descripcion
|
||||
start_date:Date //fecha_inicio
|
||||
end_date:Date //fecha_fin
|
||||
regitration_deadline:Date //fecha_limite_inscripcionme
|
||||
schedule:Date //horarior
|
||||
requirements: string
|
||||
modality: string //modalidad
|
||||
place: string //lugar
|
||||
registration_fee: string //cuota_inscripcionl
|
||||
sponsor: string //patrocinador
|
||||
type_acreditation: string //tipo_acreditacion
|
||||
event_type: string //tipo_evento
|
||||
state: boolean //estado
|
||||
@PrimaryGeneratedColumn()
|
||||
id_evento: number
|
||||
|
||||
@Column()
|
||||
evento_identificador: string
|
||||
|
||||
@Column()
|
||||
nombre: string
|
||||
|
||||
@Column()
|
||||
fecha_inicio: Date
|
||||
|
||||
@Column()
|
||||
fecha_fin: Date
|
||||
|
||||
@Column()
|
||||
horario: string
|
||||
|
||||
@Column()
|
||||
requisitos: string
|
||||
|
||||
@Column()
|
||||
modalidad: string
|
||||
|
||||
@Column()
|
||||
lugar: string
|
||||
|
||||
@Column()
|
||||
cuota_inscripcion: number
|
||||
|
||||
@Column()
|
||||
patrocinador: string
|
||||
|
||||
@Column()
|
||||
tipo_acreditacion: string
|
||||
|
||||
@Column()
|
||||
fecha_limite_inscripcion: string
|
||||
|
||||
@Column()
|
||||
tipo_evento: string
|
||||
|
||||
@Column()
|
||||
estado: boolean
|
||||
|
||||
@Column()
|
||||
descripcion: string
|
||||
}
|
||||
@@ -1,35 +1,50 @@
|
||||
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post } from '@nestjs/common';
|
||||
import {
|
||||
Body,
|
||||
Controller,
|
||||
Delete,
|
||||
Get,
|
||||
HttpCode,
|
||||
HttpStatus,
|
||||
Param,
|
||||
Patch,
|
||||
Post,
|
||||
} from '@nestjs/common';
|
||||
import { CreateEventDto } from './dto/create-event.dto';
|
||||
import { event } from './event.entity';
|
||||
import { EventsService } from './events.service';
|
||||
|
||||
@Controller('events')
|
||||
export class EventsController {
|
||||
@Get()
|
||||
getEvents(): string{
|
||||
return "Aqui irán los eventos"
|
||||
}
|
||||
constructor(private readonly eventsServices: EventsService) {}
|
||||
|
||||
/* @Get(':id')
|
||||
@Get()
|
||||
getEvents(): event[] {
|
||||
return this.eventsServices.getEvents();
|
||||
}
|
||||
|
||||
/* @Get(':id')
|
||||
getEvent(@Param() params){
|
||||
return `El evento que estamos llamando es: ${params.id}`
|
||||
} */
|
||||
|
||||
@Get(':id')
|
||||
getEvent(@Param('id') id: string): string{
|
||||
return `El evento que estamos llamando es: ${id}`
|
||||
}
|
||||
@Get(':id')
|
||||
getEvent(@Param('id') id: string): event {
|
||||
return this.eventsServices.getEvent(parseInt(id));
|
||||
}
|
||||
|
||||
@Post()
|
||||
/* @HttpCode(HttpStatus.NO_CONTENT) esta linea es para no teornar nada*/
|
||||
createEvent(@Body('message') message: string){
|
||||
return `el evento creado es: ${message}`
|
||||
}
|
||||
@Post()
|
||||
createEvent(@Body() body: CreateEventDto): string {
|
||||
this.eventsServices.createEvent(body);
|
||||
return 'evento creado con exito';
|
||||
}
|
||||
|
||||
@Delete(':id')
|
||||
deleteEvent(@Param('id') id:string): string{
|
||||
return `Estamos borrando el evento: ${id}`
|
||||
}
|
||||
@Delete(':id')
|
||||
deleteEvent(@Param('id') id: string) {
|
||||
return this.eventsServices.deleteEvent(parseInt(id));
|
||||
}
|
||||
|
||||
@Patch(':id')
|
||||
updateEvent(@Param('id') id:string, @Body() body){
|
||||
return `Actualizando el evento: ${id}`
|
||||
}
|
||||
}
|
||||
@Patch(':id')
|
||||
updateEvent(@Param('id') id: string, @Body() body) {
|
||||
return `Actualizando el evento: ${id}`;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
import { Module } from "@nestjs/common";
|
||||
import { EventsController } from "./events.controller";
|
||||
import { EventsService } from "./events.service";
|
||||
|
||||
@Module({
|
||||
controllers: [EventsController],
|
||||
providers: [EventsService],
|
||||
})
|
||||
|
||||
export class eventsModule {}
|
||||
@@ -1,6 +1,71 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { Injectable, NotFoundException } from '@nestjs/common';
|
||||
import { event } from './event.entity';
|
||||
import * as moment from 'moment';
|
||||
import { CreateEventDto } from './dto/create-event.dto';
|
||||
|
||||
@Injectable()
|
||||
export class EventsService {
|
||||
|
||||
private events: event[] = [
|
||||
{
|
||||
id_event: 1, //id_evento
|
||||
event_name: 'Platica de ejemplo', //nombre
|
||||
desciption: 'Esta platica servira como ejemplo', //descripcion
|
||||
limit: 30, //limite
|
||||
start_date: new Date('2023-02-20'), //fecha_inicio
|
||||
end_date: new Date('2023-02-20'), //fecha_fin
|
||||
regitration_deadline: new Date('2023-02-19'), //fecha_limite_inscripcionme
|
||||
start_time: '13:00', //hora de inicio
|
||||
end_time: '14:00', //hora de fin
|
||||
requirements: 'Sin requerimientos de hardware ni conocimiento',
|
||||
modality: 'mixta', //modalidad
|
||||
place: 'CEDETEC', //lugar
|
||||
registration_fee: 0.0, //cuota_inscripcionl
|
||||
sponsor: 'CIDWA', //patrocinador
|
||||
type_acreditation: 'nose', //tipo_acreditacion
|
||||
event_type: 'Platica', //tipo_evento
|
||||
active: true, //estado
|
||||
}
|
||||
];
|
||||
|
||||
getEvents(): event[]{
|
||||
return this.events
|
||||
}
|
||||
|
||||
getEvent(id: number): event{
|
||||
const eventGetting = this.events.find((item) => item.id_event === id);
|
||||
if(!eventGetting){
|
||||
throw new NotFoundException("Evento no encontrado")
|
||||
}
|
||||
return eventGetting
|
||||
}
|
||||
|
||||
createEvent(body: CreateEventDto){
|
||||
this.events.push({
|
||||
id_event: (Math.floor(Math.random()*20000) + 1 ),
|
||||
event_name: body.event_name,
|
||||
desciption: body.desciption,
|
||||
limit: body.limit,
|
||||
start_date: body.start_date,
|
||||
end_date: body.end_date,
|
||||
regitration_deadline: body.regitration_deadline,
|
||||
start_time: body.start_time,
|
||||
end_time: body.end_time,
|
||||
requirements: body.requirements,
|
||||
modality: body.modality,
|
||||
place: body.place,
|
||||
registration_fee: body.registration_fee,
|
||||
sponsor: body.sponsor,
|
||||
type_acreditation: body.type_acreditation,
|
||||
event_type: body.event_type,
|
||||
active: body.active,
|
||||
})
|
||||
}
|
||||
|
||||
deleteEvent(id: number){
|
||||
const index = this.events.findIndex((event) => event.id_event === id);
|
||||
if(index >= 0){
|
||||
this.events.splice(index, 1)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user