jherve 2 лет назад
Родитель
Сommit
262cee8fe1
1 измененных файлов с 16 добавлено и 5 удалено
  1. 16 5
      src/LinkedIn/ArtDecoCardAlt.purs

+ 16 - 5
src/LinkedIn/ArtDecoCardAlt.purs

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