docusign-base-0.0.1: src/DocuSign/Base/Fields.hs
module DocuSign.Base.Fields
( removeFieldLabelPrefix
, modifyFieldLabel
) where
import Control.Lens.Cons ( _head )
import Control.Lens.Setter ( over )
import Data.Aeson.Types ( Options (..)
, defaultOptions )
import qualified Data.Char as C
removeFieldLabelPrefix :: String -> Options
removeFieldLabelPrefix p =
modifyFieldLabel (decapitalizeInitialChar . (drop $ length p)) defaultOptions
modifyFieldLabel :: (String -> String) -> Options -> Options
modifyFieldLabel m o = o { fieldLabelModifier = m . fieldLabelModifier o }
decapitalizeInitialChar :: String -> String
decapitalizeInitialChar = (over _head) C.toLower