diff --git a/core/group_chat.go b/core/group_chat.go index 59bff99..b365ebe 100644 --- a/core/group_chat.go +++ b/core/group_chat.go @@ -315,8 +315,8 @@ func (gc *groupChat) FetchChattingChannels(w http.ResponseWriter, r *http.Reques var data struct { Prefix string `bson:"prefix"` } - if err := gocommon.ReadBsonDocumentFromBody(r.Body, &data); err != nil { - logger.Println("FetchChattingChannels failed. ReadBsonDocumentFromBody returns err :", err) + if err := gocommon.ReadJsonDocumentFromBody(r.Body, &data); err != nil { + logger.Println("FetchChattingChannels failed. ReadJsonDocumentFromBody returns err :", err) w.WriteHeader(http.StatusInternalServerError) return } @@ -371,9 +371,9 @@ func (gc *groupChat) QueryPlayerChattingChannel(w http.ResponseWriter, r *http.R Accid string `bson:"accid"` Typename string `bson:"typename"` } - err := gocommon.ReadBsonDocumentFromBody(r.Body, &data) + err := gocommon.ReadJsonDocumentFromBody(r.Body, &data) if err != nil { - logger.Println("QueryPlayerChattingChannel failed. ReadBsonDocumentFromBody returns err :", err) + logger.Println("QueryPlayerChattingChannel failed. ReadJsonDocumentFromBody returns err :", err) w.WriteHeader(http.StatusInternalServerError) return } @@ -392,8 +392,8 @@ func (gc *groupChat) QueryPlayerChattingChannel(w http.ResponseWriter, r *http.R func (gc *groupChat) SendMessageOnChannel(w http.ResponseWriter, r *http.Request) { var msg wshandler.UpstreamMessage - if err := gocommon.ReadBsonDocumentFromBody(r.Body, &msg); err != nil { - logger.Println("SendMessageOnChannel failed. ReadBsonDocumentFromBody return err :", err) + if err := gocommon.ReadJsonDocumentFromBody(r.Body, &msg); err != nil { + logger.Println("SendMessageOnChannel failed. ReadJsonDocumentFromBody return err :", err) w.WriteHeader(http.StatusBadRequest) return } diff --git a/core/group_party.go b/core/group_party.go index 6b4a1cc..d6839f9 100644 --- a/core/group_party.go +++ b/core/group_party.go @@ -281,8 +281,8 @@ func (gp *groupParty) JoinParty(w http.ResponseWriter, r *http.Request) { Character bson.M `bson:"character"` First bool `bson:"first"` } - if err := gocommon.ReadBsonDocumentFromBody(r.Body, &data); err != nil { - logger.Println("JoinParty failed. ReadBsonDocumentFromBody returns err :", err) + if err := gocommon.ReadJsonDocumentFromBody(r.Body, &data); err != nil { + logger.Println("JoinParty failed. ReadJsonDocumentFromBody returns err :", err) w.WriteHeader(http.StatusInternalServerError) return } @@ -329,7 +329,8 @@ func (gp *groupParty) JoinParty(w http.ResponseWriter, r *http.Request) { Body: gd.loadFull(), Tag: []string{"GroupDocFull"}, }) - writeBsonDoc(w, map[string]string{ + enc := json.NewEncoder(w) + enc.Encode(map[string]string{ "gid": gid.Hex(), "tid": gd.tid(mid), }) @@ -374,8 +375,8 @@ func (gp *groupParty) InviteToParty(w http.ResponseWriter, r *http.Request) { Invitee bson.M `bson:"invitee"` } - if err := gocommon.ReadBsonDocumentFromBody(r.Body, &doc); err != nil { - logger.Println("InviteToParty failed. ReadBsonDocumentFromBody returns err :", err) + if err := gocommon.ReadJsonDocumentFromBody(r.Body, &doc); err != nil { + logger.Println("InviteToParty failed. ReadJsonDocumentFromBody returns err :", err) w.WriteHeader(http.StatusInternalServerError) return } @@ -456,8 +457,8 @@ func (gp *groupParty) AcceptPartyInvitation(w http.ResponseWriter, r *http.Reque Tid string `bson:"tid"` Character bson.M `bson:"character"` } - if err := gocommon.ReadBsonDocumentFromBody(r.Body, &doc); err != nil { - logger.Println("AcceptPartyInvitation failed. ReadBsonDocumentFromBody returns err :", err) + if err := gocommon.ReadJsonDocumentFromBody(r.Body, &doc); err != nil { + logger.Println("AcceptPartyInvitation failed. ReadJsonDocumentFromBody returns err :", err) w.WriteHeader(http.StatusInternalServerError) return } @@ -546,8 +547,8 @@ func (gp *groupParty) DenyPartyInvitation(w http.ResponseWriter, r *http.Request Mid primitive.ObjectID `bson:"mid"` } - if err := gocommon.ReadBsonDocumentFromBody(r.Body, &data); err != nil { - logger.Println("DenyPartyInvitation failed. ReadBsonDocumentFromBody returns err :", err) + if err := gocommon.ReadJsonDocumentFromBody(r.Body, &data); err != nil { + logger.Println("DenyPartyInvitation failed. ReadJsonDocumentFromBody returns err :", err) w.WriteHeader(http.StatusInternalServerError) return } @@ -568,8 +569,8 @@ func (gp *groupParty) QueryPartyMemberState(w http.ResponseWriter, r *http.Reque Mid primitive.ObjectID `bson:"mid"` } - if err := gocommon.ReadBsonDocumentFromBody(r.Body, &data); err != nil { - logger.Println("DenyPartyInvitation failed. ReadBsonDocumentFromBody returns err :", err) + if err := gocommon.ReadJsonDocumentFromBody(r.Body, &data); err != nil { + logger.Println("DenyPartyInvitation failed. ReadJsonDocumentFromBody returns err :", err) w.WriteHeader(http.StatusInternalServerError) return } @@ -597,8 +598,8 @@ func (gp *groupParty) LeaveParty(w http.ResponseWriter, r *http.Request) { Mid primitive.ObjectID `bson:"mid"` Tid string `bson:"tid"` } - if err := gocommon.ReadBsonDocumentFromBody(r.Body, &data); err != nil { - logger.Println("LeaveParty failed. ReadBsonDocumentFromBody returns err :", err) + if err := gocommon.ReadJsonDocumentFromBody(r.Body, &data); err != nil { + logger.Println("LeaveParty failed. ReadJsonDocumentFromBody returns err :", err) w.WriteHeader(http.StatusInternalServerError) return } @@ -711,8 +712,8 @@ func (gp *groupParty) UpdatePartyDocument(w http.ResponseWriter, r *http.Request Doc bson.M `bson:"doc"` } - if err := gocommon.ReadBsonDocumentFromBody(r.Body, &data); err != nil { - logger.Println("UpdatePartyDocument failed. ReadBsonDocumentFromBody returns err :", err) + if err := gocommon.ReadJsonDocumentFromBody(r.Body, &data); err != nil { + logger.Println("UpdatePartyDocument failed. ReadJsonDocumentFromBody returns err :", err) w.WriteHeader(http.StatusInternalServerError) return } @@ -732,8 +733,8 @@ func (gp *groupParty) QueryPartyMembers(w http.ResponseWriter, r *http.Request) Gid primitive.ObjectID `bson:"gid"` } - if err := gocommon.ReadBsonDocumentFromBody(r.Body, &data); err != nil { - logger.Println("QueryPartyMembers failed. ReadBsonDocumentFromBody returns err :", err) + if err := gocommon.ReadJsonDocumentFromBody(r.Body, &data); err != nil { + logger.Println("QueryPartyMembers failed. ReadJsonDocumentFromBody returns err :", err) w.WriteHeader(http.StatusInternalServerError) return } @@ -751,7 +752,8 @@ func (gp *groupParty) QueryPartyMembers(w http.ResponseWriter, r *http.Request) return } - if err := writeBsonDoc(w, members); err != nil { + enc := json.NewEncoder(w) + if err := enc.Encode(members); err != nil { logger.Error("QueryPartyMembers failed. writeBsonDoc return err :", err) w.WriteHeader(http.StatusInternalServerError) return diff --git a/core/tavern.go b/core/tavern.go index 3592b32..0d7ab88 100644 --- a/core/tavern.go +++ b/core/tavern.go @@ -17,25 +17,10 @@ import ( "repositories.action2quare.com/ayo/gocommon/wshandler" "go.mongodb.org/mongo-driver/bson" - "go.mongodb.org/mongo-driver/bson/bsonrw" ) var devflag = flagx.Bool("dev", false, "") -func writeBsonDoc[T any](w io.Writer, src T) error { - rw, err := bsonrw.NewBSONValueWriter(w) - if err != nil { - return err - } - - enc, err := bson.NewEncoder(rw) - if err != nil { - return err - } - - return enc.Encode(src) -} - type TavernConfig struct { session.SessionConfig `json:",inline"` Group map[string]configDocument `json:"tavern_group_types"` @@ -156,45 +141,6 @@ func (tv *Tavern) ClientDisconnected(ctx wshandler.ApiCallContext) { logger.Println("ClientDisconnected :", ctx.CallBy.Alias) } -// func (tv *Tavern) OnClientMessageReceived(sender *wshandler.Sender, messageType wshandler.WebSocketMessageType, body io.Reader) { -// if messageType == wshandler.Connected { -// logger.Println("OnClientMessageReceived : connected ", sender.Accid.Hex()) -// tv.redison.Del(tv.redison.Context(), sender.Accid.Hex()) -// _, err := tv.redison.JSONSet(sender.Accid.Hex(), "$", bson.M{"_ts": time.Now().UTC().Unix()}) -// if err != nil { -// logger.Println("OnClientMessageReceived HSet error :", err) -// } - -// } else if messageType == wshandler.Disconnected { -// // TODO : 알려줘야하나??? - -// var rooms []string -// dec := json.NewDecoder(body) -// if err := dec.Decode(&rooms); err == nil { -// for _, gt := range tv.groups { -// gt.ClientMessageReceived(sender, messageType, rooms) -// } -// } -// tv.redison.Del(tv.redison.Context(), sender.Accid.Hex()).Result() -// logger.Println("OnClientMessageReceived : disconnected ", sender.Accid.Hex()) -// } else if messageType == wshandler.BinaryMessage { -// var commandline []any -// dec := json.NewDecoder(body) -// if err := dec.Decode(&commandline); err == nil { -// cmd := commandline[0].(string) -// args := commandline[1:] -// switch cmd { -// case "EnterChannel": -// tv.wsh.EnterRoom(args[0].(string), sender.Accid) - -// case "LeaveChannel": -// tv.wsh.LeaveRoom(args[0].(string), sender.Accid) - -// } -// } -// } -// } - func (tv *Tavern) OnRoomCreated(name string) { cnt, err := tv.redison.IncrBy(tv.redison.Context(), "_ref_"+name, 1).Result() if err != nil && !errors.Is(err, redis.Nil) { diff --git a/go.mod b/go.mod index 8569088..1dd3ae9 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.20 require ( github.com/go-redis/redis/v8 v8.11.5 go.mongodb.org/mongo-driver v1.11.7 - repositories.action2quare.com/ayo/gocommon v0.0.0-20230908025007-3603c0386b29 + repositories.action2quare.com/ayo/gocommon v0.0.0-20230908062630-46ce5f09897a ) require ( diff --git a/go.sum b/go.sum index ef2d2be..de46e9b 100644 --- a/go.sum +++ b/go.sum @@ -110,3 +110,5 @@ repositories.action2quare.com/ayo/gocommon v0.0.0-20230908023557-6cbf32c3868b h1 repositories.action2quare.com/ayo/gocommon v0.0.0-20230908023557-6cbf32c3868b/go.mod h1:XvklTTSvQX5uviivGBcZo8eIL+mV94W2e4uBBXcT5JY= repositories.action2quare.com/ayo/gocommon v0.0.0-20230908025007-3603c0386b29 h1:Ts40m9MLMMx4uaQWko5QXkg/HX4uYQB9TGGEN6twhiU= repositories.action2quare.com/ayo/gocommon v0.0.0-20230908025007-3603c0386b29/go.mod h1:XvklTTSvQX5uviivGBcZo8eIL+mV94W2e4uBBXcT5JY= +repositories.action2quare.com/ayo/gocommon v0.0.0-20230908062630-46ce5f09897a h1:xKUI2xlP6LcUV5fy+4QEHoaZOhkSsMYgeIp6H5ADBCM= +repositories.action2quare.com/ayo/gocommon v0.0.0-20230908062630-46ce5f09897a/go.mod h1:XvklTTSvQX5uviivGBcZo8eIL+mV94W2e4uBBXcT5JY=