Skip to content
Snippets Groups Projects
Commit 5d68ff05 authored by thijsheijden's avatar thijsheijden
Browse files

Added query status messages

parent bbb4f41f
No related branches found
No related tags found
No related merge requests found
...@@ -23,6 +23,8 @@ func (s *Service) HandleMessage(msg *broker.Message) { ...@@ -23,6 +23,8 @@ func (s *Service) HandleMessage(msg *broker.Message) {
return return
} }
s.sendStatus("Received", &sessionID)
// Unmarshall the incoming message into an IncomingJSONQuery object // Unmarshall the incoming message into an IncomingJSONQuery object
JSONQuery, err := query.UnmarshalJSON(&msg.Body) JSONQuery, err := query.UnmarshalJSON(&msg.Body)
if err != nil { if err != nil {
...@@ -46,6 +48,8 @@ func (s *Service) HandleMessage(msg *broker.Message) { ...@@ -46,6 +48,8 @@ func (s *Service) HandleMessage(msg *broker.Message) {
return return
} }
s.sendStatus("Translating", &sessionID)
// Convert the json byte msg to a query string // Convert the json byte msg to a query string
query, err := s.queryConverter.ConvertQuery(JSONQuery) query, err := s.queryConverter.ConvertQuery(JSONQuery)
if err != nil { if err != nil {
...@@ -75,6 +79,8 @@ func (s *Service) HandleMessage(msg *broker.Message) { ...@@ -75,6 +79,8 @@ func (s *Service) HandleMessage(msg *broker.Message) {
} }
s.producer.PublishMessage(&translationMsgBytes, &sessionID) // TODO: should this be a go routine? s.producer.PublishMessage(&translationMsgBytes, &sessionID) // TODO: should this be a go routine?
s.sendStatus("Getting database credentials", &sessionID)
// Fetch database credentials from the user service // Fetch database credentials from the user service
databaseInfo, err := s.databaseInfoService.GetDatabaseInfo(&clientID, &JSONQuery.DatabaseName) databaseInfo, err := s.databaseInfoService.GetDatabaseInfo(&clientID, &JSONQuery.DatabaseName)
if err != nil { if err != nil {
...@@ -87,6 +93,8 @@ func (s *Service) HandleMessage(msg *broker.Message) { ...@@ -87,6 +93,8 @@ func (s *Service) HandleMessage(msg *broker.Message) {
return return
} }
s.sendStatus("Processing on database", &sessionID)
// execute and retrieve result // execute and retrieve result
// convert result to general (node-link) format // convert result to general (node-link) format
result, err := s.requestSender.ExecuteQuery(*query, databaseInfo.Username, databaseInfo.Password, databaseInfo.URL, databaseInfo.Port, databaseInfo.InternalDatabaseName) result, err := s.requestSender.ExecuteQuery(*query, databaseInfo.Username, databaseInfo.Password, databaseInfo.URL, databaseInfo.Port, databaseInfo.InternalDatabaseName)
...@@ -100,6 +108,8 @@ func (s *Service) HandleMessage(msg *broker.Message) { ...@@ -100,6 +108,8 @@ func (s *Service) HandleMessage(msg *broker.Message) {
return return
} }
s.sendStatus("Done", &sessionID)
// Add type indicator to result from database // Add type indicator to result from database
// TODO: Change key 'values' to key 'value' // TODO: Change key 'values' to key 'value'
var res interface{} var res interface{}
...@@ -116,3 +126,18 @@ func (s *Service) HandleMessage(msg *broker.Message) { ...@@ -116,3 +126,18 @@ func (s *Service) HandleMessage(msg *broker.Message) {
s.producer.PublishMessage(&resultMsgBytes, &sessionID) s.producer.PublishMessage(&resultMsgBytes, &sessionID)
} }
func (s *Service) sendStatus(status string, sessionID *string) {
msg := entity.MessageStruct{
Type: "query_status_update",
Value: status,
}
msgBytes, err := json.Marshal(msg)
if err != nil {
errorhandler.FailWithError(err, "Marshalling status update message went wrong")
return
}
s.producer.PublishMessage(&msgBytes, sessionID)
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment