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

[API] connection to backend ok

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