NAM-APJATEL-BACKEND/repository/tower_repo.go

58 lines
1.0 KiB
Go

package repository
import (
"users_management/m/model/entity"
"gorm.io/gorm"
)
type TowerRepo interface {
Post(tower entity.Tower) error
GetAll() ([]entity.Tower, error)
Update(tower entity.Tower) error
GetByID(id string) (entity.Tower, error)
}
type towerRepo struct {
db *gorm.DB
}
func NewTowerRepo(db *gorm.DB) TowerRepo {
return &towerRepo{
db: db,
}
}
func (r *towerRepo) Post(tower entity.Tower) error {
err := r.db.Create(&tower).Error
if err != nil {
return err
}
return nil
}
func (r *towerRepo) GetAll() ([]entity.Tower, error) {
var towers []entity.Tower
err := r.db.Find(&towers).Error
if err != nil {
return towers, err
}
return towers, nil
}
func (r *towerRepo) Update(tower entity.Tower) error {
err := r.db.Save(&tower).Error
if err != nil {
return err
}
return nil
}
func (r *towerRepo) GetByID(id string) (entity.Tower, error) {
var tower entity.Tower
err := r.db.Where("id = ?", id).First(&tower).Error
if err != nil {
return tower, err
}
return tower, nil
}