diff --git a/src/Handler/Admin/Avs.hs b/src/Handler/Admin/Avs.hs index b04ea3795..953c08d5a 100644 --- a/src/Handler/Admin/Avs.hs +++ b/src/Handler/Admin/Avs.hs @@ -719,17 +719,30 @@ postAdminAvsUserR uuid = do runSwitchFrom cname cid = do ((fres, fraw), fenc) <- runFormPost $ switchCompanyForm uuid cid -- formResultModal :: (MonadHandler m, RedirectUrl (HandlerSite m) route) => FormResult a -> route -> (a -> WriterT [Message] m ()) -> m () - formResultModal fres (AdminAvsUserR uuid) (\UserAvsSwitchCompanyData{..} -> do - problems <- lift . runDB $ do - (usrUp, problems) <- switchAvsUserCompany True False uid uaaCompany - update uid usrUp - mapM_ reportAdminProblem problems - return problems - -- todo tell all problems as well - forM_ problems (\p -> tell . pure =<< messageI Error (text2message $ tshow p)) -- todo: better display of errors - let ok = if null problems then Success else Error - tell . pure =<< messageI ok (MsgUserAvsCompanySwitched cname) - ) + -- formResultModal fres (AdminAvsUserR uuid) (\UserAvsSwitchCompanyData{..} -> do + -- problems <- lift . runDB $ do + -- (usrUp, problems) <- switchAvsUserCompany True False uid uaaCompany + -- update uid usrUp + -- mapM_ reportAdminProblem problems + -- return problems + -- -- todo tell all problems as well + -- forM_ problems (\p -> tell . pure =<< messageI Error (text2message $ tshow p)) -- todo: better display of errors + -- let ok = if null problems then Success else Error + -- tell . pure =<< messageI ok (MsgUserAvsCompanySwitched cname) + -- ) + let procRes (UserAvsSwitchCompanyData{..}) = do + $logInfoS "AVS" ("Switch company result " <> tshow fres) + problems <- runDB $ do + (usrUp, problems) <- switchAvsUserCompany True False uid uaaCompany + update uid usrUp + mapM_ reportAdminProblem problems + return problems + forM_ problems (\p -> do + $logErrorS "AVS" $ "Switch company problem: " <> tshow p + addMessage Error (text2Html $ tshow p)) -- todo: better display of errors + let ok = if null problems then Success else Error + addMessageI ok (MsgUserAvsCompanySwitched cname) + formResult fres procRes let fwgt = wrapForm fraw def{ formAction = Just $ SomeRoute (AdminAvsUserR uuid), formEncoding = fenc, formSubmit = FormNoSubmit, formAttrs = [ asyncSubmitAttr | isModal ]} return fwgt