heating-monitor/internal/repository/repository.go

45 lines
1.1 KiB
Go
Raw Normal View History

2024-11-28 13:52:58 +01:00
package repository
import (
2024-11-28 22:51:32 +01:00
"fmt"
2024-11-28 13:52:58 +01:00
"heating-monitor/internal/bot"
"gorm.io/gorm"
)
// GetEventByID obtiene un evento de la base de datos por su ID
func GetEventByID(db *gorm.DB, id int) (*bot.HeatingEvent, error) {
var event bot.HeatingEvent
if err := db.First(&event, id).Error; err != nil {
return nil, err
}
return &event, nil
}
// UpdateEventByID actualiza un evento por su ID
func UpdateEventByID(db *gorm.DB, id int, updatedEvent *bot.HeatingEvent) (*bot.HeatingEvent, error) {
var event bot.HeatingEvent
if err := db.First(&event, id).Error; err != nil {
return nil, err
}
// Actualizamos los campos relevantes del evento
event.EventType = updatedEvent.EventType
event.Timestamp = updatedEvent.Timestamp
if err := db.Save(&event).Error; err != nil {
return nil, err
}
return &event, nil
}
2024-11-28 22:51:32 +01:00
// DeleteEventByID elimina un evento por su ID
func DeleteEventByID(db *gorm.DB, id int) error {
result := db.Delete(&bot.HeatingEvent{}, id)
if result.Error != nil {
return result.Error
}
if result.RowsAffected == 0 {
return fmt.Errorf("No se encontró un evento con el ID %d", id)
}
return nil
}