mirror of
https://code.sup39.dev/repos/Wqawg
synced 2025-01-06 22:46:45 +09:00
46 lines
1.1 KiB
Haskell
46 lines
1.1 KiB
Haskell
{- This file is part of Vervis.
|
|
-
|
|
- Written in 2016, 2018 by fr33domlover <fr33domlover@riseup.net>.
|
|
-
|
|
- ♡ Copying is an act of love. Please copy, reuse and share.
|
|
-
|
|
- The author(s) have dedicated all copyright and related and neighboring
|
|
- rights to this software to the public domain worldwide. This software is
|
|
- distributed without any warranty.
|
|
-
|
|
- You should have received a copy of the CC0 Public Domain Dedication along
|
|
- with this software. If not, see
|
|
- <http://creativecommons.org/publicdomain/zero/1.0/>.
|
|
-}
|
|
|
|
module Vervis.TicketFilter
|
|
( TicketFilter (..)
|
|
, filterTickets
|
|
)
|
|
where
|
|
|
|
import Prelude
|
|
|
|
import Data.Default.Class
|
|
import Database.Esqueleto
|
|
|
|
import Vervis.Model
|
|
import Vervis.Model.Ticket
|
|
|
|
data TicketFilter = TicketFilter
|
|
{ tfStatus :: Maybe TicketStatus
|
|
}
|
|
|
|
instance Default TicketFilter where
|
|
def = TicketFilter
|
|
{ tfStatus = Nothing
|
|
}
|
|
|
|
filterTickets
|
|
:: Esqueleto q e b
|
|
=> TicketFilter
|
|
-> Maybe (e (Entity Ticket) -> e (Value Bool))
|
|
filterTickets tf =
|
|
case tfStatus tf of
|
|
Nothing -> Nothing
|
|
Just s -> Just $ \ t -> t ^. TicketStatus ==. val s
|