Some checks failed
SonarQube / SonarQube (push) Failing after 5m28s
E2e test on main branch push / server and client test (map[name:admin port:8080]) (push) Failing after 3m33s
Server and lib tests / Library test (js) (push) Failing after 1m36s
Server and lib tests / Library test (vue) (push) Successful in 2m24s
Server and lib tests / Web client test (admin) (push) Successful in 2m52s
Server and lib tests / Web client test (compose) (push) Successful in 3m23s
Server and lib tests / Web client test (discovery) (push) Successful in 2m49s
Server and lib tests / Web client test (one) (push) Successful in 2m52s
Server and lib tests / Web client test (privacy) (push) Successful in 2m44s
Server and lib tests / Web client test (reporter) (push) Successful in 2m56s
Server and lib tests / Web client test (workflow) (push) Successful in 3m0s
Server and lib tests / Server tests (push) Failing after 4m55s
E2e test on main branch push / notify-failure (push) Failing after 9s
Server and lib tests / Send matrix testing notification (push) Successful in 2s
Mark stale issues and pull requests / stale (push) Successful in 40s
58 lines
1.3 KiB
Go
58 lines
1.3 KiB
Go
package yaml
|
|
|
|
import (
|
|
"github.com/cortezaproject/corteza/server/pkg/envoy/resource"
|
|
"github.com/cortezaproject/corteza/server/system/types"
|
|
)
|
|
|
|
type (
|
|
resourceTranslation struct {
|
|
// set of locales
|
|
locales types.ResourceTranslationSet
|
|
|
|
// point to the locale resource
|
|
refResourceTranslation string
|
|
refLocaleRes *resource.Ref
|
|
|
|
// PathRes and PathResource slices hold parent resources we should nest the rule by
|
|
refPathRes []*resource.Ref
|
|
}
|
|
|
|
resourceTranslationSet []*resourceTranslation
|
|
)
|
|
|
|
func (ll resourceTranslationSet) groupByResourceTranslation() (out resourceTranslationSet) {
|
|
resMap := make(map[string]*resourceTranslation)
|
|
|
|
for _, _l := range ll {
|
|
l := _l
|
|
|
|
if _, ok := resMap[l.refResourceTranslation]; !ok {
|
|
resMap[l.refResourceTranslation] = l
|
|
continue
|
|
}
|
|
|
|
resMap[l.refResourceTranslation].locales = append(resMap[l.refResourceTranslation].locales, l.locales...)
|
|
}
|
|
|
|
for _, l := range resMap {
|
|
out = append(out, l)
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func resourceTranslationFromResource(r *resource.ResourceTranslation, cfg *EncoderConfig) *resourceTranslation {
|
|
if len(r.Res) == 0 {
|
|
return nil
|
|
}
|
|
return &resourceTranslation{
|
|
locales: r.Res,
|
|
|
|
refResourceTranslation: r.Res[0].Resource,
|
|
refLocaleRes: r.RefRes,
|
|
|
|
refPathRes: r.RefPath,
|
|
}
|
|
}
|