[이민권] 서비스 준비

- 계정 삭제 시, TTL 적용
This commit is contained in:
2024-01-09 19:56:57 +09:00
parent 381f1edb80
commit d8e18d7ffc
3 changed files with 26 additions and 9 deletions

View File

@ -673,6 +673,7 @@ func (sh *serviceDescription) authorize(w http.ResponseWriter, r *http.Request)
link, err := sh.mongoClient.FindOneAndUpdate(CollectionLink, bson.M{
"platform": authtype,
"uid": uid,
"_ts": bson.M{"$exists": false},
}, bson.M{
"$setOnInsert": bson.M{
"create": createtime,
@ -850,27 +851,33 @@ func (sh *serviceDescription) delacc(w http.ResponseWriter, r *http.Request) {
return
}
var addIdFilter bson.A
var addIdFilter primitive.A
for _, accid := range accids {
addIdFilter = append(addIdFilter, accid["_id"].(primitive.ObjectID))
}
delfilter := bson.D{{Key: "_id", Value: bson.D{{Key: "$in", Value: addIdFilter}}}}
delaccnum, err := sh.mongoClient.DeleteMany(CollectionAccount, delfilter)
if err != nil {
logger.Error("delacc failed. Delete many CollectionAccount err :", err)
delfilter := primitive.M{"_id": bson.M{"$in": addIdFilter}}
curtime := primitive.NewDateTimeFromTime(time.Now().UTC())
updated, _, err := sh.mongoClient.Update(CollectionAccount, delfilter, bson.M{
"$set": bson.M{"_ts": curtime},
}, options.Update().SetUpsert(false))
if !updated || err != nil {
logger.Error("delacc failed. Update CollectionAccount timestamp err :", err)
w.WriteHeader(http.StatusInternalServerError)
return
}
_, err = sh.mongoClient.DeleteMany(CollectionLink, delfilter)
if err != nil {
logger.Error("delacc failed. Delete many CollectionLink err :", err)
updated, _, err = sh.mongoClient.Update(CollectionLink, delfilter, bson.M{
"$set": bson.M{"_ts": curtime},
}, options.Update().SetUpsert(false))
if !updated || err != nil {
logger.Error("delacc failed. Update CollectionLink timestamp err :", err)
w.WriteHeader(http.StatusInternalServerError)
return
}
logger.Println("delacc success :", delaccnum)
logger.Println("delacc success :", accids)
}
func (sh *serviceDescription) serveHTTP(w http.ResponseWriter, r *http.Request) {