(
message: ResponsesClientSocketMessage,
)
| 508 | } |
| 509 | |
| 510 | async handleResponsesClientSocketMessage( |
| 511 | message: ResponsesClientSocketMessage, |
| 512 | ): Promise<ServerServerSocketMessage[]> { |
| 513 | const { viewer } = this; |
| 514 | invariant(viewer, 'should be set'); |
| 515 | |
| 516 | const { clientResponses } = message.payload; |
| 517 | const { stateCheckStatus } = await processClientResponses( |
| 518 | viewer, |
| 519 | clientResponses, |
| 520 | ); |
| 521 | |
| 522 | const serverRequests = []; |
| 523 | if (stateCheckStatus && stateCheckStatus.status !== 'state_check') { |
| 524 | const { sessionUpdate, checkStateRequest } = await checkState( |
| 525 | viewer, |
| 526 | stateCheckStatus, |
| 527 | ); |
| 528 | if (sessionUpdate) { |
| 529 | await commitSessionUpdate(viewer, sessionUpdate); |
| 530 | this.setStateCheckConditions({ stateCheckOngoing: false }); |
| 531 | } |
| 532 | if (checkStateRequest) { |
| 533 | serverRequests.push(checkStateRequest); |
| 534 | } |
| 535 | } |
| 536 | |
| 537 | // We send a response message regardless of whether we have any requests, |
| 538 | // since we need to ack the client's responses |
| 539 | return [ |
| 540 | { |
| 541 | type: serverSocketMessageTypes.REQUESTS, |
| 542 | responseTo: message.id, |
| 543 | payload: { serverRequests }, |
| 544 | }, |
| 545 | ]; |
| 546 | } |
| 547 | |
| 548 | handlePingClientSocketMessage( |
| 549 | message: PingClientSocketMessage, |
no test coverage detected