diff --git a/public/carrusel/carrusel3.jpeg b/public/carrusel/carrusel3.jpeg new file mode 100644 index 0000000..8545066 Binary files /dev/null and b/public/carrusel/carrusel3.jpeg differ diff --git a/src/app.module.ts b/src/app.module.ts index 4e4e5a5..d10e6b9 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -54,6 +54,7 @@ import { ComentariosModule } from './comentarios/comentarios.module'; import { Comentarios } from './comentarios/entity/comentarios.entity'; import { AlmacenamientoModule } from './almacenamiento/almacenamiento.module'; import { Almacenamiento } from './almacenamiento/entity/almacenamiento.entity'; +import { TylController } from './tyl/tyl.controller'; @Module({ imports: [ @@ -134,6 +135,7 @@ import { Almacenamiento } from './almacenamiento/entity/almacenamiento.entity'; controllers: [ AppController, InscripcionStatusController, + TylController, ], providers: [AppService, InscripcionStatusService], }) diff --git a/src/carrusel/carrusel.service.ts b/src/carrusel/carrusel.service.ts index 18bf892..b20cb16 100644 --- a/src/carrusel/carrusel.service.ts +++ b/src/carrusel/carrusel.service.ts @@ -39,7 +39,24 @@ export class CarruselService { }); } carruselDto.ruta = `/public/carrusel/${filename}`; - const carruselCreate = this.carruselRepository.create(carruselDto); + + // Obtener el banner con mayor orden + const ultimoCarrusel = await this.carruselRepository.findOne({ + order: { + orden: 'DESC', + }, + }); + + const siguienteOrden = ultimoCarrusel + ? ultimoCarrusel.orden + 1 + : 1; + + // const carruselCreate = this.carruselRepository.create(carruselDto); + const carruselCreate = this.carruselRepository.create({ + ...carruselDto, + orden: siguienteOrden, + }); + try { const carrusel = await this.carruselRepository.save(carruselCreate); diff --git a/src/carrusel/entity/carrusel.entity.ts b/src/carrusel/entity/carrusel.entity.ts index 910488f..97f2cde 100644 --- a/src/carrusel/entity/carrusel.entity.ts +++ b/src/carrusel/entity/carrusel.entity.ts @@ -13,7 +13,6 @@ export class Carrusel { link: string /* "https://www.acatlan.unam.mx/" */ - // @Column({length: 20}) - // orden: string - + @Column({ type: 'int', unique: true }) + orden: string } \ No newline at end of file diff --git a/src/tyl/tyl.controller.spec.ts b/src/tyl/tyl.controller.spec.ts new file mode 100644 index 0000000..cb9541b --- /dev/null +++ b/src/tyl/tyl.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { TylController } from './tyl.controller'; + +describe('TylController', () => { + let controller: TylController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [TylController], + }).compile(); + + controller = module.get(TylController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/tyl/tyl.controller.ts b/src/tyl/tyl.controller.ts new file mode 100644 index 0000000..860442e --- /dev/null +++ b/src/tyl/tyl.controller.ts @@ -0,0 +1,40 @@ +import { Body, Controller, InternalServerErrorException, Post } from '@nestjs/common'; + +@Controller('tyl') +export class TylController { + @Post('') + async enviarTyl(@Body() body: { email: string }) { + try { + const user = 'acatlan' + const api = 'LW2rtatYP8o2PhCkIqeJV94d6a60cSvTmJXPbRpP'; + const params = new URLSearchParams(); + params.append('user_name', user!); + params.append('email', body.email); + params.append('api_key', process.env.API_KEY!); + + const response = await fetch( + 'https://accede.estudio.app/ventas-acatlan', + { + method: 'POST', + // headers: { + // 'Content-Type': 'application/x-www-form-urlencoded', + // }, + body: params, + redirect: 'manual', + } + ); + + console.log('respuesta', response); + + const redirectUrl = response.headers.get('location'); + + console.log('redirect', redirectUrl) + + return { redirectUrl }; + + } catch (error) { + throw new InternalServerErrorException('Error al conectar con API externa'); + } + } + +}