/
get_browse_nodes.go
44 lines (35 loc) · 1.13 KB
/
get_browse_nodes.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
package api
import (
"errors"
)
// GetBrowseNodesResponse holds response from GetBrowseNodes operation
type GetBrowseNodesResponse struct {
Errors []Error `json:"Errors,omitempty"`
BrowseNodesResult BrowseNodesResult `json:"BrowseNodesResult,omitempty"`
}
// GetBrowseNodesParams holds parameters to be passed to GetBrowseNodes operation
type GetBrowseNodesParams struct {
BrowseNodeIds []string
LanguagesOfPreference []Language
Resources []Resource
}
// ResourceList returns the list of resources in GetBrowseNodesParams
func (p GetBrowseNodesParams) ResourceList() []Resource {
return p.Resources
}
// Payload constructs payload to be sent along with the API request
func (p GetBrowseNodesParams) Payload() (map[string]interface{}, error) {
kv := map[string]interface{}{}
if len(p.BrowseNodeIds) > 0 {
kv["BrowseNodeIds"] = p.BrowseNodeIds
} else {
return nil, errors.New("One or more browse node ids required")
}
if len(p.LanguagesOfPreference) > 0 {
kv["LanguagesOfPreference"] = p.LanguagesOfPreference
}
if len(p.Resources) > 0 {
kv["Resources"] = p.Resources
}
return kv, nil
}