From e0c932c04e3f48fb93c656f9853a69deb03e2653 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Sat, 3 Dec 2022 13:28:51 +0000 Subject: [PATCH] core: change AgentErrorType to String to preserve backward compatibility with stored errors (#1485) --- src/Simplex/Chat.hs | 2 +- src/Simplex/Chat/Messages.hs | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index e75e67e7c8..074da66ee6 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -2153,7 +2153,7 @@ processAgentMessage (Just user@User {userId}) corrId agentConnId agentMessage = agentErrToItemStatus :: AgentErrorType -> CIStatus 'MDSnd agentErrToItemStatus (SMP AUTH) = CISSndErrorAuth - agentErrToItemStatus err = CISSndError err + agentErrToItemStatus err = CISSndError . T.unpack . safeDecodeUtf8 $ strEncode err badRcvFileChunk :: RcvFileTransfer -> String -> m () badRcvFileChunk ft@RcvFileTransfer {cancelled} err = diff --git a/src/Simplex/Chat/Messages.hs b/src/Simplex/Chat/Messages.hs index 1190dfd01f..240906b096 100644 --- a/src/Simplex/Chat/Messages.hs +++ b/src/Simplex/Chat/Messages.hs @@ -32,7 +32,7 @@ import GHC.Generics (Generic) import Simplex.Chat.Markdown import Simplex.Chat.Protocol import Simplex.Chat.Types -import Simplex.Messaging.Agent.Protocol (AgentErrorType, AgentMsgId, MsgErrorType (..), MsgMeta (..), SwitchPhase (..)) +import Simplex.Messaging.Agent.Protocol (AgentMsgId, MsgErrorType (..), MsgMeta (..), SwitchPhase (..)) import Simplex.Messaging.Encoding.String import Simplex.Messaging.Parsers (dropPrefix, enumJSON, fromTextField_, fstToLower, singleFieldJSON, sumTypeJSON) import Simplex.Messaging.Protocol (MsgBody) @@ -406,7 +406,7 @@ data CIStatus (d :: MsgDirection) where CISSndNew :: CIStatus 'MDSnd CISSndSent :: CIStatus 'MDSnd CISSndErrorAuth :: CIStatus 'MDSnd - CISSndError :: AgentErrorType -> CIStatus 'MDSnd + CISSndError :: String -> CIStatus 'MDSnd CISRcvNew :: CIStatus 'MDRcv CISRcvRead :: CIStatus 'MDRcv @@ -434,7 +434,7 @@ instance MsgDirectionI d => StrEncoding (CIStatus d) where CISSndNew -> "snd_new" CISSndSent -> "snd_sent" CISSndErrorAuth -> "snd_error_auth" - CISSndError e -> "snd_error " <> strEncode e + CISSndError e -> "snd_error " <> encodeUtf8 (T.pack e) CISRcvNew -> "rcv_new" CISRcvRead -> "rcv_read" strP = (\(ACIStatus _ st) -> checkDirection st) <$?> strP @@ -446,7 +446,7 @@ instance StrEncoding ACIStatus where "snd_new" -> pure $ ACIStatus SMDSnd CISSndNew "snd_sent" -> pure $ ACIStatus SMDSnd CISSndSent "snd_error_auth" -> pure $ ACIStatus SMDSnd CISSndErrorAuth - "snd_error" -> ACIStatus SMDSnd . CISSndError <$> (A.space *> strP) + "snd_error " -> ACIStatus SMDSnd . CISSndError . T.unpack . safeDecodeUtf8 <$> A.takeByteString "rcv_new" -> pure $ ACIStatus SMDRcv CISRcvNew "rcv_read" -> pure $ ACIStatus SMDRcv CISRcvRead _ -> fail "bad status" @@ -455,7 +455,7 @@ data JSONCIStatus = JCISSndNew | JCISSndSent | JCISSndErrorAuth - | JCISSndError {agentError :: AgentErrorType} + | JCISSndError {agentError :: String} | JCISRcvNew | JCISRcvRead deriving (Show, Generic)