NAM-APJATEL-BACKEND/repository/fishbone_repo.go

59 lines
1.2 KiB
Go

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