packages feed

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

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

-- | File backend loader
module Web.Sprinkles.Backends.Loader.RequestBodyLoader
( requestBodyLoader
)
where

import ClassyPrelude
import Web.Sprinkles.Backends.Data
        ( BackendData (..)
        , BackendMeta (..)
        , BackendSource (..)
        , Items (..)
        , reduceItems
        , rawFromLBS
        )
import Web.Sprinkles.Logger (LogLevel (..))
import Web.Sprinkles.Backends.Loader.Type
import Network.Mime
            ( MimeType
            , MimeMap
            , defaultMimeLookup
            , defaultMimeMap
            , mimeByExt
            , defaultMimeType
            , FileName
            )

requestBodyLoader :: Loader
requestBodyLoader writeLog pbs fetchMode fetchOrder = do
    contents <- rawFromLBS <$> loadPost pbs
    let meta = BackendMeta
                { bmMimeType = contentType pbs
                , bmMTime = Nothing
                , bmName = "POST"
                , bmPath = "POST"
                , bmSize = Nothing
                }
    return [BackendSource meta contents]