mirror of
https://github.com/foomo/contentserver.git
synced 2025-10-16 12:25:44 +00:00
fix #6: getNodes uses env dimensions if no node dimension was given by client request
This commit is contained in:
parent
a54924ee8d
commit
f9b44183f7
18
repo/repo.go
18
repo/repo.go
@ -66,16 +66,28 @@ func (repo *Repo) GetURIs(dimension string, ids []string) map[string]string {
|
||||
|
||||
// GetNodes get nodes
|
||||
func (repo *Repo) GetNodes(r *requests.Nodes) map[string]*content.Node {
|
||||
return repo.getNodes(r.Nodes, r.Env.Groups)
|
||||
return repo.getNodes(r.Nodes, r.Env)
|
||||
}
|
||||
|
||||
func (repo *Repo) getNodes(nodeRequests map[string]*requests.Node, groups []string) map[string]*content.Node {
|
||||
func (repo *Repo) getNodes(nodeRequests map[string]*requests.Node, env *requests.Env) map[string]*content.Node {
|
||||
nodes := map[string]*content.Node{}
|
||||
path := []*content.Item{}
|
||||
groups := env.Groups
|
||||
for nodeName, nodeRequest := range nodeRequests {
|
||||
log.Debug(" adding node " + nodeName + " " + nodeRequest.ID)
|
||||
|
||||
dimensionNode, ok := repo.Directory[nodeRequest.Dimension]
|
||||
nodes[nodeName] = nil
|
||||
|
||||
if !ok && nodeRequest.Dimension == "" {
|
||||
for _, dimension := range env.Dimensions {
|
||||
dimensionNode, ok = repo.Directory[dimension]
|
||||
if ok {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if !ok {
|
||||
log.Warning("could not get dimension root node for nodeRequest.Dimension: " + nodeRequest.Dimension)
|
||||
continue
|
||||
@ -144,7 +156,7 @@ func (repo *Repo) GetContent(r *requests.Content) (c *content.SiteContent, err e
|
||||
node.Dimension = resolvedDimension
|
||||
}
|
||||
}
|
||||
c.Nodes = repo.getNodes(r.Nodes, r.Env.Groups)
|
||||
c.Nodes = repo.getNodes(r.Nodes, r.Env)
|
||||
return c, nil
|
||||
}
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ type Env struct {
|
||||
Data interface{} `json:"data"`
|
||||
}
|
||||
|
||||
// Node - an abdtract node request, use this one to request navigations
|
||||
// Node - an abstract node request, use this one to request navigations
|
||||
type Node struct {
|
||||
// this one should be obvious
|
||||
ID string `json:"id"`
|
||||
|
||||
Loading…
Reference in New Issue
Block a user