1
0
mirror of https://github.com/muety/wakapi.git synced 2023-08-10 21:12:56 +03:00
wakapi/models/filters.go

51 lines
1.0 KiB
Go
Raw Normal View History

package models
type Filters struct {
Project string
OS string
Language string
Editor string
Machine string
Label string
}
type FilterElement struct {
Type uint8
Key string
}
func NewFiltersWith(entity uint8, key string) *Filters {
switch entity {
case SummaryProject:
return &Filters{Project: key}
case SummaryOS:
2020-11-07 20:39:36 +03:00
return &Filters{OS: key}
case SummaryLanguage:
2020-11-07 20:39:36 +03:00
return &Filters{Language: key}
case SummaryEditor:
2020-11-07 20:39:36 +03:00
return &Filters{Editor: key}
case SummaryMachine:
2020-11-07 20:39:36 +03:00
return &Filters{Machine: key}
case SummaryLabel:
return &Filters{Label: key}
}
return &Filters{}
}
func (f *Filters) One() (bool, uint8, string) {
if f.Project != "" {
return true, SummaryProject, f.Project
} else if f.OS != "" {
return true, SummaryOS, f.OS
} else if f.Language != "" {
return true, SummaryLanguage, f.Language
} else if f.Editor != "" {
return true, SummaryEditor, f.Editor
} else if f.Machine != "" {
return true, SummaryMachine, f.Machine
2021-06-13 11:14:15 +03:00
} else if f.Label != "" {
return true, SummaryLabel, f.Label
}
return false, 0, ""
}