[FIX] Clean Text before sending it to NLP micro services + tests + clean code for...
[gargantext.git] / src / Gargantext / Utils / Jobs.hs
index 87a83b249f89420e2c338e07d1e72d08f8954083..707c82f14fb377f9ffeca025b4e06ffea31970e8 100644 (file)
@@ -4,12 +4,13 @@ module Gargantext.Utils.Jobs (
     serveJobsAPI
   -- * Parsing and reading @GargJob@s from disk
   , readPrios
+  -- * Handy re-exports
+  , MonadJobStatus(..)
   ) where
 
 import Control.Monad.Except
 import Control.Monad.Reader
 import Data.Aeson (ToJSON)
-import Data.Monoid (Dual)
 import Prelude
 import System.Directory (doesFileExist)
 import Text.Read (readMaybe)
@@ -17,7 +18,6 @@ import Text.Read (readMaybe)
 import Gargantext.API.Admin.EnvTypes
 import Gargantext.API.Prelude
 import qualified Gargantext.Utils.Jobs.Internal as Internal
-import Gargantext.Utils.Jobs.Map
 import Gargantext.Utils.Jobs.Monad
 
 import qualified Servant.Job.Async as SJ
@@ -33,15 +33,16 @@ serveJobsAPI
    , Show (JobType m)
    , ToJSON (JobEventType m)
    , ToJSON (JobOutputType m)
-   , MonadJobStatus m Dual
-   , m ~ (GargM env GargError)
+   , MonadJobStatus m
+   , m ~ (GargM Env GargError)
+   , JobEventType m ~ JobOutputType m
    )
   => JobType m
-  -> (Internal.JobHandle -> input -> Logger (JobEventType m) -> m (JobOutputType m))
+  -> (JobHandle m -> input -> m ())
   -> SJ.AsyncJobsServerT' ctI ctO callbacks (JobEventType m) input (JobOutputType m) m
-serveJobsAPI jobType f = Internal.serveJobsAPI ask jobType jobErrorToGargError $ \env jHandle i l -> do
+serveJobsAPI jobType f = Internal.serveJobsAPI mkJobHandle ask jobType jobErrorToGargError $ \env jHandle i -> do
   putStrLn ("Running job of type: " ++ show jobType)
-  runExceptT $ runReaderT (f jHandle i l) env
+  runExceptT $ runReaderT (f jHandle i >> getLatestJobStatus jHandle) env
 
 parseGargJob :: String -> Maybe GargJob
 parseGargJob s = case s of