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
|
package lb_domains
import (
"fmt"
"net/http"
"github.com/mimuret/golang-iij-dpf/pkg/api"
"github.com/mimuret/golang-iij-dpf/pkg/apis"
"github.com/mimuret/golang-iij-dpf/pkg/schema"
)
const groupName = "lb-domains.api.dns-platform.jp/v1"
func register(items ...apis.Spec) {
schema.NewRegister(groupName).Add(items...)
}
type Spec interface {
api.Spec
apis.Params
GetLBDoaminID() string
SetLBDoaminID(string)
}
type ChildSpec interface {
Spec
GetResourceName() string
SetResourceName(string)
}
type ListSpec interface {
api.ListSpec
Spec
}
type CountableListSpec interface {
api.CountableListSpec
Spec
}
type AttributeMeta struct {
LBDomainID string
}
func (s *AttributeMeta) GetGroup() string { return groupName }
func (s *AttributeMeta) GetLBDoaminID() string { return s.LBDomainID }
func (s *AttributeMeta) SetLBDoaminID(id string) { s.LBDomainID = id }
func GetPathMethodForChildSpec(action api.Action, s ChildSpec) (string, string) {
switch action {
case api.ActionCreate:
return action.ToMethod(), fmt.Sprintf("/lb_domains/%s/%s", s.GetLBDoaminID(), s.GetName())
case api.ActionRead, api.ActionUpdate, api.ActionDelete:
return action.ToMethod(), fmt.Sprintf("/lb_domains/%s/%s/%s", s.GetLBDoaminID(), s.GetName(), s.GetResourceName())
}
return "", ""
}
func GetPathMethodForListSpec(action api.Action, s ListSpec) (string, string) {
if action == api.ActionList {
return http.MethodGet, fmt.Sprintf("/lb_domains/%s/%s", s.GetLBDoaminID(), s.GetName())
}
return "", ""
}
func GetPathMethodForCountableListSpec(action api.Action, s ListSpec) (string, string) {
switch action {
case api.ActionList:
return http.MethodGet, fmt.Sprintf("/lb_domains/%s/%s", s.GetLBDoaminID(), s.GetName())
case api.ActionCount:
if _, ok := s.(api.CountableListSpec); ok {
return http.MethodGet, fmt.Sprintf("/lb_domains/%s/%s/count", s.GetLBDoaminID(), s.GetName())
}
}
return "", ""
}
|