[cli] list routes sorted by path

parent 45371e41
......@@ -13,11 +13,13 @@ import CLI.Types
import Data.Aeson.Encode.Pretty
import Data.ByteString qualified as B
import Data.ByteString.Lazy qualified as BL
import Data.Text.IO qualified as T
import Gargantext.API.Routes.Named
import Gargantext.Prelude
import Options.Applicative
import Prelude
import Servant.API
import Servant.API.Routes
import Servant.API.Routes.Internal.Route (routePath)
import Servant.API.WebSocket qualified as WS (WebSocketPending)
import Servant.Auth qualified as Servant
......@@ -52,6 +54,10 @@ instance HasRoutes Raw where
routesCLI :: CLIRoutes -> IO ()
routesCLI = \case
CLIR_list
-> printRoutes @(NamedRoutes API)
-> do
let routes = getRoutes @(NamedRoutes API)
let cmpFunc r = renderPath (r ^. routePath)
let sortedRoutes = sortBy (\a b -> compare (cmpFunc a) (cmpFunc b)) routes
traverse_ (T.putStrLn . renderRoute) sortedRoutes
(CLIR_export filePath)
-> B.writeFile filePath . BL.toStrict $ encodePretty (getRoutes @(NamedRoutes API))
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