packages feed

asana-1.0.1.1: library/Asana/Api/Named.hs

-- | Anything with a compact @{ id, name }@ representation
module Asana.Api.Named
  ( Named (..),
  )
where

import Asana.Api.Gid (Gid)
import Asana.Api.Prelude
import Data.Aeson (FromJSON, genericParseJSON, parseJSON)
import Data.Aeson.Casing (aesonPrefix, snakeCase)

data Named = Named
  { nGid :: Gid,
    nName :: Text
  }
  deriving stock (Eq, Generic, Show)

instance FromJSON Named where
  parseJSON = genericParseJSON $ aesonPrefix snakeCase