Browse Source

refactor: improve plugin universal event parsing with optional status text (#37)

Yeuoly 5 months ago
parent
commit
0b41e141af

+ 1 - 0
internal/core/plugin_daemon/backwards_invocation/transaction/aws_event_handler.go

@@ -72,6 +72,7 @@ func (h *AWSTransactionHandler) Handle(
 
 	plugin_entities.ParsePluginUniversalEvent(
 		bytes,
+		"",
 		func(session_id string, data []byte) {
 			// parse the data
 			sessionMessage, err := parser.UnmarshalJsonBytes[plugin_entities.SessionMessage](data)

+ 1 - 0
internal/core/plugin_manager/debugging_runtime/run.go

@@ -65,6 +65,7 @@ func (r *RemotePluginRuntime) StartPlugin() error {
 	r.response.Async(func(data []byte) {
 		plugin_entities.ParsePluginUniversalEvent(
 			data,
+			"",
 			func(session_id string, data []byte) {
 				r.messageCallbacksLock.RLock()
 				listeners := r.messageCallbacks[session_id][:]

+ 1 - 0
internal/core/plugin_manager/local_runtime/stdio_handle.go

@@ -92,6 +92,7 @@ func (s *stdioHolder) StartStdout(notify_heartbeat func()) {
 
 		plugin_entities.ParsePluginUniversalEvent(
 			data,
+			"",
 			func(session_id string, data []byte) {
 				for _, listener := range listeners {
 					listener(s.id, data)

+ 1 - 0
internal/core/plugin_manager/serverless_runtime/io.go

@@ -102,6 +102,7 @@ func (r *AWSPluginRuntime) Write(sessionId string, data []byte) {
 
 			plugin_entities.ParsePluginUniversalEvent(
 				bytes,
+				response.Status,
 				func(session_id string, data []byte) {
 					sessionMessage, err := parser.UnmarshalJsonBytes[plugin_entities.SessionMessage](data)
 					if err != nil {

+ 11 - 10
pkg/entities/plugin_entities/event.go

@@ -18,18 +18,19 @@ type PluginUniversalEvent struct {
 // error_handler will be called when data is not standard or itself it's an error message
 func ParsePluginUniversalEvent(
 	data []byte,
-	session_handler func(sessionId string, data []byte),
-	heartbeat_handler func(),
-	error_handler func(err string),
-	info_handler func(message string),
+	statusText string,
+	sessionHandler func(sessionId string, data []byte),
+	heartbeatHandler func(),
+	errorHandler func(err string),
+	infoHandler func(message string),
 ) {
 	// handle event
 	event, err := parser.UnmarshalJsonBytes[PluginUniversalEvent](data)
 	if err != nil {
 		if len(data) > 1024 {
-			error_handler(err.Error() + " original response: " + string(data[:1024]) + "...")
+			errorHandler(err.Error() + " status: " + statusText + " original response: " + string(data[:1024]) + "...")
 		} else {
-			error_handler(err.Error() + " original response: " + string(data))
+			errorHandler(err.Error() + " status: " + statusText + " original response: " + string(data))
 		}
 		return
 	}
@@ -47,14 +48,14 @@ func ParsePluginUniversalEvent(
 				return
 			}
 
-			info_handler(logEvent.Message)
+			infoHandler(logEvent.Message)
 		}
 	case PLUGIN_EVENT_SESSION:
-		session_handler(sessionId, event.Data)
+		sessionHandler(sessionId, event.Data)
 	case PLUGIN_EVENT_ERROR:
-		error_handler(string(event.Data))
+		errorHandler(string(event.Data))
 	case PLUGIN_EVENT_HEARTBEAT:
-		heartbeat_handler()
+		heartbeatHandler()
 	}
 }