Filter vehicle administrators
This commit is contained in:
@@ -17,9 +17,10 @@ type Vehicle struct {
|
||||
}
|
||||
|
||||
type VehicleFilters struct {
|
||||
Types []string
|
||||
AvailableFrom time.Time
|
||||
AvailableTo time.Time
|
||||
Types []string
|
||||
Administrators []string
|
||||
AvailableFrom time.Time
|
||||
AvailableTo time.Time
|
||||
}
|
||||
|
||||
func (v Vehicle) Free(start time.Time, end time.Time) bool {
|
||||
@@ -49,6 +50,21 @@ func (v Vehicle) MatchesFilters(filters VehicleFilters) bool {
|
||||
}
|
||||
}
|
||||
|
||||
if len(filters.Administrators) > 0 {
|
||||
found := false
|
||||
for _, a := range filters.Administrators {
|
||||
for _, va := range v.Administrators {
|
||||
if a == va {
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
if !v.Free(filters.AvailableFrom, filters.AvailableTo) {
|
||||
return false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user