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 56842f8dda4ad2048ed7f44e72014842f9f6382c Author: Aaron Radzinski <[email protected]> AuthorDate: Fri Oct 9 18:12:09 2020 -0700 WIP. --- .../nlpcraft/model/tools/cmdline/NCCli.scala | 61 ++++++++++++---------- openapi/nlpcraft_swagger.yml | 53 ++++++++++++------- 2 files changed, 68 insertions(+), 46 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 bfa5c0c..7e514c2 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 @@ -68,35 +68,40 @@ object NCCli extends App { //noinspection RegExpRedundantEscape private final val TAILER_PTRN = Pattern.compile("^.*NC[a-zA-Z0-9]+ started \\[[\\d]+ms\\]$") + case class RestCall( + path: String, + desc: String, + group: String + ) + // TODO: this needs to be loaded dynamically from OpenAPI spec. private final val REST_PATHS = Seq( - "clear/conversation" -> "Clears conversation STM", - "clear/dialog" -> "Clears dialog flow", - "model/sugsyn" -> "Runs model synonym suggestion tool", - "check" -> "Gets status and result of submitted requests", - "cancel" -> "Cancels a question", - "ask" -> "Asks a question", - "ask/sync" -> "Asks a question in synchronous mode", - "user/get" -> "Gets current user information", - "user/all" -> "Gets all users", - "user/update" -> "Updates regular user", - "user/delete" -> "Deletes user", - "user/admin" -> "Updates user admin permissions", - "user/passwd/reset" -> "Resets password for the user", - "user/add" -> "Adds new user", - "company/get" -> "Gets current user company information", - "company/add" -> "Adds new company", - "company/update" -> "Updates company data", - "company/delete" -> "Deletes company", - "company/token/reset" -> "Resets company probe auth token", - "feedback/add" -> "Adds feedback", - "feedback/delete" -> "Deletes feedback", - "feedback/all" -> "Gets all feedback", - "signin" -> "Signs in and obtains new access token", - "signout" -> "Signs out and releases access token", - "probe/all" -> "Gets all probes" + RestCall("clear/conversation", "Clears conversation STM", "Asking"), + RestCall("clear/dialog", "Clears dialog flow", "Asking"), + RestCall("model/sugsyn", "Runs model synonym suggestion tool", "Tools"), + RestCall("check", "Gets status and result of submitted requests", "Asking"), + RestCall("cancel", "Cancels a question", "Asking"), + RestCall("ask", "Asks a question", "Asking"), + RestCall("ask/sync", "Asks a question in synchronous mode", "Asking"), + RestCall("user/get", "Gets current user information", "User"), + RestCall("user/all", "Gets all users", "User"), + RestCall("user/update", "Updates regular user", "User"), + RestCall("user/delete", "Deletes user", "User"), + RestCall("user/admin", "Updates user admin permissions", "User"), + RestCall("user/passwd/reset", "Resets password for the user", "User"), + RestCall("user/add", "Adds new user", "User"), + RestCall("company/get", "Gets current user company information", "Company"), + RestCall("company/add", "Adds new company", "Company"), + RestCall("company/update", "Updates company data", "Company"), + RestCall("company/delete", "Deletes company", "Company"), + RestCall("company/token/reset", "Resets company probe auth token", "Company"), + RestCall("feedback/add", "Adds feedback", "Asking"), + RestCall("feedback/delete", "Deletes feedback", "Asking"), + RestCall("feedback/all", "Gets all feedback", "Asking"), + RestCall("signin", "Signs in and obtains new access token", "Authentication"), + RestCall("signout", "Signs out and releases access token", "Authentication"), + RestCall("probe/all", "Gets all probes", "Probe") ) - .sortBy(_._1) // Number of server services that need to be started + 1 progress start. // Used for progress bar functionality. @@ -1160,13 +1165,13 @@ object NCCli extends App { if (!repl) header() - CMDS.groupBy(_.group).foreach(entry ⇒ { + CMDS.groupBy(_.group).toSeq.sortBy(_._1).foreach(entry ⇒ { val grp = entry._1 val grpCmds = entry._2 val tbl = NCAsciiTable().margin(left = if (repl) 0 else 4) - grpCmds.foreach(cmd ⇒ tbl +/ ( + grpCmds.sortBy(_.name).foreach(cmd ⇒ tbl +/ ( "" → s"${g(cmd.name)}", "align:left, maxWidth:85" → cmd.synopsis )) diff --git a/openapi/nlpcraft_swagger.yml b/openapi/nlpcraft_swagger.yml index 32d0f8d..0a3b885 100644 --- a/openapi/nlpcraft_swagger.yml +++ b/openapi/nlpcraft_swagger.yml @@ -158,10 +158,27 @@ paths: description: Failed operation. schema: $ref: '#/definitions/Error' + /health: + get: + tags: + - Tools + summary: Health ping. + description: >- + Pings server for HTTP 200 code. + operationId: health + responses: + '200': + description: Successful operation. + schema: + $ref: '#/definitions/Ok' + '400': + description: Failed operation. + schema: + $ref: '#/definitions/Error' /model/sugsyn: post: tags: - - Model + - Tools summary: Runs model synonym suggestion tool. description: >- Runs model synonym suggestion tool that is based on BERT models and uses @NCIntentSample annotation. @@ -648,7 +665,7 @@ paths: /user/get: post: tags: - - Users + - User summary: Gets current user information. description: Gets current user information. operationId: getUser @@ -731,7 +748,7 @@ paths: /user/all: post: tags: - - Users + - User summary: Gets all users. description: Gets all users for the current user company. Administrative privileges required. operationId: getAllUsers @@ -756,7 +773,7 @@ paths: type: object required: - status - - users + - User properties: status: type: string @@ -805,7 +822,7 @@ paths: /user/update: post: tags: - - Users + - User summary: Updates regular user. description: >- Updates user with given ID or the current user with given parameters. @@ -862,7 +879,7 @@ paths: /user/delete: post: tags: - - Users + - User summary: Deletes user. description: >- Deletes user with given ID or the current user. @@ -909,7 +926,7 @@ paths: /user/admin: post: tags: - - Users + - User summary: Updates user admin permissions. description: >- Updates user's permissions with given ID or the current user. @@ -950,7 +967,7 @@ paths: /user/passwd/reset: post: tags: - - Users + - User summary: Resets password for the user. description: >- Resets the password for the user. Note that NLPCraft doesn't store password in reversible way @@ -993,7 +1010,7 @@ paths: /user/add: post: tags: - - Users + - User summary: Adds new user. description: Adds new user with given parameters to the company of the admin caller. Administrative privileges required. operationId: addUser @@ -1072,7 +1089,7 @@ paths: /company/get: post: tags: - - Companies + - Company summary: Gets current user company information. description: Gets current user company information. operationId: getCompany @@ -1137,7 +1154,7 @@ paths: /company/add: post: tags: - - Companies + - Company summary: Adds new company. description: >- Adds new company with given parameters. @@ -1238,7 +1255,7 @@ paths: /company/update: post: tags: - - Companies + - Company summary: Updates company data. description: >- Updates company data with given parameters. @@ -1299,7 +1316,7 @@ paths: /company/delete: post: tags: - - Companies + - Company summary: Deletes company. description: >- Deletes company. @@ -1331,7 +1348,7 @@ paths: /company/token/reset: post: tags: - - Companies + - Company summary: Resets company probe authentication token. description: >- Sets and returns new company probe authentication token. @@ -1375,7 +1392,7 @@ paths: /feedback/add: post: tags: - - Feedbacks + - Asking summary: Adds feedback. description: Adds feedback for processed user request. operationId: addFeedback @@ -1440,7 +1457,7 @@ paths: /feedback/delete: post: tags: - - Feedbacks + - Asking summary: Deletes feedback. description: >- Deletes feedback for given record ID. @@ -1477,7 +1494,7 @@ paths: /feedback/all: post: tags: - - Feedbacks + - Asking summary: Gets feedback. description: >- Gets all request feedback records. @@ -1657,7 +1674,7 @@ paths: /probe/all: post: tags: - - Data Probes + - Probe summary: Gets all probes. description: >- Gets metadata for all active (currently connected) probes. Administrative privileges required.
