This is an automated email from the ASF dual-hosted git repository.

aradzinski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git

commit 1ea1969274968ab56659e131c4db7da4e3b346c7
Author: Aaron Radzinski <[email protected]>
AuthorDate: Sat Oct 10 00:24:43 2020 -0700

    Update NCCli.scala
---
 .../nlpcraft/model/tools/cmdline/NCCli.scala       | 75 +++++++++++++++++++---
 1 file changed, 66 insertions(+), 9 deletions(-)

diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
index d4f4eda..2af3e69 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
@@ -207,6 +207,7 @@ object NCCli extends App {
         names: Seq[String],
         value: Option[String] = None,
         optional: Boolean = false, // Mandatory by default.
+        synthetic: Boolean = false,
         desc: String
     )
 
@@ -222,11 +223,12 @@ object NCCli extends App {
         Command(
             name = "rest",
             group = "REST Commands",
-            synopsis = s"Issues REST call to local REST server.",
+            synopsis = s"REST call in a convenient way for command line mode.",
             desc = Some(
-                s"All NLPCraft REST API uses HTTP POST and JSON parameters 
('Content-Type: application/json' header). " +
-                s"To issue the REST call you need to supply path and 
parameters. In REPL mode, hit ${rv(" Tab ")} to see auto-suggestion and " +
-                s"auto-completion candidates for commonly used paths and JSON 
payload components."
+                s"When using this command you supply all call parameters as a 
single ${y("'--json'")} parameter with a JSON string. " +
+                s"In REPL mode, you can hit ${rv(" Tab ")} to see 
auto-suggestion and auto-completion candidates for " +
+                s"commonly used paths. However, ${y("'call'")} command 
provides more convenient way to issue REST " +
+                s"calls when in REPL mode."
             ),
             body = cmdRest,
             params = Seq(
@@ -263,6 +265,57 @@ object NCCli extends App {
             )
         ),
         Command(
+            name = "call",
+            group = "REST Commands",
+            synopsis = s"REST call in a convenient way for REPL mode.",
+            desc = Some(
+                s"When using this command you supply all call parameters 
separately through their own parameters named " +
+                s"after their counterparts in REST specification. " +
+                s"In REPL mode, hit ${rv(" Tab ")} to see auto-suggestion and 
" +
+                s"auto-completion candidates for commonly used paths and call 
parameters."
+            ),
+            body = cmdRest,
+            params = Seq(
+                Parameter(
+                    id = "path",
+                    names = Seq("--path", "-p"),
+                    value = Some("path"),
+                    desc =
+                        s"REST path, e.g. ${y("'signin'")} or 
${y("'ask/sync'")}. " +
+                        s"Note that you don't need supply '/' at the 
beginning. " +
+                        s"See more details at 
https://nlpcraft.apache.org/using-rest.html " +
+                        s"In REPL mode, hit ${rv(" Tab ")} to see 
auto-suggestion for possible REST paths."
+                ),
+                Parameter(
+                    id = "xxx",
+                    names = Seq("-xxx"),
+                    value = Some("value"),
+                    optional = true,
+                    synthetic = true,
+                    desc =
+                        s"${y("'xxx'")} name corresponds to the REST call 
parameter that can be found at https://nlpcraft.apache.org/using-rest.html " +
+                        s"The value of this parameter should be a valid JSON 
value using valid JSON syntax. You can have " +
+                        s"as many ${y("'-xxx=value'")} parameters as requires 
by the ${y("'--path'")} parameter. " +
+                        s"In REPL mode, hit ${rv(" Tab ")} to see 
auto-suggestion for possible parameters and their values."
+                )
+            ),
+            examples = Seq(
+                Example(
+                    usage = Seq(
+                        s"$PROMPT $SCRIPT_NAME call ",
+                        "  -p=signin",
+                        "  [email protected]",
+                        "  -passwd=admin"
+                    ),
+                    desc =
+                        s"Issues ${y("'signin'")} REST call with given JSON 
payload provided as a set of parameters. " +
+                        s"Note that ${y("'-email'")} and ${y("'-passwd'")} 
parameters correspond to the REST call " +
+                        s"specification for  ${y("'/signin'")} path."
+
+                )
+            )
+        ),
+        Command(
             name = "tail-server",
             group = "Server Commands",
             synopsis = s"Shows last N lines from the local REST server log.",
@@ -1211,7 +1264,7 @@ object NCCli extends App {
             for (arg ← args) {
                 val cmdName = arg.value.get
 
-                CMDS.find(_.name.contains(cmdName)) match {
+                CMDS.find(_.name == cmdName) match {
                     case Some(c) ⇒
                         if (!seen.contains(c.name)) {
                             tbl +/ (
@@ -1583,7 +1636,11 @@ object NCCli extends App {
             if (rawLine == null || QUIT_CMD.name == rawLine.trim)
                 exit = true
             else {
-                val line = rawLine.trim().replace("\n", "").replace("\t", "")
+                val line = rawLine
+                    .trim()
+                    .replace("\n", "")
+                    .replace("\t", " ")
+                    .trim()
 
                 if (line.nonEmpty)
                     try {
@@ -1855,11 +1912,11 @@ object NCCli extends App {
      * @param repl
      */
     private def processAnsi(args: Seq[String], repl: Boolean): Unit = {
-        args.find(arg ⇒ NO_ANSI_CMD.name.contains(arg)) match {
+        args.find(_ == NO_ANSI_CMD.name) match {
             case Some(_) ⇒ NO_ANSI_CMD.body(NO_ANSI_CMD, Seq.empty, repl)
             case None ⇒ ()
         }
-        args.find(arg ⇒ ANSI_CMD.name.contains(arg)) match {
+        args.find(_ == ANSI_CMD.name) match {
             case Some(_) ⇒ ANSI_CMD.body(ANSI_CMD, Seq.empty, repl)
             case None ⇒ ()
         }
@@ -1876,7 +1933,7 @@ object NCCli extends App {
         processAnsi(args, repl)
 
         // Remove 'no-ansi' and 'ansi' commands from the argument list, if any.
-        val xargs = args.filter(arg ⇒ !NO_ANSI_CMD.name.contains(arg) && 
!ANSI_CMD.name.contains(arg))
+        val xargs = args.filter(arg ⇒ arg != NO_ANSI_CMD.name && arg != 
ANSI_CMD.name)
 
         if (xargs.nonEmpty) {
             val cmd = xargs.head

Reply via email to