mirror of
https://github.com/muety/wakapi.git
synced 2023-08-10 21:12:56 +03:00
fix: critical fixes related to alias resolution
This commit is contained in:
67
models/filters.go
Normal file
67
models/filters.go
Normal file
@@ -0,0 +1,67 @@
|
||||
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:
|
||||
return &Filters{Project: key}
|
||||
case SummaryLanguage:
|
||||
return &Filters{Project: key}
|
||||
case SummaryEditor:
|
||||
return &Filters{Project: key}
|
||||
case SummaryMachine:
|
||||
return &Filters{Project: key}
|
||||
}
|
||||
return &Filters{}
|
||||
}
|
||||
|
||||
func (f *Filters) First() (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, ""
|
||||
}
|
||||
|
||||
func (f *Filters) All() []*FilterElement {
|
||||
all := make([]*FilterElement, 0)
|
||||
|
||||
if f.Project != "" {
|
||||
all = append(all, &FilterElement{Type: SummaryProject, Key: f.Project})
|
||||
}
|
||||
if f.Editor != "" {
|
||||
all = append(all, &FilterElement{Type: SummaryEditor, Key: f.Editor})
|
||||
}
|
||||
if f.Language != "" {
|
||||
all = append(all, &FilterElement{Type: SummaryLanguage, Key: f.Language})
|
||||
}
|
||||
if f.Machine != "" {
|
||||
all = append(all, &FilterElement{Type: SummaryMachine, Key: f.Machine})
|
||||
}
|
||||
if f.OS != "" {
|
||||
all = append(all, &FilterElement{Type: SummaryOS, Key: f.OS})
|
||||
}
|
||||
|
||||
return all
|
||||
}
|
||||
Reference in New Issue
Block a user