field := transaction.GetField(reqField.ID)
// Validate that required field is present
- if field.ID == nil {
+ if field.ID == [2]byte{0, 0} {
cc.logger.Error(
"Missing required field",
"RequestType", handler.Name, "FieldID", reqField.ID,
transactions, err := handler.Handler(cc, &transaction)
if err != nil {
- return err
+ return fmt.Errorf("error handling transaction: %w", err)
}
for _, t := range transactions {
cc.Server.outbox <- t
// NewReply returns a reply Transaction with fields for the ClientConn
func (cc *ClientConn) NewReply(t *Transaction, fields ...Field) Transaction {
- reply := Transaction{
- Flags: 0x00,
+ return Transaction{
IsReply: 0x01,
Type: []byte{0x00, 0x00},
ID: t.ID,
ErrorCode: []byte{0, 0, 0, 0},
Fields: fields,
}
-
- return reply
}
// NewErrReply returns an error reply Transaction with errMsg
func (cc *ClientConn) NewErrReply(t *Transaction, errMsg string) Transaction {
return Transaction{
clientID: cc.ID,
- Flags: 0x00,
IsReply: 0x01,
Type: []byte{0, 0},
ID: t.ID,