freckle-app-1.10.1.0: Haskell application toolkit used at Freckle
Safe HaskellSafe-Inferred
LanguageHaskell2010

Freckle.App.Database

Description

Database access for your App

Synopsis

Documentation

class Monad m => MonadTracer (m :: Type -> Type) Source #

This is generally scoped by Monad stack to do different things

Minimal complete definition

getTracer

Instances

Instances details
HasTracer app => MonadTracer (AppExample app) Source # 
Instance details

Defined in Freckle.App.Test

(Monad m, HasTracer app) => MonadTracer (AppT app m) Source # 
Instance details

Defined in Freckle.App

Methods

getTracer :: AppT app m Tracer Source #

MonadTracer m => MonadTracer (IdentityT m) 
Instance details

Defined in OpenTelemetry.Trace.Monad

MonadTracer m => MonadTracer (ReaderT r m) 
Instance details

Defined in OpenTelemetry.Trace.Monad

class HasStatsClient env Source #

Minimal complete definition

statsClientL

Instances

Instances details
HasStatsClient StatsClient Source # 
Instance details

Defined in Freckle.App.Stats

HasStatsClient site => HasStatsClient (HandlerData child site) Source # 
Instance details

Defined in Freckle.App.Stats

class HasSqlPool app where Source #

Methods

getSqlPool :: app -> SqlPool Source #

Instances

Instances details
HasSqlPool SqlPool Source # 
Instance details

Defined in Freckle.App.Database

HasSqlPool site => HasSqlPool (HandlerData child site) Source # 
Instance details

Defined in Freckle.App.Database

Methods

getSqlPool :: HandlerData child site -> SqlPool Source #

runDB :: (MonadUnliftIO m, MonadTracer m, MonadReader app m, HasSqlPool app, HasStatsClient app, HasCallStack) => SqlPersistT m a -> m a Source #

Run a Database action with connection stats and tracing

This uses OpenTelemetry and MonadTracer. For callstacks in traces to be useful, ensure you have HasCallStack on functions that call this (and functions that call those, for as far as you require to get to a useful source location).