wakapi/models/filters.go

46 lines
943 B
Go
Raw Normal View History

package models
type Filters struct {
Project string
OS string
Language string
Editor string
Machine 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}
}
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
}
return false, 0, ""
}