msg.go
# msg.go
package types
import (
sdk “github.com/cosmos/cosmos-sdk/types”
)
const (
TypeMsgRegisterPatient = “register_patient”
)
// MsgRegisterPatient definisce un messaggio per registrare un nuovo paziente
type MsgRegisterPatient struct {
Creator sdk.AccAddress json:"creator" yaml:"creator"
Name string json:"name" yaml:"name"
Email string json:"email" yaml:"email"
}
// NewMsgRegisterPatient crea una nuova istanza di MsgRegisterPatient
func NewMsgRegisterPatient(creator sdk.AccAddress, name string, email string) *MsgRegisterPatient {
return &MsgRegisterPatient{
Creator: creator,
Name: name,
Email: email,
}
}
// Route implementa l’interfaccia sdk.Msg
func (msg *MsgRegisterPatient) Route() string {
return RouterKey
}
// Type implementa l’interfaccia sdk.Msg
func (msg *MsgRegisterPatient) Type() string {
return TypeMsgRegisterPatient
}
// GetSigners implementa l’interfaccia sdk.Msg
func (msg *MsgRegisterPatient) GetSigners() []sdk.AccAddress {
return []sdk.AccAddress{msg.Creator}
}
// GetSignBytes implementa l’interfaccia sdk.Msg
func (msg *MsgRegisterPatient) GetSignBytes() []byte {
bz := ModuleCdc.MustMarshalJSON(msg)
return sdk.MustSortJSON(bz)
}
// ValidateBasic implementa l’interfaccia sdk.Msg
func (msg *MsgRegisterPatient) ValidateBasic() error {
if msg.Creator.Empty() {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, “creator can’t be empty”)
}
if len(msg.Name) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, “name can’t be empty”)
}
if len(msg.Email) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, “email can’t be empty”)
}
return nil
}