All checks were successful
Go / build (push) Successful in 12m50s
paper weight is missing
83 lines
1.5 KiB
Go
83 lines
1.5 KiB
Go
package repositories
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
"gorm.io/gorm"
|
|
|
|
"git.dynamicdiscord.de/kalipso/zineshop/models"
|
|
)
|
|
|
|
type PaperRepository interface {
|
|
Create(models.Paper) (models.Paper, error)
|
|
GetAll() ([]models.Paper, error)
|
|
GetById(string) (models.Paper, error)
|
|
//GetByShopItemId(string) (models.Paper, error)
|
|
Update(models.Paper) (models.Paper, error)
|
|
DeleteById(string) error
|
|
}
|
|
|
|
type GORMPaperRepository struct {
|
|
DB *gorm.DB
|
|
}
|
|
|
|
func NewGORMPaperRepository(db *gorm.DB) PaperRepository {
|
|
return &GORMPaperRepository{
|
|
DB: db,
|
|
}
|
|
}
|
|
|
|
func (t *GORMPaperRepository) Create(tag models.Paper) (models.Paper, error) {
|
|
result := t.DB.Create(&tag)
|
|
|
|
if result.Error != nil {
|
|
return models.Paper{}, result.Error
|
|
}
|
|
|
|
return tag, nil
|
|
}
|
|
|
|
func (t *GORMPaperRepository) GetAll() ([]models.Paper, error) {
|
|
var tags []models.Paper
|
|
result := t.DB.Find(&tags)
|
|
|
|
return tags, result.Error
|
|
}
|
|
|
|
func (t *GORMPaperRepository) GetById(id string) (models.Paper, error) {
|
|
tagId, err := strconv.Atoi(id)
|
|
|
|
if err != nil {
|
|
return models.Paper{}, err
|
|
}
|
|
|
|
var tag models.Paper
|
|
result := t.DB.First(&tag, uint(tagId))
|
|
|
|
if result.Error != nil {
|
|
return models.Paper{}, result.Error
|
|
}
|
|
|
|
return tag, nil
|
|
}
|
|
|
|
func (t *GORMPaperRepository) Update(tag models.Paper) (models.Paper, error) {
|
|
result := t.DB.Save(&tag)
|
|
if result.Error != nil {
|
|
return models.Paper{}, result.Error
|
|
}
|
|
|
|
return tag, nil
|
|
}
|
|
|
|
func (t *GORMPaperRepository) DeleteById(id string) error {
|
|
tagId, err := strconv.Atoi(id)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
result := t.DB.Delete(&models.Paper{}, tagId)
|
|
return result.Error
|
|
}
|