Files
platform/web/services/edge.go

44 lines
807 B
Go

package services
import (
edge2 "platform/web/domains/edge"
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(q.Edge.Status.Eq(1))
if filter.Prov != "" {
do = do.Where(q.Edge.Prov.Eq(filter.Prov))
}
if filter.City != "" {
do = do.Where(q.Edge.City.Eq(filter.City))
}
if filter.Isp != "" {
do = do.Where(q.Edge.Isp.Eq(int32(edge2.ISPFromStr(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 EdgeInfo struct {
}
type EdgeFilter struct {
Isp string `json:"isp"`
Prov string `json:"prov"`
City string `json:"city"`
}