From d516fe94c80d2e29b651b5fb5332546a908c61f8 Mon Sep 17 00:00:00 2001 From: choiseyeon Date: Fri, 19 Jul 2024 00:22:26 +0900 Subject: [PATCH] feat: change error message --- internal/chat/client.go | 58 +++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 20 deletions(-) diff --git a/internal/chat/client.go b/internal/chat/client.go index 2fafa5e2..8675d532 100644 --- a/internal/chat/client.go +++ b/internal/chat/client.go @@ -49,7 +49,8 @@ func (client *Client) HandleRead(stateManager StateManager, chatService *service _, jsonMessage, err := client.Conn.ReadMessage() if err != nil { if websocket.IsUnexpectedCloseError(err, websocket.CloseGoingAway, websocket.CloseAbnormalClosure) { - return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, "예상치 못한 연결 종료 오류가 발생했습니다.") + return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, + "예상치 못한 연결 종료 오류가 발생했습니다. userID="+client.FbUID) } break } @@ -57,7 +58,8 @@ func (client *Client) HandleRead(stateManager StateManager, chatService *service errMsg := fmt.Sprintf("메시지 크기가 최대 크기(%d 바이트)를 초과합니다.", maxMessageSize) err := client.Conn.WriteMessage(websocket.TextMessage, []byte(errMsg)) if err != nil { - return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, "메시지 크기 초과 오류 메시지를 전송하는 데 실패했습니다.") + return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, + "메시지 크기 초과 오류 메시지를 전송하는 데 실패했습니다. userID="+client.FbUID) } continue } @@ -91,7 +93,8 @@ func (client *Client) HandleWrite() { func (client *Client) setupConnection() *pnd.AppError { err := client.Conn.SetReadDeadline(time.Now().Add(pongWait)) if err != nil { - return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, "읽기 제한 시간 설정에 실패했습니다.") + return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, + "읽기 제한 시간 설정에 실패했습니다. userID="+client.FbUID) } client.Conn.SetPongHandler(func(string) error { @@ -106,26 +109,31 @@ func (client *Client) setupConnection() *pnd.AppError { func (client *Client) writeMessage(message []byte) *pnd.AppError { if err := client.Conn.SetWriteDeadline(time.Now().Add(writeWait)); err != nil { - return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, "쓰기 제한 시간 설정에 실패했습니다.") + return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, + "쓰기 제한 시간 설정에 실패했습니다. userID="+client.FbUID) } w, err := client.Conn.NextWriter(websocket.TextMessage) if err != nil { - return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, "다음 작성자 설정에 실패했습니다.") + return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, + "다음 작성자 설정에 실패했습니다. userID="+client.FbUID) } defer w.Close() if _, err := w.Write(message); err != nil { - return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, "메시지 쓰기에 실패했습니다.") + return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, + "메시지 쓰기에 실패했습니다. userID=%s"+client.FbUID) } n := len(client.MessageSender) for i := 0; i < n; i++ { if _, err := w.Write(newline); err != nil { - return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, "개행 문자 쓰기에 실패했습니다.") + return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, + "개행 문자 쓰기에 실패했습니다. userID=%s"+client.FbUID) } if _, err := w.Write(<-client.MessageSender); err != nil { - return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, "채널에서 메시지 읽기에 실패했습니다.") + return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, + "채널에서 메시지 읽기에 실패했습니다. userID=%s"+client.FbUID) } } return nil @@ -134,21 +142,25 @@ func (client *Client) writeMessage(message []byte) *pnd.AppError { func (client *Client) writeCloseMessage() *pnd.AppError { err := client.Conn.SetWriteDeadline(time.Now().Add(writeWait)) if err != nil { - return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, "종료 메시지의 쓰기 제한 시간 설정에 실패했습니다.") + return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, + "종료 메시지의 쓰기 제한 시간 설정에 실패했습니다. userID=%s"+client.FbUID) } err = client.Conn.WriteMessage(websocket.CloseMessage, []byte{}) if err != nil { - return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, "종료 메시지 쓰기에 실패했습니다.") + return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, + "종료 메시지 쓰기에 실패했습니다. userID=%s"+client.FbUID) } return nil } func (client *Client) sendPing() *pnd.AppError { if err := client.Conn.SetWriteDeadline(time.Now().Add(writeWait)); err != nil { - return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, "핑 메시지의 쓰기 제한 시간 설정에 실패했습니다.") + return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, + "핑 메시지의 쓰기 제한 시간 설정에 실패했습니다. userID=%s"+client.FbUID) } if err := client.Conn.WriteMessage(websocket.PingMessage, nil); err != nil { - return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, "핑 메시지 쓰기에 실패했습니다.") + return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, + "핑 메시지 쓰기에 실패했습니다. userID=%s"+client.FbUID) } return nil } @@ -160,7 +172,8 @@ func (client *Client) disconnect(stateManager StateManager) *pnd.AppError { } close(client.MessageSender) if err := client.Conn.Close(); err != nil { - return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, "연결 종료에 실패했습니다.") + return pnd.NewAppError(err, http.StatusInternalServerError, pnd.ErrCodeUnknown, + "연결 종료에 실패했습니다. userID=%s"+client.FbUID) } return nil } @@ -170,7 +183,8 @@ func (client *Client) handleNewMessage( ) *pnd.AppError { var message Message if err := json.Unmarshal(jsonMessage, &message); err != nil { - return pnd.NewAppError(err, http.StatusBadRequest, pnd.ErrCodeInvalidBody, "JSON 메시지 해독에 실패했습니다.") + return pnd.NewAppError(err, http.StatusBadRequest, pnd.ErrCodeInvalidBody, + "JSON 메시지 해독에 실패했습니다. userID=%s"+client.FbUID) } message.Sender = client switch message.Action { @@ -191,7 +205,8 @@ func (client *Client) handleJoinRoomMessage( message Message, stateManager StateManager, chatService *service.ChatService, ) *pnd.AppError { if message.Room == nil { - return pnd.NewAppError(nil, http.StatusBadRequest, pnd.ErrCodeInvalidBody, "채팅방 정보가 nil입니다.") + return pnd.NewAppError(nil, http.StatusBadRequest, pnd.ErrCodeInvalidBody, + "채팅방 정보가 nil입니다. userID=%s"+client.FbUID) } room, err := client.CreateRoomIfNotExists(message, stateManager, chatService) @@ -200,12 +215,14 @@ func (client *Client) handleJoinRoomMessage( } if message.Sender == nil { - return pnd.NewAppError(nil, http.StatusBadRequest, pnd.ErrCodeInvalidBody, "보낸 사람이 nil입니다.") + return pnd.NewAppError(nil, http.StatusBadRequest, pnd.ErrCodeInvalidBody, + "보낸 사람이 nil입니다. userID=%s"+client.FbUID) } if !stateManager.IsClientInRoom(client.FbUID, message.Room.GetID()) { if room.RegisterChan == nil { - return pnd.NewAppError(nil, http.StatusInternalServerError, pnd.ErrCodeUnknown, "방 등록 채널이 nil입니다.") + return pnd.NewAppError(nil, http.StatusInternalServerError, pnd.ErrCodeUnknown, + "방 등록 채널이 nil입니다. userID=%s"+client.FbUID) } stateManager.JoinRoom(room.ID, client.FbUID) @@ -223,15 +240,16 @@ func (client *Client) CreateRoomIfNotExists( message Message, stateManager StateManager, chatService *service.ChatService, ) (*Room, *pnd.AppError) { if stateManager == nil { - return nil, pnd.NewAppError(nil, http.StatusInternalServerError, pnd.ErrCodeUnknown, "StateManager가 nil입니다.") + return nil, pnd.NewAppError(nil, http.StatusInternalServerError, pnd.ErrCodeUnknown, + "StateManager가 nil입니다. userID=%s"+client.FbUID) } room := stateManager.FindRoomByID(message.Room.GetID()) if room == nil { - log.Info().Msgf("ID %d의 방을 찾을 수 없어 새 방을 생성합니다.", message.Room.GetID()) + log.Info().Msgf("ID %d의 방을 찾을 수 없어 새 방을 생성합니다. userID=%s", message.Room.GetID(), client.FbUID) var err *pnd.AppError room, err = stateManager.CreateRoom(message.Room.Name, message.Room.RoomType, chatService) if err != nil { - log.Error().Err(err.Err).Msg("방 생성에 실패했습니다.") + log.Error().Err(err.Err).Msgf("방 생성에 실패했습니다. userID=%s", client.FbUID) return nil, err } return room, nil