forked from loafle/openapi-generator-original
28 lines
784 B
Haskell
28 lines
784 B
Haskell
{-# LANGUAGE DataKinds #-}
|
|
{-# LANGUAGE TypeFamilies #-}
|
|
{-# LANGUAGE DeriveGeneric #-}
|
|
{-# LANGUAGE TypeOperators #-}
|
|
{-# LANGUAGE FlexibleInstances #-}
|
|
module Utils where
|
|
|
|
import GHC.Generics
|
|
import Servant.API
|
|
import Data.List (intercalate)
|
|
import Data.List.Split (splitOn)
|
|
import qualified Data.Map as Map
|
|
import qualified Data.Text as T
|
|
import Test.QuickCheck
|
|
|
|
instance FromText [String] where
|
|
fromText = Just . splitOn "," . T.unpack
|
|
|
|
instance ToText [String] where
|
|
toText = T.pack . intercalate ","
|
|
|
|
lkp inputs l = case lookup l inputs of
|
|
Nothing -> Left $ "label " ++ T.unpack l ++ " not found"
|
|
Just v -> Right $ read (T.unpack v)
|
|
|
|
instance (Ord k, Arbitrary k, Arbitrary v) => Arbitrary (Map.Map k v) where
|
|
arbitrary = Map.fromList <$> arbitrary
|