Просмотр исходного кода

Add a runtime message constructor for errors

jherve 1 год назад
Родитель
Сommit
18acaf8d0b
4 измененных файлов с 9 добавлено и 0 удалено
  1. 3 0
      src/LinkedIn.purs
  2. 1 0
      src/LinkedIn/Output/Types.purs
  3. 3 0
      src/LinkedIn/QueryRunner.purs
  4. 2 0
      src/RuntimeMessage.purs

+ 3 - 0
src/LinkedIn.purs

@@ -4,6 +4,8 @@ import Prelude
 
 import Control.Monad.Except (ExceptT, lift, runExceptT, throwError, withExceptT)
 import Data.Argonaut.Core (Json)
+import Data.Argonaut.Decode (class DecodeJson, decodeJson)
+import Data.Argonaut.Decode.Generic (genericDecodeJson)
 import Data.Argonaut.Encode (class EncodeJson, encodeJson)
 import Data.Argonaut.Encode.Generic (genericEncodeJson)
 import Data.Either (Either(..))
@@ -33,6 +35,7 @@ data APIError =
 derive instance Generic APIError _
 instance Show APIError where show = genericShow
 instance EncodeJson APIError where encodeJson a = genericEncodeJson a
+instance DecodeJson APIError where decodeJson a = genericDecodeJson a
 
 getContext ∷ Document → Effect (Either APIError PageUrl)
 getContext = runExceptT <<< getContext'

+ 1 - 0
src/LinkedIn/Output/Types.purs

@@ -39,3 +39,4 @@ derive instance Generic OutputError _
 derive instance Eq OutputError
 instance Show OutputError where show = genericShow
 instance EncodeJson OutputError where encodeJson a = genericEncodeJson a
+instance DecodeJson OutputError where decodeJson a = genericDecodeJson a

+ 3 - 0
src/LinkedIn/QueryRunner.purs

@@ -3,6 +3,8 @@ module LinkedIn.QueryRunner where
 import Prelude
 
 import Control.Monad.Except (ExceptT(..), except, mapExceptT, runExceptT)
+import Data.Argonaut.Decode (class DecodeJson)
+import Data.Argonaut.Decode.Generic (genericDecodeJson)
 import Data.Argonaut.Encode (class EncodeJson)
 import Data.Argonaut.Encode.Generic (genericEncodeJson)
 import Data.Array as A
@@ -23,6 +25,7 @@ data QueryError =
   | QTextNotFoundError
   | QChooseError
 instance EncodeJson QueryError where encodeJson a = genericEncodeJson a
+instance DecodeJson QueryError where decodeJson a = genericDecodeJson a
 
 derive instance Generic QueryError _
 derive instance Eq QueryError

+ 2 - 0
src/RuntimeMessage.purs

@@ -17,6 +17,7 @@ import Data.Generic.Rep (class Generic)
 import Data.Show.Generic (genericShow)
 import Effect (Effect)
 import Effect.Class.Console (log)
+import LinkedIn (APIError)
 import LinkedIn.Output (Output)
 import LinkedIn.PageUrl (PageUrl)
 
@@ -24,6 +25,7 @@ data RuntimeMessage =
   RuntimeMessageContentInit
   | RuntimeMessageRequestPageContent
   | RuntimeMessagePageContent PageUrl Output
+  | RuntimeMessageError APIError
 
 derive instance Generic RuntimeMessage _
 instance Show RuntimeMessage where show = genericShow