in Server/go/apptoken/service.go [75:108]
func (service *Service) Pack() ([]byte, error) {
buf := new(bytes.Buffer)
// channelId
channelId := []byte(service.ChannelId)
if err := binary.Write(buf, binary.BigEndian, int32(len(channelId))); err != nil {
return nil, err
}
if _, err := buf.Write(channelId); err != nil {
return nil, err
}
// userId
userId := []byte(service.UserId)
if err := binary.Write(buf, binary.BigEndian, int32(len(userId))); err != nil {
return nil, err
}
if _, err := buf.Write(userId); err != nil {
return nil, err
}
// hasPrivilege
hasPrivilege := service.Privilege != nil
if err := binary.Write(buf, binary.BigEndian, hasPrivilege); err != nil {
return nil, err
}
// privilege
if hasPrivilege {
if err := binary.Write(buf, binary.BigEndian, *service.Privilege); err != nil {
return nil, err
}
}
return buf.Bytes(), nil
}