[refactor] one method to fetch corpus and list in CodeSection

Also, added .idea, .parcel-cache to .gitignore
parent cc0bb7cd
Pipeline #7513 passed with stages
in 24 minutes
......@@ -49,4 +49,8 @@ bundle.js
/dist/bundle.min.js*
# IDE specific
.idea/
.vscode
# parcel
.parcel-cache/
......@@ -418,21 +418,7 @@ loadCorpus { nodeId, session } = do
case res of
Left err -> pure $ Left err
Right (NodePoly { parentId: corpusId } :: NodePoly {}) -> do
eCorpusNode <- get session $ corpusNodeRoute (fromMaybe 0 corpusId) ""
eDefaultListIds <-
(get session $ defaultListIdsRoute (fromMaybe 0 corpusId))
:: forall a. JSON.ReadForeign a => AffETableResult (NodePoly a)
case eCorpusNode of
Left err -> pure $ Left err
Right corpusNode -> do
case eDefaultListIds of
Left err -> pure $ Left err
Right defaultListIds -> do
case (A.head defaultListIds.docs :: Maybe (NodePoly HyperdataList)) of
Just (NodePoly { id: defaultListId }) ->
pure $ Right { corpusId: (fromMaybe 0 corpusId), corpusNode, defaultListId }
Nothing ->
pure $ Left $ CustomError "Missing default list"
fetchCorpusNode session corpusId
-- (NodePoly {parentId: corpusId} :: NodePoly {}) <- get session nodePolyRoute
-- corpusNode <- get session $ corpusNodeRoute corpusId ""
......@@ -445,8 +431,6 @@ loadCorpus { nodeId, session } = do
-- throwError $ error "Missing default list"
where
nodePolyRoute = NodeAPI Corpus (Just nodeId) ""
corpusNodeRoute = NodeAPI Corpus <<< Just
defaultListIdsRoute = Children NodeList 0 1 Nothing <<< Just
loadCorpusWithChild :: Record LoadProps -> AffRESTError CorpusData
loadCorpusWithChild { nodeId: childId, session } = do
......@@ -456,24 +440,38 @@ loadCorpusWithChild { nodeId: childId, session } = do
Left err -> pure $ Left err
Right listNode -> do
let (NodePoly { parentId: corpusId } :: NodePoly {}) = listNode
eCorpusNode <- get session $ corpusNodeRoute (fromMaybe 0 corpusId) ""
case eCorpusNode of
fetchCorpusNode session corpusId
where
listNodeRoute = NodeAPI Node <<< Just
fetchCorpusNode session corpusId = do
eCorpusNode <- get session $ corpusNodeRoute defaultCorpusId ""
case eCorpusNode of
Left err -> pure $ Left err
Right corpusNode -> do
eDefaultListId <- fetchDefaultList session defaultCorpusId
case eDefaultListId of
Left err -> pure $ Left err
Right corpusNode -> do
eDefaultListIds <-
(get session $ defaultListIdsRoute (fromMaybe 0 corpusId))
:: forall a. JSON.ReadForeign a => AffETableResult (NodePoly a)
case eDefaultListIds of
Left err -> pure $ Left err
Right defaultListIds -> do
case (A.head defaultListIds.docs :: Maybe (NodePoly HyperdataList)) of
Just (NodePoly { id: defaultListId }) ->
pure $ Right { corpusId: fromMaybe 0 corpusId, corpusNode, defaultListId }
Nothing ->
throwError $ error "Missing default list"
Right defaultListId ->
pure $ Right { corpusId: defaultCorpusId, corpusNode, defaultListId }
where
defaultCorpusId = fromMaybe 0 corpusId
corpusNodeRoute = NodeAPI Corpus <<< Just
listNodeRoute = NodeAPI Node <<< Just
fetchDefaultList :: Session -> ID -> AffRESTError ID
fetchDefaultList session corpusId = do
eDefaultListIds <-
(get session $ defaultListIdsRoute corpusId)
:: forall a. JSON.ReadForeign a => AffETableResult (NodePoly a)
case eDefaultListIds of
Left err -> pure $ Left err
Right defaultListIds -> do
case (A.head defaultListIds.docs :: Maybe (NodePoly HyperdataList)) of
Just (NodePoly { id: defaultListId }) ->
pure $ Right defaultListId
Nothing ->
pure $ Left $ CustomError "Missing default list"
where
defaultListIdsRoute = Children NodeList 0 1 Nothing <<< Just
type LoadWithReloadProps =
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment