github.com/status-im/status-go@v1.1.0/_assets/generate_handlers/generate_handlers_template.txt (about)

     1  //nolint
     2  // Code generated by generate_handlers.go. DO NOT EDIT.
     3  // source: generate_handlers.go
     4  
     5  package protocol
     6  
     7  import (
     8          "errors"
     9  
    10  	"github.com/golang/protobuf/proto"
    11  	"go.uber.org/zap"
    12  
    13  	"github.com/status-im/status-go/protocol/common"
    14  	"github.com/status-im/status-go/protocol/protobuf"
    15  	"github.com/status-im/status-go/protocol/transport"
    16  	v1protocol "github.com/status-im/status-go/protocol/v1"
    17  )
    18  
    19  func (m *Messenger) dispatchToHandler(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter, fromArchive bool) error {
    20  	switch msg.ApplicationLayer.Type {
    21  	{{ range .}}
    22             case protobuf.ApplicationMetadataMessage_{{.EnumValue}}:
    23  		return m.{{.MethodName}}(messageState, protoBytes, msg, filter{{ if .FromArchiveArg }}, fromArchive{{ end }})
    24          {{ end }}
    25  	default:
    26  		m.logger.Info("protobuf type not found", zap.String("type", string(msg.ApplicationLayer.Type)))
    27                  return errors.New("protobuf type not found")
    28  	}
    29  	return nil
    30  }
    31  
    32  {{ range . }}
    33  func (m *Messenger) {{.MethodName}}(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter{{ if .FromArchiveArg }}, fromArchive bool{{ end }}) error {
    34  	m.logger.Info("handling {{ .ProtobufName}}")
    35  	{{ if .SyncMessage }}
    36  	if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
    37  		m.logger.Warn("not coming from us, ignoring")
    38  		return nil
    39  	}
    40  	{{ end }}
    41  
    42  	{{ if .ProcessRaw }}
    43  	return m.Handle{{.ProtobufName}}(messageState, protoBytes, msg)
    44  	{{ else }}
    45  	p := &protobuf.{{.ProtobufName}}{}
    46  	err := proto.Unmarshal(protoBytes, p)
    47  	if err != nil {
    48  		return err
    49  	}
    50  
    51  	m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)
    52  
    53  	return m.Handle{{.ProtobufName}}(messageState, p, msg{{ if .FromArchiveArg }}, fromArchive {{ end }})
    54  	{{ end }}
    55  }
    56  
    57  {{ end }}