challengeReactions :: HTTPServerLiveConf -> [(String, ChallengeReaction)]
challengeReactions httpServerLiveConf =
  [ ( http01
    , ChallengeReaction
        { fulfill =
            \identifier keyAuthz -> do
              addResponse
                (requestId identifier keyAuthz, keyAuthorization keyAuthz)
                httpServerLiveConf
              putStrLn "[Challenge Reaction] Fulfilled challenge"
        , rollback =
            \identifier keyAuthz -> do
              removeResponse (requestId identifier keyAuthz) httpServerLiveConf
              putStrLn "[Challenge Reaction] Removed challenge response"
        })
  ]
  where
    requestId identifier keyAuthz =
      (acmeObjIdentifierValue identifier, keyAuthorizationHttpPath keyAuthz)
challengeReactions :: HTTPServerLiveConf -> [(String, ChallengeReaction)]
challengeReactions httpServerLiveConf =
  [ ( http01
    , ChallengeReaction
        { fulfill =
            \identifier keyAuthz -> do
              addResponse
                (requestId identifier keyAuthz, keyAuthorization keyAuthz)
                httpServerLiveConf
              putStrLn "[Challenge Reaction] Fulfilled challenge"
        , rollback =
            \identifier keyAuthz -> do
              removeResponse (requestId identifier keyAuthz) httpServerLiveConf
              putStrLn "[Challenge Reaction] Removed challenge response"
        })
  ]
  where
    requestId identifier keyAuthz =
      (acmeObjIdentifierValue identifier, keyAuthorizationHttpPath keyAuthz)
challengeReactions httpServerLiveConf =
  [ ( http01
    , ChallengeReaction
        { fulfill =
            \identifier keyAuthz -> do
              addResponse
                (requestId identifier keyAuthz, keyAuthorization keyAuthz)
                httpServerLiveConf
              putStrLn "[Challenge Reaction] Fulfilled challenge"
        , rollback =
            \identifier keyAuthz -> do
              removeResponse (requestId identifier keyAuthz) httpServerLiveConf
              putStrLn "[Challenge Reaction] Removed challenge response"
        })
  ]
  where
    requestId identifier keyAuthz =
      (acmeObjIdentifierValue identifier, keyAuthorizationHttpPath keyAuthz)