File

src/events/events.service.ts

Index

Methods

Constructor

constructor(eventRp: Repository<EventEntity>)
Parameters :
Name Type Optional
eventRp Repository<EventEntity> No

Methods

Async deleteEvent
deleteEvent(id: any)
Parameters :
Name Type Optional
id any No
Returns : unknown
Async eventMoreRecent
eventMoreRecent()
Returns : unknown
Async eventProximityEvent
eventProximityEvent()
Returns : unknown
Async findAllEvents
findAllEvents()
Returns : unknown
Async saveEvent
saveEvent(event: any)
Parameters :
Name Type Optional
event any No
Returns : unknown
Async updatEevent
updatEevent(id: number, event: any)
Parameters :
Name Type Optional
id number No
event any No
Returns : unknown
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { EventEntity } from 'src/database/entity/event-entity/event-entity';
import { ServicesEntity } from 'src/database/entity/services-entity/services-entity';
import { ExceptionErrorMessage } from 'src/validation/exception-error';
import { MoreThan, Repository } from 'typeorm';

@Injectable()
export class EventsService {
    constructor(@InjectRepository(EventEntity)
    private readonly eventRp:Repository<EventEntity>){

    }
    //Guardar Evento
    async saveEvent(event:any){
        try {
            return await this.eventRp.save(event);
        } catch (error) {
            ExceptionErrorMessage(error);            
        }
    }

    //Actualizar Evento
    async updatEevent(id:number, event:any){
        try {
            await this.eventRp.update(id,event);
            return await this.eventRp.findOneBy({id:id});
        } catch (error) {
            ExceptionErrorMessage(error);            
        }
    }

    //Listar Eventos
    async findAllEvents(){
        try {
            return await this.eventRp.find({order:{createdAt:'DESC'},relations:{user:true}});
        } catch (error) {
            ExceptionErrorMessage(error);            
        }
    }

    //Extraer el Evento mas cercano
    async eventMoreRecent(){
        try {
            return await this.eventRp.find({where:{dateAndTime: MoreThan(new Date()), status:true},order:{dateAndTime:'ASC'},take:1});
        } catch (error) {
            ExceptionErrorMessage(error);            
        }
    }


    //Extraer los eventos que se aproximan
    async eventProximityEvent(){
        try {
            return await this.eventRp.find({where:{dateAndTime: MoreThan(new Date())},order:{dateAndTime:'DESC'},relations:{user:true},select: {
                user: {
                  id: true,
                  fullName:true,
                  rol:true,
                  password:false
                }
              }});
        } catch (error) {
            ExceptionErrorMessage(error);            
        }
    }

    //Borrar Evento
    async deleteEvent(id:any){
        try {
            await this.eventRp.createQueryBuilder()
                .update(ServicesEntity)
                .set({ status: false})
                .where("id = :id", { id: id})
                .execute();
            return { message:"Se ha modificado el registro seleccionado" };

        }
        catch(error){
            ExceptionErrorMessage(error);            
        }
    }
}

results matching ""

    No results matching ""