-
Notifications
You must be signed in to change notification settings - Fork 54
/
package.go
81 lines (66 loc) · 2.13 KB
/
package.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package payloads
import (
"net/url"
"code.cloudfoundry.org/korifi/api/repositories"
)
type PackageCreate struct {
Type string `json:"type" validate:"required,oneof='bits'"`
Relationships *PackageRelationships `json:"relationships" validate:"required"`
Metadata Metadata `json:"metadata"`
}
type PackageRelationships struct {
App *Relationship `json:"app" validate:"required"`
}
func (m PackageCreate) ToMessage(record repositories.AppRecord) repositories.CreatePackageMessage {
return repositories.CreatePackageMessage{
Type: m.Type,
AppGUID: record.GUID,
SpaceGUID: record.SpaceGUID,
Metadata: repositories.Metadata{
Annotations: m.Metadata.Annotations,
Labels: m.Metadata.Labels,
},
}
}
type PackageUpdate struct {
Metadata MetadataPatch `json:"metadata"`
}
func (u *PackageUpdate) ToMessage(packageGUID string) repositories.UpdatePackageMessage {
return repositories.UpdatePackageMessage{
GUID: packageGUID,
MetadataPatch: repositories.MetadataPatch{
Annotations: u.Metadata.Annotations,
Labels: u.Metadata.Labels,
},
}
}
type PackageListQueryParameters struct {
AppGUIDs string
States string
}
func (p *PackageListQueryParameters) ToMessage() repositories.ListPackagesMessage {
return repositories.ListPackagesMessage{
AppGUIDs: ParseArrayParam(p.AppGUIDs),
States: ParseArrayParam(p.States),
}
}
func (p *PackageListQueryParameters) SupportedKeys() []string {
return []string{"app_guids", "order_by", "per_page", "states"}
}
func (p *PackageListQueryParameters) DecodeFromURLValues(values url.Values) error {
p.AppGUIDs = values.Get("app_guids")
p.States = values.Get("states")
return nil
}
type PackageListDropletsQueryParameters struct{}
func (p *PackageListDropletsQueryParameters) ToMessage(packageGUIDs []string) repositories.ListDropletsMessage {
return repositories.ListDropletsMessage{
PackageGUIDs: packageGUIDs,
}
}
func (p *PackageListDropletsQueryParameters) SupportedKeys() []string {
return []string{"states", "per_page"}
}
func (p *PackageListDropletsQueryParameters) DecodeFromURLValues(values url.Values) error {
return nil
}