bill-server-go/internal/label/reposiroty.go

45 lines
958 B
Go
Raw Normal View History

2023-05-31 16:36:45 +08:00
package label
2023-06-01 19:40:48 +08:00
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
2023-06-10 15:18:44 +08:00
if err := s.DB.Find(&labels).Error; err != nil {
return nil, err
2023-06-01 19:40:48 +08:00
}
return labels, nil
}
func (s *sqliteRepository) GetLabelById(ctx context.Context, id int) (*Label, error) {
2023-06-02 16:07:54 +08:00
var label Label
2023-06-10 15:18:44 +08:00
if err := s.DB.Where("id =?", id).First(&label).Error; err != nil {
return nil, err
2023-06-02 16:07:54 +08:00
}
return &label, nil
2023-06-01 19:40:48 +08:00
}
func (s *sqliteRepository) CreateLabel(ctx context.Context, label *Label) error {
2023-06-02 16:07:54 +08:00
return s.Create(label).Error
2023-06-01 19:40:48 +08:00
}
func (s *sqliteRepository) UpdateLabel(ctx context.Context, label *Label) error {
2023-06-02 16:07:54 +08:00
return s.Save(label).Error
2023-06-01 19:40:48 +08:00
}
func (s *sqliteRepository) DeleteLabel(ctx context.Context, id int) error {
2023-06-10 15:18:44 +08:00
return s.Where("id =?", id).Delete(&Label{}).Error
2023-06-01 19:40:48 +08:00
}