From ad4485591037eee18dd474203fa0eaee55d3bc87 Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Thu, 14 Jul 2022 15:46:04 +0200 Subject: [PATCH] chore(datetime): add timeFormatUser --- src/Handler/Utils/DateTime.hs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Handler/Utils/DateTime.hs b/src/Handler/Utils/DateTime.hs index 932384b31..972cd87c4 100644 --- a/src/Handler/Utils/DateTime.hs +++ b/src/Handler/Utils/DateTime.hs @@ -7,7 +7,7 @@ module Handler.Utils.DateTime , toMidnight, beforeMidnight, toMidday, toMorning , formatDiffDays, formatCalendarDiffDays , formatTime' - , formatTime, formatTimeW, formatTimeMail + , formatTime, formatTimeUser, formatTimeW, formatTimeMail , formatTimeRange, formatTimeRangeW, formatTimeRangeMail , getTimeLocale, getDateTimeFormat , getDateTimeFormatter @@ -84,6 +84,9 @@ formatTime' fmtStr t = fmap fromString $ Time.formatTime <$> getTimeLocale <*> p formatTime :: (HasLocalTime t, MonadHandler m, HandlerSite m ~ UniWorX, YesodAuthPersist UniWorX, AuthEntity UniWorX ~ User, AuthId UniWorX ~ UserId) => SelDateTimeFormat -> t -> m Text formatTime proj t = flip formatTime' t . unDateTimeFormat =<< getDateTimeFormat proj +formatTimeUser :: (HasLocalTime t, MonadHandler m, HandlerSite m ~ UniWorX, YesodAuthPersist UniWorX, AuthEntity UniWorX ~ User, AuthId UniWorX ~ UserId) => SelDateTimeFormat -> t -> Maybe (Entity User) -> m Text +formatTimeUser proj t mUser = flip formatTime' t . unDateTimeFormat =<< getDateTimeFormatUser proj mUser + -- formatTimeH :: (HasLocalTime t) => SelDateTimeFormat -> t -> Handler Text -- formatTimeH = formatTime @@ -97,12 +100,14 @@ getTimeLocale :: MonadHandler m => m TimeLocale getTimeLocale = getTimeLocale' <$> languages getDateTimeFormat :: (MonadHandler m, HandlerSite m ~ UniWorX, YesodAuthPersist UniWorX, AuthEntity UniWorX ~ User, AuthId UniWorX ~ UserId) => SelDateTimeFormat -> m DateTimeFormat -getDateTimeFormat sel = do - mauth <- liftHandler maybeAuth +getDateTimeFormat sel = liftHandler maybeAuth >>= getDateTimeFormatUser sel + +getDateTimeFormatUser :: (MonadHandler m, HandlerSite m ~ UniWorX, YesodAuthPersist UniWorX, AuthEntity UniWorX ~ User, AuthId UniWorX ~ UserId) => SelDateTimeFormat -> Maybe (Entity User) -> m DateTimeFormat +getDateTimeFormatUser sel mUser = do UserDefaultConf{..} <- getsYesod $ view _appUserDefaults let fmt - | Just (Entity _ User{..}) <- mauth + | Just (Entity _ User{..}) <- mUser = case sel of SelFormatDateTime -> userDateTimeFormat SelFormatDate -> userDateFormat