mirror of
https://github.com/foomo/contentserver.git
synced 2025-10-16 12:25:44 +00:00
new request: item map - this one is useful for switching languages
This commit is contained in:
parent
09e331075a
commit
07d6a3d325
BIN
ContentServer
BIN
ContentServer
Binary file not shown.
@ -11,6 +11,7 @@ type Node struct {
|
|||||||
func NewNode() *Node {
|
func NewNode() *Node {
|
||||||
node := new(Node)
|
node := new(Node)
|
||||||
node.Item = NewItem()
|
node.Item = NewItem()
|
||||||
|
//node.Index = []
|
||||||
node.Nodes = make(map[string]*Node)
|
node.Nodes = make(map[string]*Node)
|
||||||
return node
|
return node
|
||||||
}
|
}
|
||||||
|
|||||||
@ -53,6 +53,22 @@ func (repo *Repo) ResolveContent(URI string) (resolved bool, resolvedURI string,
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (repo *Repo) GetItemMap(id string) map[string]map[string]*content.Item {
|
||||||
|
itemMap := make(map[string]map[string]*content.Item)
|
||||||
|
if repoNode, ok := repo.Directory[id]; ok {
|
||||||
|
for region, languageURIs := range repoNode.URIs {
|
||||||
|
itemMap[region] = make(map[string]*content.Item)
|
||||||
|
for language, URI := range languageURIs {
|
||||||
|
log.Debug(fmt.Sprintf("region :%s language :%s URI: %s", region, language, URI))
|
||||||
|
itemMap[region][language] = repoNode.ToItem(region, language)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.Warning("GetItemMapForAllRegionsAndLanguages invalid id " + id)
|
||||||
|
}
|
||||||
|
return itemMap
|
||||||
|
}
|
||||||
|
|
||||||
func (repo *Repo) GetURIs(region string, language string, ids []string) map[string]string {
|
func (repo *Repo) GetURIs(region string, language string, ids []string) map[string]string {
|
||||||
uris := make(map[string]string)
|
uris := make(map[string]string)
|
||||||
for _, id := range ids {
|
for _, id := range ids {
|
||||||
@ -109,7 +125,12 @@ func (repo *Repo) GetContent(r *requests.Content) *content.SiteContent {
|
|||||||
c.Data = node.Data
|
c.Data = node.Data
|
||||||
for treeName, treeRequest := range r.Nodes {
|
for treeName, treeRequest := range r.Nodes {
|
||||||
log.Debug(" adding tree " + treeName + " " + treeRequest.Id)
|
log.Debug(" adding tree " + treeName + " " + treeRequest.Id)
|
||||||
c.Nodes[treeName] = repo.GetNode(repo.Directory[treeRequest.Id], treeRequest.Expand, treeRequest.MimeTypes, c.Path, region, language)
|
if treeNode, ok := repo.Directory[treeRequest.Id]; ok {
|
||||||
|
c.Nodes[treeName] = repo.GetNode(treeNode, treeRequest.Expand, treeRequest.MimeTypes, c.Path, region, language)
|
||||||
|
} else {
|
||||||
|
log.Warning("you are requesting an invalid tree node for " + treeName + " : " + treeRequest.Id)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.Notice("404 for " + r.URI)
|
log.Notice("404 for " + r.URI)
|
||||||
|
|||||||
9
server/requests/itemMap.go
Normal file
9
server/requests/itemMap.go
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
package requests
|
||||||
|
|
||||||
|
type ItemMap struct {
|
||||||
|
Id string `json:"id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewItemMap() *ItemMap {
|
||||||
|
return new(ItemMap)
|
||||||
|
}
|
||||||
@ -42,6 +42,13 @@ func handleSocketRequest(handler string, jsonBuffer []byte) (replyBytes []byte,
|
|||||||
content := contentRepo.GetContent(contentRequest)
|
content := contentRepo.GetContent(contentRequest)
|
||||||
reply = content
|
reply = content
|
||||||
break
|
break
|
||||||
|
case "getItemMap":
|
||||||
|
itemMapRequest := requests.NewItemMap()
|
||||||
|
jsonErr = json.Unmarshal(jsonBuffer, &itemMapRequest)
|
||||||
|
log.Debug(" itemMapRequest: " + fmt.Sprint(itemMapRequest))
|
||||||
|
itemMap := contentRepo.GetItemMap(itemMapRequest.Id)
|
||||||
|
reply = itemMap
|
||||||
|
break
|
||||||
default:
|
default:
|
||||||
err = errors.New(log.Error(" can not handle this one " + handler))
|
err = errors.New(log.Error(" can not handle this one " + handler))
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user