package services import ( m "platform/web/models" q "platform/web/queries" ) var Edge = &edgeService{} type edgeService struct{} func (s *edgeService) AllEdges(count int, filter EdgeFilter) ([]*m.Edge, error) { do := q.Edge.Where() if filter.Prov != nil { do = do.Where(q.Edge.Prov.Eq(*filter.Prov)) } if filter.City != nil { do = do.Where(q.Edge.City.Eq(*filter.City)) } if filter.Isp != nil { do = do.Where(q.Edge.ISP.Eq(int(*filter.Isp))) } if count > 0 { do = do.Limit(count) } edges, err := q.Edge.Where(do).Find() if err != nil { return nil, err } return edges, nil } type EdgeFilter struct { Isp *m.EdgeISP `json:"isp"` Prov *string `json:"prov"` City *string `json:"city"` }