In [ ]:
{-# LANGUAGE OverloadedStrings #-}
import Control.Lens
import Network.Wreq
import Data.String
import qualified Data.Text as T
import Data.Aeson.Lens
import Data.HashMap.Strict as HP

In [ ]:
options = defaults 
            & param "jql" .~ ["issuekey = REST-248 OR issuekey = SANDBOX-49"]
            & param "maxResults" .~ [fromString $ show 5]

issues <- getWith options "https://ecosystem.atlassian.net/rest/api/2/search"

In [ ]:
issueIds issues =
        issues ^. responseBody 
                 . key "issues" 
                 . _Array 
                 . traverse 
                 . key "key"
                 . _String
createJQL issueIds = T.intercalate " OR " $
                     IHaskellPrelude.map ("issuekey = " `T.append`) issueIds

In [ ]:
issuesArray = (issues ^. responseBody 
                        . key "issues" 
                        . _Array)
(over each (\issue -> (issue ^. key "key" ._String,
                       issue ^.. key "fields" 
                               . key "subtasks" 
                               . _Array . traverse 
                               . key "key"
                               . _String )) 
      issuesArray)

In [ ]:
(issues ^.. responseBody 
          . key "issues" 
          . _Array 
          . traverse 
          . key "fields"
          )