bill-server-go/internal/label/reposiroty.go
2023-06-10 15:18:44 +08:00

45 lines
958 B
Go

package label
import (
"context"
"gorm.io/gorm"
)
type sqliteRepository struct {
*gorm.DB
}
func NewLabelRepository(db *gorm.DB) LabelRepository {
return &sqliteRepository{
db,
}
}
func (s *sqliteRepository) GetLabels(ctx context.Context) ([]Label, error) {
var labels []Label
if err := s.DB.Find(&labels).Error; err != nil {
return nil, err
}
return labels, nil
}
func (s *sqliteRepository) GetLabelById(ctx context.Context, id int) (*Label, error) {
var label Label
if err := s.DB.Where("id =?", id).First(&label).Error; err != nil {
return nil, err
}
return &label, nil
}
func (s *sqliteRepository) CreateLabel(ctx context.Context, label *Label) error {
return s.Create(label).Error
}
func (s *sqliteRepository) UpdateLabel(ctx context.Context, label *Label) error {
return s.Save(label).Error
}
func (s *sqliteRepository) DeleteLabel(ctx context.Context, id int) error {
return s.Where("id =?", id).Delete(&Label{}).Error
}