in Server/go/apptoken/service.go [110:150]
func UnpackService(buf io.Reader) (*Service, error) {
service := Service{}
// channelId
var channelIdLength int32
if err := binary.Read(buf, binary.BigEndian, &channelIdLength); err != nil {
return nil, err
}
channelId := make([]byte, channelIdLength)
if _, err := io.ReadFull(buf, channelId); err != nil {
return nil, err
}
service.ChannelId = string(channelId)
// userId
var userIdLength int32
if err := binary.Read(buf, binary.BigEndian, &userIdLength); err != nil {
return nil, err
}
userId := make([]byte, userIdLength)
if _, err := io.ReadFull(buf, userId); err != nil {
return nil, err
}
service.UserId = string(userId)
// privilege
var hasPrivilege bool
if err := binary.Read(buf, binary.BigEndian, &hasPrivilege); err != nil {
return nil, err
}
if hasPrivilege {
var privilege int32
if err := binary.Read(buf, binary.BigEndian, &privilege); err != nil {
return nil, err
}
service.Privilege = &privilege
}
return &service, nil
}