{-# LANGUAGE DeriveAnyClass #-}{-# LANGUAGE DeriveGeneric #-}{-# LANGUAGE TypeFamilies #-}moduleGargantext.Utils.UTCTimewhereimportData.Aeson(FromJSON,ToJSON)importData.Either(Either(..))importData.Morpheus.Kind(SCALAR)importData.Morpheus.Types(GQLType(..),DecodeScalar(..),EncodeScalar(..))importqualifiedData.Morpheus.TypesasDMTimportData.Swagger(ToSchema)importqualifiedData.TextasTimportData.Time(UTCTime)importGargantext.PreludeimportGHC.Generics(Generic)importText.Read(readEither)newtypeNUTCTime=NUTCTimeUTCTimederiving(Eq,Show,Generic)instanceDecodeScalarNUTCTimewheredecodeScalar(DMT.Stringx)=case(readEither$T.unpackx)ofRightr->pure$NUTCTimerLefterr->Left$T.packerrdecodeScalar_=Left"Invalid value for NUTCTime"instanceEncodeScalarNUTCTimewhereencodeScalar(NUTCTimex)=DMT.String$T.pack$showxinstanceGQLTypeNUTCTimewheretypeKINDNUTCTime=SCALARinstanceFromJSONNUTCTimeinstanceToJSONNUTCTimeinstanceToSchemaNUTCTime