version split 수정

This commit is contained in:
2023-09-04 11:15:05 +09:00
parent 2a1ad499ed
commit 2ea035a43b

View File

@ -123,10 +123,8 @@ type serviceDescription struct {
updateUserinfo func(info usertokeninfo) (bool, string, string)
getProviderInfo func(platform string, uid string) (string, string, error)
divisionsForUsersSerialized []byte
divisionsSerialized []byte
serviceSerialized []byte
serviceSummarySerialized []byte
divisionsSplits map[string][]byte
}
@ -189,9 +187,9 @@ func (sh *serviceDescription) prepare(mg *Maingate) error {
}
divsForUsers := make(map[string]*DivisionForUser)
var namesOnly []string
defaultDivNames := make(map[string]bool)
for dn, div := range divs {
namesOnly = append(namesOnly, dn)
defaultDivNames[dn] = true
if div.State == DivisionState_Closed {
continue
}
@ -230,25 +228,27 @@ func (sh *serviceDescription) prepare(mg *Maingate) error {
}
sh.divisionsSerialized, _ = json.Marshal(divs)
sh.divisionsForUsersSerialized, _ = json.Marshal(divsForUsers)
if len(sh.VersionSplits) == 0 {
sh.VersionSplits = map[string]string{
"default": strings.Join(namesOnly, ","),
}
}
sh.divisionsSplits = make(map[string][]byte)
for ver, divnamesT := range sh.VersionSplits {
divnames := strings.Split(divnamesT, ",")
split := make(map[string]*DivisionForUser)
for _, divname := range divnames {
split[divname] = divsForUsers[divname]
// 스플릿 된 버전은 default에서 제거해야 한다.
delete(defaultDivNames, divname)
}
splitMarshaled, _ := json.Marshal(split)
sh.divisionsSplits[ver] = splitMarshaled
}
defaultsDivs := make(map[string]*DivisionForUser)
for divname := range defaultDivNames {
defaultsDivs[divname] = divsForUsers[divname]
}
defaultMarshaled, _ := json.Marshal(defaultsDivs)
sh.divisionsSplits["default"] = defaultMarshaled
sh.MaximumNumLinkAccount = mg.maingateConfig.MaximumNumLinkAccount
sh.mongoClient = mg.mongoClient
sh.auths = mg.auths
@ -261,7 +261,6 @@ func (sh *serviceDescription) prepare(mg *Maingate) error {
sh.wl = mg.wl
sh.bl = mg.bl
sh.serviceSummarySerialized, _ = json.Marshal(sh.ServiceDescriptionSummary)
sh.serviceSerialized, _ = json.Marshal(sh)
logger.Println("service is ready :", sh.ServiceCode, string(sh.serviceSerialized))