openreplay/backend/pkg/messages/trigger.go
Alexander 6b5d9d3799
feat(backend): added new trigger which sink should send to storage after session end received (#539)
Co-authored-by: Alexander Zavorotynskiy <alexander@openreplay.com>
2022-06-15 11:45:52 +02:00

35 lines
665 B
Go

package messages
import (
"fmt"
"io"
)
type SessionFinished struct {
message
Timestamp uint64
}
func (msg *SessionFinished) Encode() []byte {
buf := make([]byte, 11)
buf[0] = 127
p := 1
p = WriteUint(msg.Timestamp, buf, p)
return buf[:p]
}
func (msg *SessionFinished) TypeID() int {
return 127
}
func DecodeExtraMessage(code string, reader io.Reader) (Message, error) {
var err error
if code != "127" {
return nil, fmt.Errorf("unknown message code: %s", code)
}
trigger := &SessionFinished{}
if trigger.Timestamp, err = ReadUint(reader); err != nil {
return nil, fmt.Errorf("can't read message timestamp: %s", err)
}
return trigger, nil
}