package party import ( "fmt" "github.com/user/evote/pkg/transport" ) // Phase message handlers. These are filled in incrementally (setup, then // voting, then tally). Until a phase is implemented its handler rejects unknown // message types cleanly rather than panicking — the transport boundary must // never crash on an unexpected message. func (p *SetupComponent) handleSetupMsg(env *transport.Envelope) (*transport.Envelope, error) { return nil, fmt.Errorf("%s: unhandled message type %q", p.id.Name, env.Type) } func (p *ControlComponent) handleCCMsg(env *transport.Envelope) (*transport.Envelope, error) { switch env.Type { case MsgGenCCKeys: return p.handleGenCCKeys(env) case MsgLongCodeShareReq: return p.handleLongCodeShare(env) case MsgVerifyBallot: return p.handleVerifyBallot(env) case MsgShuffle: return p.handleShuffle(env) case MsgRCExpReq: return p.handleRCExp(env) case MsgRCDecReq: return p.handleRCDec(env) default: return nil, fmt.Errorf("%s: unhandled message type %q", p.id.Name, env.Type) } } func (p *ElectoralBoard) handleEBMsg(env *transport.Envelope) (*transport.Envelope, error) { switch env.Type { case MsgGenEBKey: return p.handleGenEBKey(env) case MsgFinalMix: return p.handleFinalMix(env) default: return nil, fmt.Errorf("%s: unhandled message type %q", p.id.Name, env.Type) } } func (p *VotingServer) handleServerMsg(env *transport.Envelope) (*transport.Envelope, error) { switch env.Type { case MsgMappingTable: return p.handleMappingTable(env) case MsgCastBallot: return p.handleCastBallot(env) case MsgStartTally: return p.handleStartTally(env) default: return nil, fmt.Errorf("%s: unhandled message type %q", p.id.Name, env.Type) } }