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 {
|
||||
node := new(Node)
|
||||
node.Item = NewItem()
|
||||
//node.Index = []
|
||||
node.Nodes = make(map[string]*Node)
|
||||
return node
|
||||
}
|
||||
|
||||
@ -53,6 +53,22 @@ func (repo *Repo) ResolveContent(URI string) (resolved bool, resolvedURI string,
|
||||
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 {
|
||||
uris := make(map[string]string)
|
||||
for _, id := range ids {
|
||||
@ -109,7 +125,12 @@ func (repo *Repo) GetContent(r *requests.Content) *content.SiteContent {
|
||||
c.Data = node.Data
|
||||
for treeName, treeRequest := range r.Nodes {
|
||||
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 {
|
||||
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)
|
||||
reply = content
|
||||
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:
|
||||
err = errors.New(log.Error(" can not handle this one " + handler))
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user