|
|
@@ -2,17 +2,18 @@ module LinkedIn.ArtDecoCardAlt where
|
|
|
|
|
|
import Prelude
|
|
|
|
|
|
-import Data.Either (note)
|
|
|
+import Data.Either (Either, note)
|
|
|
import Data.Generic.Rep (class Generic)
|
|
|
import Data.List (List)
|
|
|
import Data.List.Types (NonEmptyList)
|
|
|
import Data.Maybe (Maybe)
|
|
|
import Data.Show.Generic (genericShow)
|
|
|
+import Effect (Effect)
|
|
|
import LinkedIn (DetachedNode)
|
|
|
import LinkedIn.ArtDeco (ArtDecoPvsEntity, parseArtDecoPvsEntity)
|
|
|
import LinkedIn.ArtDeco as AD
|
|
|
import LinkedIn.Types (Parser, QueryError(..), QueryRunner)
|
|
|
-import LinkedIn.Utils (queryOne, queryOneAndParse)
|
|
|
+import LinkedIn.Utils (queryAll, queryOne, queryOneAndParse)
|
|
|
import Web.DOM (Node)
|
|
|
import Web.DOM.Node (nodeName)
|
|
|
|
|
|
@@ -31,10 +32,20 @@ instance Functor ArtDecoCardAltElement where
|
|
|
map f (ArtDecoCardAltElement {pvs_entity}) =
|
|
|
ArtDecoCardAltElement ({pvs_entity: f pvs_entity})
|
|
|
|
|
|
-queryArtDecoCardAlt :: QueryRunner (ArtDecoCardAltElement Node)
|
|
|
+queryArtDecoCardAlt :: Node → Effect (Either QueryError (ArtDecoCardAltElement Node))
|
|
|
queryArtDecoCardAlt n = do
|
|
|
- pvs <- queryOne ":scope div.pvs-entity--padded" n
|
|
|
+ pvs <- runOne ":scope div.pvs-entity--padded" n
|
|
|
|
|
|
pure $ ado
|
|
|
- p <- note (QNodeNotFoundError "stuff") pvs
|
|
|
+ p <- pvs
|
|
|
in ArtDecoCardAltElement {pvs_entity: p}
|
|
|
+
|
|
|
+runOne ∷ String → Node → Effect (Either QueryError Node)
|
|
|
+runOne selector node = do
|
|
|
+ maybeNode <- queryOne selector node
|
|
|
+ pure $ note (QNodeNotFoundError selector) maybeNode
|
|
|
+
|
|
|
+runAll ∷ String → Node → Effect (Either QueryError (NonEmptyList Node))
|
|
|
+runAll selector node = do
|
|
|
+ maybeNodes <- queryAll selector node
|
|
|
+ pure $ note (QNodeListNotFoundError selector) maybeNodes
|