chore(datetime): add timeFormatUser

This commit is contained in:
Sarah Vaupel 2022-07-14 15:46:04 +02:00
parent 5e671f1f76
commit ad44855910

View File

@ -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