(event SessionEvent)
| 149 | } |
| 150 | |
| 151 | func (s *Session) updateOpenCanvasesFromEvent(event SessionEvent) { |
| 152 | switch data := event.Data.(type) { |
| 153 | case *SessionCanvasOpenedData: |
| 154 | if data.InstanceID == "" || data.CanvasID == "" || data.ExtensionID == "" { |
| 155 | fmt.Printf("failed to deserialize session.canvas.opened payload\n") |
| 156 | return |
| 157 | } |
| 158 | s.upsertOpenCanvas(rpc.OpenCanvasInstance{ |
| 159 | CanvasID: data.CanvasID, |
| 160 | ExtensionID: data.ExtensionID, |
| 161 | ExtensionName: data.ExtensionName, |
| 162 | Input: data.Input, |
| 163 | InstanceID: data.InstanceID, |
| 164 | Status: data.Status, |
| 165 | Title: data.Title, |
| 166 | URL: data.URL, |
| 167 | }) |
| 168 | case *SessionCanvasClosedData: |
| 169 | if data.InstanceID == "" { |
| 170 | fmt.Printf("failed to deserialize session.canvas.closed payload\n") |
| 171 | return |
| 172 | } |
| 173 | s.removeOpenCanvas(data.InstanceID) |
| 174 | } |
| 175 | } |
| 176 | |
| 177 | func (s *Session) registerCanvasHandler(handler CanvasHandler) { |
| 178 | s.canvasMu.Lock() |
no test coverage detected