module IHP.Job.Dashboard.Utils where import IHP.Prelude import IHP.ModelSupport import qualified Database.PostgreSQL.Simple.Types as PG numberOfPagesForTable :: (?modelContext::ModelContext) => Text -> Int -> IO Int numberOfPagesForTable :: (?modelContext::ModelContext) => Text -> Int -> IO Int numberOfPagesForTable Text table Int pageSize = do Int totalRecords <- (?modelContext::ModelContext) => Text -> IO Int Text -> IO Int totalRecordsForTable Text table Int -> IO Int forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (Int -> IO Int) -> Int -> IO Int forall a b. (a -> b) -> a -> b $ case Int totalRecords Int -> Int -> (Int, Int) forall a. Integral a => a -> a -> (a, a) `quotRem` Int pageSize of (Int pages, Int 0) -> Int pages (Int pages, Int _) -> Int pages Int -> Int -> Int forall a. Num a => a -> a -> a + Int 1 totalRecordsForTable :: (?modelContext :: ModelContext) => Text -> IO Int totalRecordsForTable :: (?modelContext::ModelContext) => Text -> IO Int totalRecordsForTable Text table = Query -> () -> IO Int forall q value. (?modelContext::ModelContext, ToRow q, FromField value) => Query -> q -> IO value sqlQueryScalar (ByteString -> Query PG.Query (ByteString -> Query) -> ByteString -> Query forall a b. (a -> b) -> a -> b $ Text -> ByteString forall a b. ConvertibleStrings a b => a -> b cs (Text -> ByteString) -> Text -> ByteString forall a b. (a -> b) -> a -> b $ Text "SELECT COUNT(*) FROM " Text -> Text -> Text forall a. Semigroup a => a -> a -> a <> Text table) ()