From e18dc74dc265bcd91909b9dd337fc17555be4354 Mon Sep 17 00:00:00 2001 From: mountain Date: Mon, 4 Sep 2023 11:15:05 +0900 Subject: [PATCH] =?UTF-8?q?version=20split=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/service.go | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/core/service.go b/core/service.go index 24c481f..88512af 100644 --- a/core/service.go +++ b/core/service.go @@ -124,11 +124,9 @@ 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 + divisionsSerialized []byte + serviceSerialized []byte + divisionsSplits map[string][]byte } func (sh *serviceDescription) isValidToken(apiToken primitive.ObjectID) bool { @@ -190,9 +188,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 } @@ -231,25 +229,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.sessionProvider = mg.sessionProvider @@ -262,7 +262,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))