sprinkles-0.6.0.0: JSON API to HTML website wrapper

Safe HaskellNone
LanguageHaskell2010

Web.Sprinkles.Backends.Data

Description

Types for and operations on backend data.

Synopsis

Documentation

data BackendData p m h Source #

A parsed record from a query result.

Constructors

BackendData 

Fields

Instances
ToJSON (BackendData p m h) Source # 
Instance details

Defined in Web.Sprinkles.Backends.Data

MonadIO m => ToGVal (Run p m h) (BackendData p m h) Source # 
Instance details

Defined in Web.Sprinkles.Backends.Data

Methods

toGVal :: BackendData p m h -> GVal (Run p m h) #

data BackendMeta Source #

Metadata for a backend query result.

Constructors

BackendMeta 

Fields

Instances
Show BackendMeta Source # 
Instance details

Defined in Web.Sprinkles.Backends.Data

Generic BackendMeta Source # 
Instance details

Defined in Web.Sprinkles.Backends.Data

Associated Types

type Rep BackendMeta :: * -> * #

ToJSON BackendMeta Source # 
Instance details

Defined in Web.Sprinkles.Backends.Data

Serialize BackendMeta Source # 
Instance details

Defined in Web.Sprinkles.Backends.Data

ToGVal m BackendMeta Source # 
Instance details

Defined in Web.Sprinkles.Backends.Data

Methods

toGVal :: BackendMeta -> GVal m #

type Rep BackendMeta Source # 
Instance details

Defined in Web.Sprinkles.Backends.Data

data BackendSource Source #

A raw (unparsed) record from a query result.

Instances
Generic BackendSource Source # 
Instance details

Defined in Web.Sprinkles.Backends.Data

Associated Types

type Rep BackendSource :: * -> * #

type Rep BackendSource Source # 
Instance details

Defined in Web.Sprinkles.Backends.Data

type Rep BackendSource = D1 (MetaData "BackendSource" "Web.Sprinkles.Backends.Data" "sprinkles-0.6.0.0-EffGjOzp9OR7TO7a15Us7S" False) (C1 (MetaCons "BackendSource" PrefixI True) (S1 (MetaSel (Just "bsMeta") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 BackendMeta) :*: (S1 (MetaSel (Just "bsSource") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 RawBytes) :*: S1 (MetaSel (Just "bsVerification") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Verification))))

data Verification Source #

Constructors

Trusted 
VerifyCSRF 

data RawBytes Source #

Constructors

RawBytes 
Instances
MonadIO m => ToGVal (Run p m h) RawBytes Source # 
Instance details

Defined in Web.Sprinkles.Backends.Data

Methods

toGVal :: RawBytes -> GVal (Run p m h) #

toBackendData :: (ToJSON a, ToGVal (Run p m h) a) => BackendSource -> a -> BackendData p m h Source #

Wrap a parsed backend value in a BackendData structure. The original raw BackendSource value is needed alongside the parsed value, because the resulting structure contains both the BackendMeta and the raw (unparsed) data from it.

data Items a Source #

The shapes of data that can be returned from a backend query.

Constructors

NotFound

Nothing was found

SingleItem a

A single item was requested, and this is it

MultiItem [a]

Multiple items were requested, here they are

Instances
Functor Items Source # 
Instance details

Defined in Web.Sprinkles.Backends.Data

Methods

fmap :: (a -> b) -> Items a -> Items b #

(<$) :: a -> Items b -> Items a #

Foldable Items Source # 
Instance details

Defined in Web.Sprinkles.Backends.Data

Methods

fold :: Monoid m => Items m -> m #

foldMap :: Monoid m => (a -> m) -> Items a -> m #

foldr :: (a -> b -> b) -> b -> Items a -> b #

foldr' :: (a -> b -> b) -> b -> Items a -> b #

foldl :: (b -> a -> b) -> b -> Items a -> b #

foldl' :: (b -> a -> b) -> b -> Items a -> b #

foldr1 :: (a -> a -> a) -> Items a -> a #

foldl1 :: (a -> a -> a) -> Items a -> a #

toList :: Items a -> [a] #

null :: Items a -> Bool #

length :: Items a -> Int #

elem :: Eq a => a -> Items a -> Bool #

maximum :: Ord a => Items a -> a #

minimum :: Ord a => Items a -> a #

sum :: Num a => Items a -> a #

product :: Num a => Items a -> a #

ToGVal m a => ToGVal m (Items a) Source # 
Instance details

Defined in Web.Sprinkles.Backends.Data

Methods

toGVal :: Items a -> GVal m #

ToJSON a => ToJSON (Items a) Source # 
Instance details

Defined in Web.Sprinkles.Backends.Data

reduceItems :: FetchMode -> [a] -> Items a Source #

Transform a raw list of results into an Items value. This allows us later to distinguish between Nothing Found vs. Empty List, and between Single Item Requested And Found vs. Many Items Requested, One Found. This is needed such that when a single item is requested, it gets converted to GVal and JSON as a scalar, while when we request many items and receive one, it becomes a singleton list.

serializeBackendSource :: BackendSource -> IO SerializableBackendSource Source #

deserializeBackendSource :: SerializableBackendSource -> BackendSource Source #