Commit a1d04f92 authored by Alexandre Delanoë's avatar Alexandre Delanoë

[API] connection to backend ok

parent f5a32191
{ {
"name": "Gargantext", "name": "Gargantext",
"version": "0.0.0.4", "version": "0.0.1.3.2",
"scripts": { "scripts": {
"rebase-set": "spago package-set-upgrade && spago psc-package-insdhall", "rebase-set": "spago package-set-upgrade && spago psc-package-insdhall",
"rebuild-set": "spago psc-package-insdhall", "rebuild-set": "spago psc-package-insdhall",
......
module Gargantext.Components.Search.SearchField module Gargantext.Components.Search.SearchField
( Search, Props, defaultSearch, searchField, searchFieldComponent, isIsTex) where ( Search, Props, defaultSearch, searchField, searchFieldComponent, isIsTex) where
import Data.Maybe (Maybe(..), maybe) import Data.Maybe (Maybe(..), maybe, fromMaybe)
import Data.Newtype (over) import Data.Newtype (over)
import Data.String (length) import Data.String (length)
import Data.Set as Set import Data.Set as Set
...@@ -18,7 +18,7 @@ import Gargantext.Prelude (Unit, bind, const, discard, map, pure, show, ($), (&& ...@@ -18,7 +18,7 @@ import Gargantext.Prelude (Unit, bind, const, discard, map, pure, show, ($), (&&
import Gargantext.Data.Array (catMaybes) import Gargantext.Data.Array (catMaybes)
import Gargantext.Components.Lang (Lang) import Gargantext.Components.Lang (Lang)
import Gargantext.Components.Search.Types (DataField(..), Database(..), IMT_org(..), Org(..), SearchQuery(..), allIMTorgs, allOrgs, dataFields, defaultSearchQuery, doc, performSearch, readDatabase, readOrg) -- (Database(..), readDatabase, Lang(..), readLang, Org(..), readOrg, allOrgs, allIMTorgs, HAL_Filters(..), IMT_org(..)) import Gargantext.Components.Search.Types (DataOriginApi(..), DataField(..), Database(..), IMT_org(..), Org(..), SearchQuery(..), allIMTorgs, allOrgs, dataFields, defaultSearchQuery, doc, performSearch, readDatabase, readOrg, datafield2database)
import Gargantext.Sessions (Session) import Gargantext.Sessions (Session)
import Gargantext.Types as GT import Gargantext.Types as GT
import Gargantext.Utils.Reactix as R2 import Gargantext.Utils.Reactix as R2
...@@ -30,7 +30,7 @@ select :: forall props. ...@@ -30,7 +30,7 @@ select :: forall props.
-> R.Element -> R.Element
select = R.createElement "select" select = R.createElement "select"
type Search = { databases :: Array DataField type Search = { databases :: Database
, datafield :: Maybe DataField , datafield :: Maybe DataField
, lang :: Maybe Lang , lang :: Maybe Lang
, node_id :: Maybe Int , node_id :: Maybe Int
...@@ -45,7 +45,7 @@ eqSearch s s' = (s.databases == s'.databases) ...@@ -45,7 +45,7 @@ eqSearch s s' = (s.databases == s'.databases)
&& (s.term == s'.term) && (s.term == s'.term)
defaultSearch :: Search defaultSearch :: Search
defaultSearch = { databases: [] defaultSearch = { databases: Empty
, datafield: Nothing , datafield: Nothing
, node_id : Nothing , node_id : Nothing
, lang : Nothing , lang : Nothing
...@@ -261,7 +261,7 @@ dataFieldNav ({datafield} /\ setSearch) datafields = ...@@ -261,7 +261,7 @@ dataFieldNav ({datafield} /\ setSearch) datafields =
then " active" then " active"
else "" else ""
, on: { click: \_ -> setSearch $ _ { datafield = Just df' , on: { click: \_ -> setSearch $ _ { datafield = Just df'
, databases = [df'] , databases = datafield2database df'
} }
} }
-- just one database query for now -- just one database query for now
...@@ -312,8 +312,8 @@ databaseInput (search /\ setSearch) dbs = ...@@ -312,8 +312,8 @@ databaseInput (search /\ setSearch) dbs =
onChange e = do onChange e = do
let value = readDatabase $ R2.unsafeEventValue e let value = readDatabase $ R2.unsafeEventValue e
setSearch $ _ { datafield = Just $ External value setSearch $ _ { datafield = Just $ External value
, databases = [External value] -- should append this , databases = fromMaybe Empty value
} }
......
...@@ -40,6 +40,7 @@ data DataField = Gargantext ...@@ -40,6 +40,7 @@ data DataField = Gargantext
| Web | Web
| Files | Files
instance showDataField :: Show DataField where instance showDataField :: Show DataField where
show Gargantext = "Gargantext" show Gargantext = "Gargantext"
show (External _) = "Others" -- <> show x show (External _) = "Others" -- <> show x
...@@ -52,24 +53,39 @@ instance docDataField :: Doc DataField where ...@@ -52,24 +53,39 @@ instance docDataField :: Doc DataField where
doc Web = "All the web crawled with meta-search-engine SearX" doc Web = "All the web crawled with meta-search-engine SearX"
doc Files = "Zip files with formats.." doc Files = "Zip files with formats.."
derive instance eqDataField :: Eq DataField derive instance eqDataField :: Eq DataField
instance encodeJsonDataField :: EncodeJson DataField where instance encodeJsonDataField :: EncodeJson DataField where
encodeJson Gargantext = encodeJson "Internal PubMed" -- later Internal Maybe Database encodeJson Gargantext = encodeJson "Internal PubMed" -- later Internal Maybe Database
encodeJson (External (Just db)) = encodeJson $ "External " <> show db encodeJson (External (Just db)) = encodeJson $ "External " <> show db
encodeJson a = encodeJson (show a) encodeJson a = encodeJson (show a)
{- ----------------------------------------
instance eqDataField :: Eq DataField where instance showDataOriginApi :: Show DataOriginApi where
eq Gargantext Gargantext = true show (InternalOrigin io) = "InternalOrigin " <> show io.api
eq (External _) (External _) = true show (ExternalOrigin io) = "ExternalOrigin " <> show io.api
eq Web Web = true
eq _ _ = false derive instance eqDataOriginApi :: Eq DataOriginApi
-}
data DataOriginApi = InternalOrigin { api :: Database }
| ExternalOrigin { api :: Database }
instance encodeJsonDataOriginApi :: EncodeJson DataOriginApi where
encodeJson (InternalOrigin dta) = "api" := dta.api ~> jsonEmptyObject
encodeJson (ExternalOrigin dta) = "api" := dta.api ~> jsonEmptyObject
datafield2dataOriginApi :: DataField -> DataOriginApi
datafield2dataOriginApi (External (Just a)) = ExternalOrigin { api : a }
datafield2dataOriginApi _ = InternalOrigin { api : IsTex } -- TOD fixme
------------------------------------------------------------------------ ------------------------------------------------------------------------
-- | Database search specifications -- | Database search specifications
datafield2database :: DataField -> Database
datafield2database (External (Just x)) = x
datafield2database _ = Empty
allDatabases :: Array Database allDatabases :: Array Database
allDatabases = [ Empty allDatabases = [ Empty
, PubMed , PubMed
...@@ -289,7 +305,7 @@ instance showSearchOrder :: Show SearchOrder where ...@@ -289,7 +305,7 @@ instance showSearchOrder :: Show SearchOrder where
newtype SearchQuery = SearchQuery newtype SearchQuery = SearchQuery
{ query :: String { query :: String
, databases :: Array DataField , databases :: Database
, datafield :: Maybe DataField , datafield :: Maybe DataField
, files_id :: Array String , files_id :: Array String
, lang :: Maybe Lang , lang :: Maybe Lang
...@@ -304,7 +320,7 @@ derive instance newtypeSearchQuery :: Newtype SearchQuery _ ...@@ -304,7 +320,7 @@ derive instance newtypeSearchQuery :: Newtype SearchQuery _
defaultSearchQuery :: SearchQuery defaultSearchQuery :: SearchQuery
defaultSearchQuery = SearchQuery defaultSearchQuery = SearchQuery
{ query: "" { query: ""
, databases: [] , databases: Empty
, datafield: Nothing , datafield: Nothing
, files_id : [] , files_id : []
, lang : Nothing , lang : Nothing
......
...@@ -467,8 +467,8 @@ derive instance genericAsyncTaskType :: Generic AsyncTaskType _ ...@@ -467,8 +467,8 @@ derive instance genericAsyncTaskType :: Generic AsyncTaskType _
asyncTaskTypePath :: AsyncTaskType -> String asyncTaskTypePath :: AsyncTaskType -> String
asyncTaskTypePath Form = "add/form/async/" asyncTaskTypePath Form = "add/form/async/"
asyncTaskTypePath GraphT = "async/nobody/" asyncTaskTypePath Query = "query/"
asyncTaskTypePath Query = "add/query/async/nobody/" asyncTaskTypePath GraphT = "async/"
type AsyncTaskID = String type AsyncTaskID = String
......
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