RegisterClientSessionAPIHandlers registers handlers for server-to-client session API calls.
(client *jsonrpc2.Client, getHandlers func(sessionID string) *ClientSessionAPIHandlers)
| 18404 | // RegisterClientSessionAPIHandlers registers handlers for server-to-client session API |
| 18405 | // calls. |
| 18406 | func RegisterClientSessionAPIHandlers(client *jsonrpc2.Client, getHandlers func(sessionID string) *ClientSessionAPIHandlers) { |
| 18407 | client.SetRequestHandler("canvas.close", func(params json.RawMessage) (json.RawMessage, *jsonrpc2.Error) { |
| 18408 | var request CanvasProviderCloseRequest |
| 18409 | if err := json.Unmarshal(params, &request); err != nil { |
| 18410 | return nil, &jsonrpc2.Error{Code: -32602, Message: fmt.Sprintf("Invalid params: %v", err)} |
| 18411 | } |
| 18412 | handlers := getHandlers(request.SessionID) |
| 18413 | if handlers == nil || handlers.Canvas == nil { |
| 18414 | return nil, &jsonrpc2.Error{Code: -32603, Message: fmt.Sprintf("No canvas handler registered for session: %s", request.SessionID)} |
| 18415 | } |
| 18416 | result, err := handlers.Canvas.Close(&request) |
| 18417 | if err != nil { |
| 18418 | return nil, clientSessionHandlerError(err) |
| 18419 | } |
| 18420 | raw, err := json.Marshal(result) |
| 18421 | if err != nil { |
| 18422 | return nil, &jsonrpc2.Error{Code: -32603, Message: fmt.Sprintf("Failed to marshal response: %v", err)} |
| 18423 | } |
| 18424 | return raw, nil |
| 18425 | }) |
| 18426 | client.SetRequestHandler("canvas.action.invoke", func(params json.RawMessage) (json.RawMessage, *jsonrpc2.Error) { |
| 18427 | var request CanvasProviderInvokeActionRequest |
| 18428 | if err := json.Unmarshal(params, &request); err != nil { |
| 18429 | return nil, &jsonrpc2.Error{Code: -32602, Message: fmt.Sprintf("Invalid params: %v", err)} |
| 18430 | } |
| 18431 | handlers := getHandlers(request.SessionID) |
| 18432 | if handlers == nil || handlers.Canvas == nil { |
| 18433 | return nil, &jsonrpc2.Error{Code: -32603, Message: fmt.Sprintf("No canvas handler registered for session: %s", request.SessionID)} |
| 18434 | } |
| 18435 | result, err := handlers.Canvas.Invoke(&request) |
| 18436 | if err != nil { |
| 18437 | return nil, clientSessionHandlerError(err) |
| 18438 | } |
| 18439 | raw, err := json.Marshal(result) |
| 18440 | if err != nil { |
| 18441 | return nil, &jsonrpc2.Error{Code: -32603, Message: fmt.Sprintf("Failed to marshal response: %v", err)} |
| 18442 | } |
| 18443 | return raw, nil |
| 18444 | }) |
| 18445 | client.SetRequestHandler("canvas.open", func(params json.RawMessage) (json.RawMessage, *jsonrpc2.Error) { |
| 18446 | var request CanvasProviderOpenRequest |
| 18447 | if err := json.Unmarshal(params, &request); err != nil { |
| 18448 | return nil, &jsonrpc2.Error{Code: -32602, Message: fmt.Sprintf("Invalid params: %v", err)} |
| 18449 | } |
| 18450 | handlers := getHandlers(request.SessionID) |
| 18451 | if handlers == nil || handlers.Canvas == nil { |
| 18452 | return nil, &jsonrpc2.Error{Code: -32603, Message: fmt.Sprintf("No canvas handler registered for session: %s", request.SessionID)} |
| 18453 | } |
| 18454 | result, err := handlers.Canvas.Open(&request) |
| 18455 | if err != nil { |
| 18456 | return nil, clientSessionHandlerError(err) |
| 18457 | } |
| 18458 | raw, err := json.Marshal(result) |
| 18459 | if err != nil { |
| 18460 | return nil, &jsonrpc2.Error{Code: -32603, Message: fmt.Sprintf("Failed to marshal response: %v", err)} |
| 18461 | } |
| 18462 | return raw, nil |
| 18463 | }) |
nothing calls this directly
no test coverage detected
searching dependent graphs…