Example #1
0
func handleOnlineStatus(d *Server, ctx context.Context, cmd *wire.Command) (*wire.Response, error) {
	qry := cmd.GetOnlineStatusCommand().Query
	switch qry {
	case wire.OnlineQuery_IS_ONLINE:
		return &wire.Response{
			OnlineStatusResp: &wire.Response_OnlineStatusResp{
				IsOnline: d.IsOnline(),
			},
		}, nil
	case wire.OnlineQuery_GO_ONLINE:
		return nil, d.Connect()
	case wire.OnlineQuery_GO_OFFLINE:
		return nil, d.Disconnect()
	}

	return nil, fmt.Errorf("handleOnlineStatus: Bad query received: %v", qry)
}