-
Notifications
You must be signed in to change notification settings - Fork 1
/
quality.go
31 lines (28 loc) · 931 Bytes
/
quality.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package db
import "github.com/hobeone/tv2go/quality"
// GetQualityGroups returns all quality groups.
func (h *Handle) GetQualityGroups() ([]quality.QualityGroup, error) {
groups := []quality.QualityGroup{}
err := h.db.Find(&groups).Error
if err != nil {
return groups, err
}
return groups, nil
}
// GetQualityGroupFromStringOrDefault tries to find a matching QualityGroup
// with the given name. If that doesn't exist it returns the first one with
// the Default bit set. If _that_ fails it will return (and create inthe db)
// the hardcoded default.
func (h *Handle) GetQualityGroupFromStringOrDefault(name string) *quality.QualityGroup {
qual := &quality.QualityGroup{}
err := h.db.Where("name = ?", name).Find(qual).Error
if err == nil {
return qual
}
err = h.db.Where("default = ?", true).Find(qual).Error
if err == nil {
return qual
}
h.db.FirstOrInit(qual, quality.DefaultQualityGroup)
return qual
}