aboutsummaryrefslogtreecommitdiff
path: root/repositories/genre.go
blob: 0d95f666e39ad00d8d058efe9edef7694569c100 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package repositories

import (
	"errors"
	"metachan/entities"
	"metachan/utils/logger"

	"gorm.io/gorm/clause"
)

func CreateOrUpdateGenre(genre *entities.Genre) error {
	result := DB.Clauses(clause.OnConflict{
		Columns:   []clause.Column{{Name: "genre_id"}},
		DoUpdates: clause.AssignmentColumns([]string{"name", "url", "count"}),
	}).Create(genre)

	if result.Error != nil {
		logger.Errorf("Genre", "Failed to create or update genre: %v", result.Error)
		return errors.New("failed to create or update genre")
	}

	return nil
}