{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell   #-}

module AWSLambda.Events.Records where

import           Control.Lens.TH (makeLenses)
import           Data.Aeson      (FromJSON (..), withObject, (.:))

newtype RecordsEvent a = RecordsEvent { _reRecords :: [a] } deriving (Eq, Show)

instance FromJSON a => FromJSON (RecordsEvent a) where
  parseJSON = withObject "RecordsEvent" $ \o -> RecordsEvent <$> o .: "Records"

$(makeLenses ''RecordsEvent)