in src/main/java/org/apache/nlpcraft/client/NCClient.java [153:361]
long addFeedback(String srvReqId, double score, String comment, Long usrId, String usrExtId)
throws NCClientException, IOException;
/**
* Deletes feedback record.
*
* @param id Optional ID of the feedback record to delete. if {@code} - all feedback
* records for the current user will be deleted.
* @throws NCClientException Thrown in case of client-specific errors.
* @throws IOException Thrown in case of generic I/O errors.
*/
void deleteFeedback(Long id) throws NCClientException, IOException;
/**
* Gets all feedback records for given request ID and user. If request ID is not provided all feedback records
* for the specified user will be returned.
* <p>
* <b>User IDs</b><br>
* This method allows multiple ways of specifying the ID of the user. If neither <code>usrId</code>
* or <code>usrExtId</code> are provided (both are <code>null</code>) then the currently signed-in user ID
* of this client instance will be used by default. If both user IDs are provided they must identify the same
* user in NLPCraft. If only external "on-behalf-of" <code>usrExtId</code> parameter is provided and such user
* doesn't yet exist in NLPCraft - it will be automatically created. Note that only admin users can specify
* user ID other than their own (as either <code>usrId</code> or <code>usrExtId</code>).
*
* @param srvReqId Optional request ID.
* @param usrId Optional user ID.
* @param usrExtId Optional external "on-behalf-of" user ID.
* @return List of feedback records.
* @throws NCClientException Thrown in case of client-specific errors.
* @throws IOException Thrown in case of generic I/O errors.
*/
List<NCFeedback> getAllFeedback(String srvReqId, Long usrId, String usrExtId) throws NCClientException, IOException;
/**
* Adds new user to the company of the currently signed-in user. Current signed-in user must have
* administrative privileges.
* <p>
* <b>User IDs</b><br>
* This method accepts optional external "on-behalf-of" user ID. If this ID is provided than this method
* will update the existing user record located by that ID instead of creating a new user record.
*
* @param email New user email.
* @param passwd New user password. Note that NLPCraft doesn't store passwords and therefore cannot
* retrieve them later.
* @param firstName New user first name.
* @param lastName New user last name.
* @param avatarUrl Optional new user avatar URL. Can be {@code null}.
* @param isAdmin Whether the new user will have administrative privileges.
* @param properties Map of additional user-defined user properties.
* @param extId Optional external "on-behalf-of" user ID. Can be {@code null}.
* @return ID of the newly created user.
* @throws NCClientException Thrown in case of client-specific errors.
* @throws IOException Thrown in case of generic I/O errors.
*/
long addUser(
String email,
String passwd,
String firstName,
String lastName,
String avatarUrl,
boolean isAdmin,
Map<String, Object> properties,
String extId
) throws NCClientException, IOException;
/**
* Updates given user. Current signed-in user must have administrative privileges.
*
* @param id User ID.
* @param firstName Mandatory user first name.
* @param lastName Mandatory user last name.
* @param avatarUrl Optional user avatar URL. Can be {@code null}.
* @param properties Optional user properties. Can be {@code null} or empty.
* @throws NCClientException Thrown in case of client-specific errors.
* @throws IOException Thrown in case of generic I/O errors.
*/
void updateUser(
long id,
String firstName,
String lastName,
String avatarUrl,
Map<String, Object> properties
) throws NCClientException, IOException;
/**
* Resets password for the given user. Note that NLPCraft doesn't store clear text passwords and therefore
* passwords cannot be retrieved - they can only be reset. Current signed-in user must have
* administrative privileges.
*
* @param id ID of the user for which to reset the password.
* @param newPasswd New password.
* @throws NCClientException Thrown in case of client-specific errors.
* @throws IOException Thrown in case of generic I/O errors.
*/
void resetUserPassword(Long id, String newPasswd) throws NCClientException, IOException;
/**
* Grants or denies given user administrative privileges. Current signed-in user must have
* administrative privileges.
*
* @param id ID of the user for which to change administrative privileges.
* @param isAdmin Administrative privileges flag.
* @throws NCClientException Thrown in case of client-specific errors.
* @throws IOException Thrown in case of generic I/O errors.
*/
void updateUserAdmin(Long id, boolean isAdmin) throws NCClientException, IOException;
/**
* Deletes given user. Note that you cannot delete the last admin in the company.
* Current signed-in user must have administrative privileges.
* <p>
* <b>User IDs</b><br>
* This method allows multiple ways of specifying the ID of the user. If neither <code>usrId</code>
* or <code>usrExtId</code> are provided (both are <code>null</code>) then the currently signed-in user ID
* of this client instance will be used by default. If both user IDs are provided they must identify the same
* user in NLPCraft. If only external "on-behalf-of" <code>usrExtId</code> parameter is provided and such user
* doesn't yet exist in NLPCraft - it will be automatically created. Note that only admin
* users can specify user ID other than their own (as either <code>usrId</code> or <code>usrExtId</code>).
*
* @param usrId Optional user ID.
* @param usrExtId Optional external "on-behalf-of" user ID.
* @throws NCClientException Thrown in case of client-specific errors.
* @throws IOException Thrown in case of generic I/O errors.
*/
void deleteUser(Long usrId, String usrExtId) throws NCClientException, IOException;
/**
* Gets user record. Note that only users with administrative privileges can get user records for
* other users in the company.
* <p>
* <b>User IDs</b><br>
* This method allows multiple ways of specifying the ID of the user. If neither <code>usrId</code>
* or <code>usrExtId</code> are provided (both are <code>null</code>) then the currently signed-in user ID
* of this client instance will be used by default. If both user IDs are provided they must identify the same
* user in NLPCraft. If only external "on-behalf-of" <code>usrExtId</code> parameter is provided and such user
* doesn't yet exist in NLPCraft - it will be automatically created. Note that only admin
* users can specify user ID other than their own (as either <code>usrId</code> or <code>usrExtId</code>).
*
* @param usrId Optional user ID.
* @param usrExtId Optional external "on-behalf-of" user ID.
* @return User record.
* @throws NCClientException Thrown in case of client-specific errors.
* @throws IOException Thrown in case of generic I/O errors.
*/
NCUser getUser(Long usrId, String usrExtId) throws NCClientException, IOException;
/**
* Gets all user records for the current signed-in user company. Current signed-in user must
* have administrative privileges.
*
* @return List of user records.
* @throws NCClientException Thrown in case of client-specific errors.
* @throws IOException Thrown in case of generic I/O errors.
*/
List<NCUser> getAllUsers() throws NCClientException, IOException;
/**
* Gets all active (connected to the REST server) probes for the current signed-in user company.
* Current signed-in user must have administrative privileges.
*
* @return List of active probes.
* @throws NCClientException Thrown in case of client-specific errors.
* @throws IOException Thrown in case of generic I/O errors.
*/
List<NCProbe> getProbes() throws NCClientException, IOException;
/**
* Submits request for asynchronous processing. This method will return immediately and you have to
* use {@link #check(Set, Integer, Long, String)} method to check its result.
* <p>
* <b>User IDs</b><br>
* This method allows multiple ways of specifying the ID of the user. If neither <code>usrId</code>
* or <code>usrExtId</code> are provided (both are <code>null</code>) then the currently signed-in user ID
* of this client instance will be used by default. If both user IDs are provided they must identify the same
* user in NLPCraft. If only external "on-behalf-of" <code>usrExtId</code> parameter is provided and such user
* doesn't yet exist in NLPCraft - it will be automatically created. Note that only admin
* users can specify user ID other than their own (as either <code>usrId</code> or <code>usrExtId</code>).
*
* @param mdlId ID of the model to submit the request to.
* @param txt Text to process.
* @param data Optional JSON data payload. Can be {@code null} or empty.
* @param enableLog Whether to enable processing log collection.
* @param usrId Optional user ID.
* @param usrExtId Optional external "on-behalf-of" user ID.
* @return Server request ID of the submitted request.
* @throws NCClientException Thrown in case of client-specific errors.
* @throws IOException Thrown in case of generic I/O errors.
* @see #askSync(String, String, Map, boolean, Long, String)
* @see #askSync(String, String)
* @see #ask(String, String)
*/
String ask(String mdlId, String txt, Map<String, Object> data, boolean enableLog, Long usrId, String usrExtId) throws NCClientException, IOException;
/**
* Submits request for asynchronous processing. This is a shortcut call that is equivalent to:
* <pre class="brush: java">
* ask(mdlId, txt, null, false, null, null);
* </pre>
*
* @param mdlId ID of the model to submit the request to.
* @param txt Text to process.
* @return Server request ID of the submitted request.
* @throws NCClientException Thrown in case of client-specific errors.
* @throws IOException Thrown in case of generic I/O errors.
*/
default String ask(String mdlId, String txt) throws NCClientException, IOException {
return ask(mdlId, txt, null, false, null, null);
}