Skip to content
This repository has been archived by the owner on Aug 30, 2022. It is now read-only.

New Conversation API #86

Closed
mrsimpson opened this issue Sep 18, 2017 · 3 comments
Closed

New Conversation API #86

mrsimpson opened this issue Sep 18, 2017 · 3 comments
Labels
Milestone

Comments

@mrsimpson
Copy link
Collaborator

mrsimpson commented Sep 18, 2017

Currently, there is an endpoint specific to Rocket.Chat - without any dedicated semantic.
Actually, rocket was provided in order to be ready for consumption from a Rocket-Chat-Webhook.
As we do have a custom enhancement in Rocket.Chat, this is not necessary anymore. => Conversations needs to support the client

@mrsimpson mrsimpson added this to the Delta-Sprint milestone Sep 18, 2017
@mrsimpson mrsimpson reopened this Sep 18, 2017
@mrsimpson
Copy link
Collaborator Author

@tkurz Rocket.Chat plugin needs to be adapted as well - not only the widget

ja-fra added a commit that referenced this issue Sep 21, 2017
ja-fra added a commit that referenced this issue Sep 22, 2017
@tkurz tkurz added the ready label Sep 25, 2017
ja-fra added a commit that referenced this issue Sep 26, 2017
- proxy settings
- retryExecution
- user-agent with correct version
ja-fra added a commit that referenced this issue Sep 27, 2017
westei added a commit that referenced this issue Oct 18, 2017
westei added a commit that referenced this issue Oct 20, 2017
* moved all processing functionality from the ConversationService to the AnalysisService
* Analysis are now performed by an ExecutorService
* Futures for currently processing Analysis are kept in a Map
* Recently run Analysis are stored in the in-memory cache
* Analysis processed for the owner of an Conversation are stored in the AnalysisRepository
* AnalysisService support sync retrieval (no processing) and async analyze methods. The async methods do perform an analysis if not present
westei added a commit that referenced this issue Oct 20, 2017
westei added a commit that referenced this issue Oct 20, 2017
westei added a commit that referenced this issue Oct 24, 2017
…ce implementation

* Tokens are now sorted based on their location, type and value to ensure persistent ordering over multiple analysis runs
* `Conversatiomn#updateMEssageField(..)` now returns a conversation as I need those anyway in the implementation of the Webservice
* Query execution (inline results) does now work with the new infrastructure.
* Implemented query execution for Analysis Results modified by the client.
* Added more Link header fields. The `rel=up` now always points to the URL of the conversation

__TODOs:__

* Callback support for Methods that return analysis results
* Storage of user supplied analysis results
@ja-fra ja-fra modified the milestones: v0.6.0, v0.7.0 Oct 24, 2017
@westei
Copy link
Member

westei commented Dec 4, 2017

Provide Swagger documentation for the new Conversation API (how? what?) with links to the full documentation

westei added a commit that referenced this issue Dec 6, 2017
* to get rid of the AsyncExectionService (as async is already supported by the AnalysisService)
* moved the callback functionality from the AsyncExecutionService to the CallbackService
* added support for repoirting Errors to the Callback Payload (incl. DataException support)
* 75% done in implementing the ConversationWebservice
westei added a commit that referenced this issue Dec 6, 2017
westei added a commit that referenced this issue Dec 13, 2017
…into the ConversationService. Changed UnitTests that used the InMemoryStoreService to use the Mongo DB persistence
westei added a commit that referenced this issue Dec 15, 2017
* Integration Tests for deleteConversation and update/delete conversation Fields
* implementation of the update/delete conversation fields esp. validation of the parsed fields
* cleaned up ConversationService and ConversationRepositoryImpl implementation (esp. event publishing and also code duplication)
westei added a commit that referenced this issue Dec 15, 2017
westei added a commit that referenced this issue Dec 18, 2017
* fixed Unit tests so that they work with the new Analysis requirement that Conversations MUST HAVE an id, owner and lastModified date
* fixed a potential security issue that resulted in Analysis Result to be executed with the conversation Owner even when the requester does not have access to this client
* work in progress: integration test for the conversation search service
westei added a commit that referenced this issue Dec 18, 2017
westei added a commit that referenced this issue Dec 21, 2017
westei added a commit that referenced this issue Dec 21, 2017
…lot of bugs while doing so

Fixed Issues:

* It was possible to create multiple configurations for a client
* ConfigurationService allowed for a configuration with the client NULL
* The QueryBuilderService used the owners configuration instead of the configuration of the parsed client
* The SolrSearchQuery was not deseralizeable from JSON. Because of that it was not possible to parse Analyses using Jackson
westei added a commit that referenced this issue Dec 27, 2017
While working on the API documentation (Swagger) I noticed several inconsistencies. Therefore the implementation (and Tests) where updated to avoid those

* the `analysis` parameter is now used to enable/disable inclusion of analysis results in the synchronous response. The default is now `false` for all services. If set to `true` the service can be used in fully synchronous mode. If `false` a call to `/conversation/{id}/analyse` can be used to request the analysis results.
* the `callback` parameter if present will now always trigger analysis results to be POST’ed to this URL as soon as available. In cases the original request where for Tokens or Templates the response will just send those. Otherwise the whole Analysis result will be sent to the callback.

Also NOTE that an async analysis is now triggered for every request the changes the conversation. Results are cached for subsequent requests to `/conversation/{id}/analyse`.

Bug Fixes:

* fixed several issues in the deserialisation support (Jackson). While this is not required by Smarti it might still be useful in cases where a Client side implementation would like to use the Model classes (e.g. when writing IntegrationTests). Also added some Tests for this functionality
* Implemented missing validation of message fields
@ruKurz ruKurz changed the title Get rid of /rocket-Endpoint New Conversation API Jan 8, 2018
westei added a commit that referenced this issue Jan 17, 2018
westei added a commit that referenced this issue Jan 18, 2018
… conversation API)

#182: swagger annotation updates mainly for the API model and API model properties
ja-fra added a commit that referenced this issue Jan 22, 2018
used to map existing conversations to channels (#86, #148)
@ghost ghost removed the in review label Feb 22, 2018
@mrsimpson
Copy link
Collaborator Author

nice job redesigning the API. Thanks, @ja-fra @westei @ruKurz

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

4 participants