diff --git a/src/Order.hs b/src/Order.hs index bb1bcf6..0a43ff9 100644 --- a/src/Order.hs +++ b/src/Order.hs @@ -12,6 +12,7 @@ import Data.Time.Clock import Database.MongoDB import GHC.Generics import Test.QuickCheck +import WooCommerce (WooToken(w_id)) -- | Type to represent a ZGo order data ZGoOrder = ZGoOrder @@ -72,7 +73,7 @@ instance ToJSON ZGoOrder where instance FromJSON ZGoOrder where parseJSON = withObject "Order" $ \obj -> do - i <- obj .:? "_id" + i <- obj .: "_id" a <- obj .: "address" s <- obj .: "session" ts <- obj .: "timestamp" @@ -86,7 +87,24 @@ instance FromJSON ZGoOrder where eI <- obj .: "externalInvoice" sC <- obj .: "shortCode" tk <- obj .: "token" - pure $ ZGoOrder (read =<< i) a s ts c cur p t tZ l pd eI sC tk + pure $ + ZGoOrder + (if not (null i) + then Just (read i :: ObjectId) + else Nothing) + a + s + ts + c + cur + p + t + tZ + l + pd + eI + sC + tk instance Val ZGoOrder where val (ZGoOrder i a s ts c cur p t tZ l pd eI sC tk) =