Skip to content

Commit ec42161

Browse files
committed
Fix json codec for DateTime: truncate to milliseconds
1 parent 719656c commit ec42161

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

.purs-repl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import Prelude
22
import HydraSdk.Extra.AppManager
3+
import HydraSdk.Lib
34
import HydraSdk.NodeApi
45
import HydraSdk.Process
56
import HydraSdk.Types

src/Internal/Lib/Codec.purs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ import Data.Maybe (Maybe(Just, Nothing), fromJust)
7676
import Data.Newtype (wrap)
7777
import Data.Profunctor (wrapIso)
7878
import Data.String (Pattern(Pattern))
79-
import Data.String (split) as String
79+
import Data.String (split, stripSuffix, take) as String
8080
import Data.Symbol (class IsSymbol)
8181
import Data.Tuple (Tuple)
8282
import Data.UInt (fromString, toString) as UInt
@@ -236,12 +236,19 @@ dateTimeCodec :: CA.JsonCodec DateTime
236236
dateTimeCodec =
237237
CA.prismaticCodec
238238
"DateTime"
239-
(hush <<< unformatDateTime formatter)
239+
( \str ->
240+
case String.split (Pattern ".") <$> String.stripSuffix (Pattern "Z") str of
241+
Just [ x, nsec ] ->
242+
-- truncate to milliseconds
243+
hush $ unformatDateTime formatter $ x <> "." <> String.take 3 nsec <> "Z"
244+
_ ->
245+
Nothing
246+
)
240247
(unsafePartial fromJust <<< hush <<< formatDateTime formatter)
241248
CA.string
242249
where
243250
formatter :: String
244-
formatter = "YYYY-MM-DDTHH:mm:ssZ"
251+
formatter = "YYYY-MM-DDTHH:mm:ss.SSSZ"
245252

246253
ed25519KeyHashCodec :: CA.JsonCodec Ed25519KeyHash
247254
ed25519KeyHashCodec = asCborCodec "Ed25519KeyHash"

0 commit comments

Comments
 (0)