aboutsummaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2016-02-18 15:04:19 +0100
committerGregor Kleen <gkleen@yggdrasil.li>2016-02-18 15:04:19 +0100
commita805783f4bb2868e63ba49a911775fff30df5a07 (patch)
tree130c8ef970f9489876d0667eff25444a0816c41a /server/src
parentc88197535f7a4c13b7464a785881a91a67ebd15b (diff)
downloadthermoprint-a805783f4bb2868e63ba49a911775fff30df5a07.tar
thermoprint-a805783f4bb2868e63ba49a911775fff30df5a07.tar.gz
thermoprint-a805783f4bb2868e63ba49a911775fff30df5a07.tar.bz2
thermoprint-a805783f4bb2868e63ba49a911775fff30df5a07.tar.xz
thermoprint-a805783f4bb2868e63ba49a911775fff30df5a07.zip
Introduced Range
Diffstat (limited to 'server/src')
-rw-r--r--server/src/Thermoprint/Server/API.hs15
1 files changed, 6 insertions, 9 deletions
diff --git a/server/src/Thermoprint/Server/API.hs b/server/src/Thermoprint/Server/API.hs
index cd4326e..3f3ab46 100644
--- a/server/src/Thermoprint/Server/API.hs
+++ b/server/src/Thermoprint/Server/API.hs
@@ -141,16 +141,13 @@ printerStatus = fmap queueToStatus . queue' . snd <=< lookupPrinter . Just
141 queueToStatus (Queue _ (Just c) _) = Busy . castId $ jobId c 141 queueToStatus (Queue _ (Just c) _) = Busy . castId $ jobId c
142 142
143listJobs :: Maybe PrinterId 143listJobs :: Maybe PrinterId
144 -> Maybe API.JobId -> Maybe API.JobId 144 -> Maybe (Range API.JobId) -> Maybe (Range UTCTime)
145 -> Maybe UTCTime -> Maybe UTCTime
146 -> Handler (Seq (API.JobId, UTCTime, JobStatus)) 145 -> Handler (Seq (API.JobId, UTCTime, JobStatus))
147listJobs Nothing minId maxId minTime maxTime = fmap mconcat . mapM (\pId -> listJobs (Just pId) minId maxId minTime maxTime) =<< asks (Map.keys . printers) 146listJobs Nothing idR timeR = fmap mconcat . mapM (\pId -> listJobs (Just pId) idR timeR) =<< asks (Map.keys . printers)
148listJobs pId minId maxId minTime maxTime = fmap (filterJobs . extractJobs) . (\(a, b) -> (,) a <$> queue' b) =<< lookupPrinter pId 147listJobs pId idR timeR = fmap (filterJobs . extractJobs) . (\(a, b) -> (,) a <$> queue' b) =<< lookupPrinter pId
149 where 148 where
150 filterJobs = Seq.filter (\(id, time, _) -> and ([ maybe True (<= id ) minId 149 filterJobs = Seq.filter (\(id, time, _) -> and ([ maybe True (`contains` id) idR
151 , maybe True (>= id ) maxId 150 , maybe True (`contains` time) timeR
152 , maybe True (<= time) minTime
153 , maybe True (>= time) maxTime
154 ] :: [Bool]) 151 ] :: [Bool])
155 ) 152 )
156 153
@@ -158,7 +155,7 @@ getJob :: API.JobId -> Handler Printout
158getJob jobId = fmap jobContent . maybe (left err404) return =<< runSqlPool (get $ castId jobId) =<< asks sqlPool 155getJob jobId = fmap jobContent . maybe (left err404) return =<< runSqlPool (get $ castId jobId) =<< asks sqlPool
159 156
160jobStatus :: API.JobId -> Handler JobStatus 157jobStatus :: API.JobId -> Handler JobStatus
161jobStatus jobId = maybe (left err404) return . lookup jobId . map (\(id, _, st) -> (id, st)) . toList =<< listJobs Nothing Nothing Nothing Nothing Nothing 158jobStatus jobId = maybe (left err404) return . lookup jobId . map (\(id, _, st) -> (id, st)) . toList =<< listJobs Nothing Nothing Nothing
162 159
163abortJob :: API.JobId -> Handler () 160abortJob :: API.JobId -> Handler ()
164abortJob needle = do 161abortJob needle = do