/
service.go
43 lines (34 loc) · 930 Bytes
/
service.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package routing
import (
"github.com/joscha-alisch/dyve/internal/core/database"
"github.com/joscha-alisch/dyve/pkg/provider/sdk"
"go.mongodb.org/mongo-driver/bson"
)
type Service interface {
GetRoutes(app string) (sdk.AppRouting, error)
UpdateRoutes(app string, routes sdk.AppRouting) error
}
const Collection = "routing"
func NewService(db database.Database) Service {
return &service{
db: db,
}
}
type service struct {
db database.Database
}
type routeData struct {
Id string `bson:"id"`
RouteData sdk.AppRouting `json:"routeData"`
}
func (s *service) GetRoutes(app string) (sdk.AppRouting, error) {
res := routeData{}
err := s.db.FindOneById(Collection, app, &res)
return res.RouteData, err
}
func (s *service) UpdateRoutes(app string, routes sdk.AppRouting) error {
return s.db.UpdateOne(Collection, bson.M{"id": app}, true, routeData{
Id: app,
RouteData: routes,
}, nil)
}