packages feed

btc-lsp-0.1.0.0: src/BtcLsp/Yesod/Handler/OpenChan.hs

{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}

module BtcLsp.Yesod.Handler.OpenChan where

import BtcLsp.Class.Env
import BtcLsp.Yesod.Import

getOpenChanR :: Handler Html
getOpenChanR = do
  App {appMRunner = UnliftIO run} <- getYesod
  nodeUri <- liftIO $ run getLndNodeUri
  nodeUriHex <-
    eitherM
      (const badMethod)
      (pure . from @NodeUriHex @Text)
      . pure
      $ tryFrom nodeUri
  qrCodeSrc <-
    maybeM badMethod pure
      . pure
      $ toQr nodeUriHex
  panelLayout Info MsgOpenChanRLinkLong MsgOpenChanInstruction $ do
    setTitleI MsgOpenChanRTitle
    $(widgetFile "open_chan")
  where
    htmlUuid = $(mkHtmlUuid)