Przeglądaj źródła

Add run functions

jherve 2 lat temu
rodzic
commit
262cee8fe1
1 zmienionych plików z 16 dodań i 5 usunięć
  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