Skip to content

Commit 2f3a4ee

Browse files
committed
Add json codec for LogLevel
1 parent dec693c commit 2f3a4ee

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

src/Internal/Lib/Codec.purs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ module HydraSdk.Internal.Lib.Codec
1313
, fixTaggedSumCodec
1414
, fromCaJsonDecodeError
1515
, fromVariantGeneric
16+
, logLevelCodec
1617
, orefCodec
1718
, printOref
1819
, readOref
@@ -70,6 +71,7 @@ import Data.Generic.Rep
7071
, to
7172
) as Generic
7273
import Data.Generic.Rep (class Generic)
74+
import Data.Log.Level (LogLevel(Trace, Debug, Info, Warn, Error))
7375
import Data.Maybe (Maybe(Just, Nothing), fromJust)
7476
import Data.Newtype (wrap)
7577
import Data.Profunctor (wrapIso)
@@ -244,6 +246,28 @@ dateTimeCodec =
244246
ed25519KeyHashCodec :: CA.JsonCodec Ed25519KeyHash
245247
ed25519KeyHashCodec = asCborCodec "Ed25519KeyHash"
246248

249+
logLevelCodec :: CA.JsonCodec LogLevel
250+
logLevelCodec =
251+
CA.prismaticCodec "LogLevel" readLogLevel printLogLevel
252+
CA.string
253+
where
254+
readLogLevel :: String -> Maybe LogLevel
255+
readLogLevel = case _ of
256+
"trace" -> Just Trace
257+
"debug" -> Just Debug
258+
"info" -> Just Info
259+
"warn" -> Just Warn
260+
"error" -> Just Error
261+
_ -> Nothing
262+
263+
printLogLevel :: LogLevel -> String
264+
printLogLevel = case _ of
265+
Trace -> "trace"
266+
Debug -> "debug"
267+
Info -> "info"
268+
Warn -> "warn"
269+
Error -> "error"
270+
247271
orefCodec :: CA.JsonCodec TransactionInput
248272
orefCodec =
249273
CA.prismaticCodec "TransactionInput" readOref printOref

src/Lib.purs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import HydraSdk.Internal.Lib.Codec
1717
, fixTaggedSumCodec
1818
, fromCaJsonDecodeError
1919
, fromVariantGeneric
20+
, logLevelCodec
2021
, orefCodec
2122
, printOref
2223
, readOref

0 commit comments

Comments
 (0)