module Network.API.Mandrill.Utils where

import Data.Char

--------------------------------------------------------------------------------
-- | Turns camelCase strings into suitable dashified ones.
-- >>> modRejectReason "TestModeLimit"
--     "test-mode-limit"
modRejectReason :: String -> String
modRejectReason :: String -> String
modRejectReason [] = []
modRejectReason (Char
x:String
xs) = Char -> Char
toLower Char
x forall a. a -> [a] -> [a]
: String -> String
go String
xs
  where
    go :: String -> String
go [] = []
    go (Char
y:String
ys) = case Char -> Bool
isUpper Char
y of
      Bool
False -> Char
y forall a. a -> [a] -> [a]
: String -> String
go String
ys
      Bool
True  -> Char
'-' forall a. a -> [a] -> [a]
: Char -> Char
toLower Char
y forall a. a -> [a] -> [a]
: String -> String
go String
ys