-
Notifications
You must be signed in to change notification settings - Fork 56
/
route.go
52 lines (45 loc) · 1.72 KB
/
route.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
44
45
46
47
48
49
50
51
52
package payloads
import (
"code.cloudfoundry.org/korifi/api/repositories"
)
type RouteCreate struct {
Host string `json:"host" validate:"hostname_rfc1123,required"` // TODO: Not required when we support private domains
Path string `json:"path" validate:"routepathstartswithslash"`
Relationships RouteRelationships `json:"relationships" validate:"required"`
Metadata Metadata `json:"metadata"`
}
type RouteRelationships struct {
Domain Relationship `json:"domain" validate:"required"`
Space Relationship `json:"space" validate:"required"`
}
func (p RouteCreate) ToMessage(domainNamespace, domainName string) repositories.CreateRouteMessage {
return repositories.CreateRouteMessage{
Host: p.Host,
Path: p.Path,
SpaceGUID: p.Relationships.Space.Data.GUID,
DomainGUID: p.Relationships.Domain.Data.GUID,
DomainNamespace: domainNamespace,
DomainName: domainName,
Labels: p.Metadata.Labels,
Annotations: p.Metadata.Annotations,
}
}
type RouteList struct {
AppGUIDs *string `schema:"app_guids"`
SpaceGUIDs *string `schema:"space_guids"`
DomainGUIDs *string `schema:"domain_guids"`
Hosts *string `schema:"hosts"`
Paths *string `schema:"paths"`
}
func (p *RouteList) ToMessage() repositories.ListRoutesMessage {
return repositories.ListRoutesMessage{
AppGUIDs: ParseArrayParam(p.AppGUIDs),
SpaceGUIDs: ParseArrayParam(p.SpaceGUIDs),
DomainGUIDs: ParseArrayParam(p.DomainGUIDs),
Hosts: ParseArrayParam(p.Hosts),
Paths: ParseArrayParam(p.Paths),
}
}
func (p *RouteList) SupportedFilterKeys() []string {
return []string{"app_guids", "space_guids", "domain_guids", "hosts", "paths"}
}