This commit is contained in:
2024-08-22 11:26:15 +09:00

View File

@ -303,7 +303,7 @@ func (sh *serviceDescription) link(w http.ResponseWriter, r *http.Request) {
bfinfo, err := sh.getUserBrowserInfo(r) bfinfo, err := sh.getUserBrowserInfo(r)
if err != nil { if err != nil {
logger.Error("getUserBrowserInfo failed :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
return return
} }
@ -312,7 +312,7 @@ func (sh *serviceDescription) link(w http.ResponseWriter, r *http.Request) {
if !guestlink { if !guestlink {
_, err = sh.readProfile(oldType, oldId, bfinfo) _, err = sh.readProfile(oldType, oldId, bfinfo)
if err != nil { if err != nil {
logger.Error("readProfile(old) failed :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
return return
} }
@ -322,7 +322,7 @@ func (sh *serviceDescription) link(w http.ResponseWriter, r *http.Request) {
oldType, oldId, err = sh.getProviderInfo(oldType, oldId) oldType, oldId, err = sh.getProviderInfo(oldType, oldId)
if err != nil { if err != nil {
logger.Error("getProviderInfo failed :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
return return
} }
@ -348,7 +348,7 @@ func (sh *serviceDescription) link(w http.ResponseWriter, r *http.Request) {
//email, err := sh.readProfile(newType, newId, bfinfo) //email, err := sh.readProfile(newType, newId, bfinfo)
_, err = sh.readProfile(newType, newId, bfinfo) _, err = sh.readProfile(newType, newId, bfinfo)
if err != nil { if err != nil {
logger.Error("readProfile(new) failed :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
return return
} }
@ -361,14 +361,14 @@ func (sh *serviceDescription) link(w http.ResponseWriter, r *http.Request) {
newType, newId, err = sh.getProviderInfo(newType, newId) newType, newId, err = sh.getProviderInfo(newType, newId)
if err != nil { if err != nil {
logger.Error("getProviderInfo failed :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
return return
} }
found, err := sh.mongoClient.FindOne(CollectionLink, bson.M{"platform": newType, "uid": newId}, options.FindOne()) found, err := sh.mongoClient.FindOne(CollectionLink, bson.M{"platform": newType, "uid": newId}, options.FindOne())
if err != nil { if err != nil {
logger.Error("link failed. FindOne err:", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
return return
} }
@ -389,7 +389,7 @@ func (sh *serviceDescription) link(w http.ResponseWriter, r *http.Request) {
}, },
}, options.FindOneAndUpdate().SetReturnDocument(options.After).SetUpsert(true).SetProjection(bson.M{"_id": 1})) }, options.FindOneAndUpdate().SetReturnDocument(options.After).SetUpsert(true).SetProjection(bson.M{"_id": 1}))
if err != nil { if err != nil {
logger.Error("link failed. FindOneAndUpdate link err:", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
return return
} }
@ -403,7 +403,7 @@ func (sh *serviceDescription) link(w http.ResponseWriter, r *http.Request) {
}, },
}, options.Update().SetUpsert(true)) }, options.Update().SetUpsert(true))
if err != nil { if err != nil {
logger.Error("link failed. Update ServiceName err :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
return return
} }
@ -487,7 +487,7 @@ func (sh *serviceDescription) unlink(w http.ResponseWriter, r *http.Request) {
"_id": 1, "_id": 1,
})) }))
if err != nil { if err != nil {
logger.Error("unlink failed, fail to count accounts :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
} }
@ -507,7 +507,7 @@ func (sh *serviceDescription) unlink(w http.ResponseWriter, r *http.Request) {
"_id": bson.M{"$in": ids}, "_id": bson.M{"$in": ids},
}, options.FindOneAndDelete().SetProjection(bson.M{"_id": 1})) }, options.FindOneAndDelete().SetProjection(bson.M{"_id": 1}))
if err != nil { if err != nil {
logger.Error("link failed. FindOneAndUpdate link err:", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
return return
} }
@ -516,7 +516,7 @@ func (sh *serviceDescription) unlink(w http.ResponseWriter, r *http.Request) {
"_id": link["_id"].(primitive.ObjectID), "_id": link["_id"].(primitive.ObjectID),
}, options.FindOneAndDelete().SetProjection(bson.M{"_id": 1})) }, options.FindOneAndDelete().SetProjection(bson.M{"_id": 1}))
if err != nil { if err != nil {
logger.Error("unlink failed. Delete ServiceName err :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
return return
} }
@ -566,7 +566,7 @@ func (sh *serviceDescription) linkinfo(w http.ResponseWriter, r *http.Request) {
sType, sId, err = sh.getProviderInfo(sType, sId) sType, sId, err = sh.getProviderInfo(sType, sId)
if err != nil { if err != nil {
logger.Error("getProviderInfo failed :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
return return
} }
@ -583,7 +583,7 @@ func (sh *serviceDescription) linkinfo(w http.ResponseWriter, r *http.Request) {
"_id": 1, "_id": 1,
})) }))
if err != nil { if err != nil {
logger.Error("linkinfo failed. CountDocuments err :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
return return
} }
@ -599,7 +599,7 @@ func (sh *serviceDescription) linkinfo(w http.ResponseWriter, r *http.Request) {
platformName: 1, platformName: 1,
})) }))
if err != nil { if err != nil {
logger.Error("linkinfo failed. FindAll returns err :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
return return
} }
@ -611,7 +611,7 @@ func (sh *serviceDescription) linkinfo(w http.ResponseWriter, r *http.Request) {
linkbytes, err := json.Marshal(linkstrs) linkbytes, err := json.Marshal(linkstrs)
if err != nil { if err != nil {
logger.Error("linkinfo failed. json marshal fail :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
return return
} }
@ -640,14 +640,14 @@ func (sh *serviceDescription) emailinfo(w http.ResponseWriter, r *http.Request)
bfinfo, err := sh.getUserBrowserInfo(r) bfinfo, err := sh.getUserBrowserInfo(r)
if err != nil { if err != nil {
logger.Error("getUserBrowserInfo failed :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
return return
} }
email, err := sh.readProfile(reqauthtype, uid, bfinfo) email, err := sh.readProfile(reqauthtype, uid, bfinfo)
if err != nil { if err != nil {
logger.Error("readProfile(new) failed :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
return return
} }
@ -727,21 +727,21 @@ func (sh *serviceDescription) authorize(w http.ResponseWriter, r *http.Request)
//email, err := sh.readProfile(authtype, uid, accesstoken) //email, err := sh.readProfile(authtype, uid, accesstoken)
bfinfo, err := sh.getUserBrowserInfo(r) bfinfo, err := sh.getUserBrowserInfo(r)
if err != nil { if err != nil {
logger.Error("getUserBrowserInfo failed :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
return return
} }
email, err = sh.readProfile(reqauthtype, uid, bfinfo) email, err = sh.readProfile(reqauthtype, uid, bfinfo)
if err != nil { if err != nil {
logger.Error("readProfile failed :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
return return
} }
newType, newId, err := sh.getProviderInfo(reqauthtype, uid) newType, newId, err := sh.getProviderInfo(reqauthtype, uid)
if err != nil { if err != nil {
logger.Error("getProviderInfo failed :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
return return
} }
@ -774,7 +774,7 @@ func (sh *serviceDescription) authorize(w http.ResponseWriter, r *http.Request)
}, },
}, options.FindOneAndUpdate().SetReturnDocument(options.After).SetUpsert(true).SetProjection(bson.M{"_id": 1, "_ts": 1})) }, options.FindOneAndUpdate().SetReturnDocument(options.After).SetUpsert(true).SetProjection(bson.M{"_id": 1, "_ts": 1}))
if err != nil { if err != nil {
logger.Error("authorize failed :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
return return
} }
@ -790,7 +790,7 @@ func (sh *serviceDescription) authorize(w http.ResponseWriter, r *http.Request)
}, },
}, options.FindOneAndUpdate().SetReturnDocument(options.After).SetUpsert(true).SetProjection(bson.M{"accid": 1, "create": 1})) }, options.FindOneAndUpdate().SetReturnDocument(options.After).SetUpsert(true).SetProjection(bson.M{"accid": 1, "create": 1}))
if err != nil { if err != nil {
logger.Error("authorize failed. Update sh.ServiceName err:", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
return return
} }
@ -819,7 +819,7 @@ func (sh *serviceDescription) authorize(w http.ResponseWriter, r *http.Request)
Alias: alias, Alias: alias,
}) })
if err != nil { if err != nil {
logger.Error("authorize failed. sessionProvider.New err:", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
return return
} }
@ -888,7 +888,7 @@ func (sh *serviceDescription) delacc(w http.ResponseWriter, r *http.Request) {
if !*devflag || len(sType) != 0 { if !*devflag || len(sType) != 0 {
sType, sId, err = sh.getProviderInfo(sType, sId) sType, sId, err = sh.getProviderInfo(sType, sId)
if err != nil { if err != nil {
logger.Error("delacc failed. getProviderInfo err :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
return return
} }
@ -902,7 +902,7 @@ func (sh *serviceDescription) delacc(w http.ResponseWriter, r *http.Request) {
linkidMap, err := sh.mongoClient.FindAll(CollectionAccount, bson.M{"accid": authInfo.Account}, options.Find().SetProjection(bson.M{"_id": 1})) linkidMap, err := sh.mongoClient.FindAll(CollectionAccount, bson.M{"accid": authInfo.Account}, options.Find().SetProjection(bson.M{"_id": 1}))
if err != nil { if err != nil {
logger.Error("delacc failed. FindAll account err :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
return return
} }
@ -933,7 +933,7 @@ func (sh *serviceDescription) delacc(w http.ResponseWriter, r *http.Request) {
delfilter["platform"] = sType delfilter["platform"] = sType
targetLinkId, err := sh.mongoClient.FindAll(CollectionLink, delfilter, options.Find().SetProjection(bson.M{"_id": 1})) targetLinkId, err := sh.mongoClient.FindAll(CollectionLink, delfilter, options.Find().SetProjection(bson.M{"_id": 1}))
if len(targetLinkId) != 1 { if len(targetLinkId) != 1 {
logger.Error("delacc failed. FindAll link err :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
return return
} }
@ -942,15 +942,25 @@ func (sh *serviceDescription) delacc(w http.ResponseWriter, r *http.Request) {
delop = primitive.M{"$unset": primitive.M{"_ts": true}} delop = primitive.M{"$unset": primitive.M{"_ts": true}}
} }
updated, _, err := sh.mongoClient.Update(CollectionAccount, delfilter, delop, options.Update().SetUpsert(false)) updated, _, err := sh.mongoClient.Update(CollectionAccount, delfilter, delop, options.Update().SetUpsert(false))
if !updated || err != nil { if err != nil {
logger.Error("delacc failed. Update CollectionAccount timestamp err :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusInternalServerError)
return
}
if !updated {
logger.Error("delacc failed. Update CollectionAccount timestamp. undated is false")
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
return return
} }
updated, _, err = sh.mongoClient.Update(CollectionLink, delfilter, delop, options.Update().SetUpsert(false)) updated, _, err = sh.mongoClient.Update(CollectionLink, delfilter, delop, options.Update().SetUpsert(false))
if !updated || err != nil { if err != nil {
logger.Error("delacc failed. Update CollectionLink timestamp err :", err) logger.ErrorWithCallStack(err)
w.WriteHeader(http.StatusInternalServerError)
return
}
if !updated {
logger.Error("delacc failed. Update CollectionLink timestamp. updated is false")
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
return return
} }