version split 수정
This commit is contained in:
@ -124,11 +124,9 @@ type serviceDescription struct {
|
|||||||
updateUserinfo func(info usertokeninfo) (bool, string, string)
|
updateUserinfo func(info usertokeninfo) (bool, string, string)
|
||||||
getProviderInfo func(platform string, uid string) (string, string, error)
|
getProviderInfo func(platform string, uid string) (string, string, error)
|
||||||
|
|
||||||
divisionsForUsersSerialized []byte
|
divisionsSerialized []byte
|
||||||
divisionsSerialized []byte
|
serviceSerialized []byte
|
||||||
serviceSerialized []byte
|
divisionsSplits map[string][]byte
|
||||||
serviceSummarySerialized []byte
|
|
||||||
divisionsSplits map[string][]byte
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sh *serviceDescription) isValidToken(apiToken primitive.ObjectID) bool {
|
func (sh *serviceDescription) isValidToken(apiToken primitive.ObjectID) bool {
|
||||||
@ -190,9 +188,9 @@ func (sh *serviceDescription) prepare(mg *Maingate) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
divsForUsers := make(map[string]*DivisionForUser)
|
divsForUsers := make(map[string]*DivisionForUser)
|
||||||
var namesOnly []string
|
defaultDivNames := make(map[string]bool)
|
||||||
for dn, div := range divs {
|
for dn, div := range divs {
|
||||||
namesOnly = append(namesOnly, dn)
|
defaultDivNames[dn] = true
|
||||||
if div.State == DivisionState_Closed {
|
if div.State == DivisionState_Closed {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -231,25 +229,27 @@ func (sh *serviceDescription) prepare(mg *Maingate) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sh.divisionsSerialized, _ = json.Marshal(divs)
|
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)
|
sh.divisionsSplits = make(map[string][]byte)
|
||||||
for ver, divnamesT := range sh.VersionSplits {
|
for ver, divnamesT := range sh.VersionSplits {
|
||||||
divnames := strings.Split(divnamesT, ",")
|
divnames := strings.Split(divnamesT, ",")
|
||||||
split := make(map[string]*DivisionForUser)
|
split := make(map[string]*DivisionForUser)
|
||||||
for _, divname := range divnames {
|
for _, divname := range divnames {
|
||||||
split[divname] = divsForUsers[divname]
|
split[divname] = divsForUsers[divname]
|
||||||
|
|
||||||
|
// 스플릿 된 버전은 default에서 제거해야 한다.
|
||||||
|
delete(defaultDivNames, divname)
|
||||||
}
|
}
|
||||||
splitMarshaled, _ := json.Marshal(split)
|
splitMarshaled, _ := json.Marshal(split)
|
||||||
sh.divisionsSplits[ver] = splitMarshaled
|
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.MaximumNumLinkAccount = mg.maingateConfig.MaximumNumLinkAccount
|
||||||
sh.mongoClient = mg.mongoClient
|
sh.mongoClient = mg.mongoClient
|
||||||
sh.sessionProvider = mg.sessionProvider
|
sh.sessionProvider = mg.sessionProvider
|
||||||
@ -262,7 +262,6 @@ func (sh *serviceDescription) prepare(mg *Maingate) error {
|
|||||||
|
|
||||||
sh.wl = mg.wl
|
sh.wl = mg.wl
|
||||||
sh.bl = mg.bl
|
sh.bl = mg.bl
|
||||||
sh.serviceSummarySerialized, _ = json.Marshal(sh.ServiceDescriptionSummary)
|
|
||||||
sh.serviceSerialized, _ = json.Marshal(sh)
|
sh.serviceSerialized, _ = json.Marshal(sh)
|
||||||
|
|
||||||
logger.Println("service is ready :", sh.ServiceCode, string(sh.serviceSerialized))
|
logger.Println("service is ready :", sh.ServiceCode, string(sh.serviceSerialized))
|
||||||
|
|||||||
Reference in New Issue
Block a user