packages feed

sprinkles-0.3.5.0: src/Web/Sprinkles/Backends/Loader.hs

{-#LANGUAGE NoImplicitPrelude #-}
{-#LANGUAGE OverloadedStrings #-}
{-#LANGUAGE TypeFamilies #-}
{-#LANGUAGE MultiParamTypeClasses #-}
{-#LANGUAGE FlexibleInstances #-}
{-#LANGUAGE FlexibleContexts #-}
{-#LANGUAGE LambdaCase #-}

-- | Backend loader type
module Web.Sprinkles.Backends.Loader
( loader
)
where

import ClassyPrelude
import Web.Sprinkles.Backends.Loader.Type
import Web.Sprinkles.Backends.Loader.SqlLoader
import Web.Sprinkles.Backends.Loader.SubprocessLoader
import Web.Sprinkles.Backends.Loader.FileLoader
import Web.Sprinkles.Backends.Loader.HttpLoader
import Web.Sprinkles.Backends.Loader.RequestBodyLoader
import Web.Sprinkles.Backends.Loader.LiteralLoader
import Web.Sprinkles.Backends.Spec

loader :: BackendType -> Loader
loader (SqlBackend dsn query params) = sqlLoader dsn query params
loader (FileBackend filepath) = fileLoader filepath
loader (HttpBackend uriText credentials) = curlLoader uriText credentials
loader (SubprocessBackend cmd args mimeType) = subprocessLoader cmd args mimeType
loader RequestBodyBackend = requestBodyLoader
loader (LiteralBackend body) = literalLoader body