From f2afeac3da3c4dd2318a26eb3258b8cf3f8b83a2 Mon Sep 17 00:00:00 2001 From: l2vator Date: Wed, 3 Jul 2024 14:44:53 +0900 Subject: [PATCH] =?UTF-8?q?[=EC=98=A4=EC=8A=B9=EC=84=9D]=20Account=20Link?= =?UTF-8?q?=20-=20func=20link()=EC=95=88=EC=97=90=EC=84=9C=20CollectionLin?= =?UTF-8?q?k=EC=97=90=20=EC=9D=B4=EB=AF=B8=20link=EB=90=9C=20=EA=B3=84?= =?UTF-8?q?=EC=A0=95=EC=9D=B4=20=EC=9E=88=EB=8A=94=EA=B2=BD=EC=9A=B0,=20js?= =?UTF-8?q?on=EC=9C=BC=EB=A1=9C=20'{"alreadylink":true}'=20=EB=B0=98?= =?UTF-8?q?=ED=99=98=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/service.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/core/service.go b/core/service.go index c5f8210..6ec9943 100644 --- a/core/service.go +++ b/core/service.go @@ -360,6 +360,18 @@ func (sh *serviceDescription) link(w http.ResponseWriter, r *http.Request) { return } + found, err := sh.mongoClient.FindOne(CollectionLink, bson.M{"platform": newType, "uid": newId}, options.FindOne()) + if err != nil { + logger.Error("link failed. FindOne err:", err) + w.WriteHeader(http.StatusInternalServerError) + return + } + if found != nil { + logger.Println("link failed. already have service account: ", r.URL.Query()) + w.Write([]byte(`{"alreadylink":true}`)) + return + } + createtime := primitive.NewDateTimeFromTime(time.Now().UTC()) link, err := sh.mongoClient.FindOneAndUpdate(CollectionLink, bson.M{ "platform": newType,