packages feed

yesod-mangopay-1.0: app/Handler/Home.hs

{-# LANGUAGE TupleSections, OverloadedStrings #-}
-- | home and events pages
module Handler.Home where

import Import

import Yesod.MangoPay
import Web.MangoPay
import Data.IORef (modifyIORef, readIORef)

-- | Home page
getHomeR :: Handler Html
getHomeR = do
    pg<-getPagination
    usersL<-runYesodMPTToken $ listUsers pg
    -- pagination links
    let (previous,next)=getPaginationNav pg usersL
    let users=plData usersL
    defaultLayout $ do
        aDomId <- newIdent
        setTitleI MsgHello
        $(widgetFile "homepage")

-- | notification callback page
getMPHookR :: Handler Text
getMPHookR = do
  evt<-parseMPNotification
  site <- getYesod
  -- prepend event to list
  liftIO $ modifyIORef (appEvents site) (evt :)
  -- send simple response
  sendResponse ("ok"::Text)

-- | list received events
getMPEventsR :: Handler Html
getMPEventsR = do
  site <- getYesod
  events<-liftIO $ readIORef  (appEvents site)
  defaultLayout $ do
      aDomId <- newIdent
      setTitleI MsgTitleEvents
      $(widgetFile "events")