module Twilio.Calls
(
Calls(..)
, Twilio.Calls.get
) where
import Control.Applicative
import Control.Monad.Catch
import Data.Aeson
import Data.Maybe
import Control.Monad.Twilio
import Twilio.Call
import Twilio.Internal.Request
import Twilio.Internal.Resource as Resource
import Twilio.Types
data Calls = Calls
{ callsPagingInformation :: PagingInformation
, callList :: [Call]
} deriving (Show, Eq)
instance List Calls Call where
getListWrapper = wrap (Calls . fromJust)
getList = callList
getPlural = Const "calls"
instance FromJSON Calls where
parseJSON = parseJSONToList
instance Get0 Calls where
get0 = request parseJSONFromResponse =<< makeTwilioRequest
"/Calls.json"
get :: MonadThrow m => TwilioT m Calls
get = Resource.get