| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | 
							- package protocol
 
- import (
 
- 	"errors"
 
- 	"github.com/golang/protobuf/proto"
 
- 	"github.com/golang/protobuf/ptypes"
 
- )
 
- var (
 
- 	ErrUserMissing    = errors.New("User is not specified.")
 
- 	ErrAccountMissing = errors.New("Account is not specified.")
 
- 	ErrNonMessageType = errors.New("Not a protobuf message.")
 
- )
 
- func (this *User) GetTypedAccount(account AsAccount) (Account, error) {
 
- 	anyAccount := this.GetAccount()
 
- 	if anyAccount == nil {
 
- 		return nil, ErrAccountMissing
 
- 	}
 
- 	protoAccount, ok := account.(proto.Message)
 
- 	if !ok {
 
- 		return nil, ErrNonMessageType
 
- 	}
 
- 	err := ptypes.UnmarshalAny(anyAccount, protoAccount)
 
- 	if err != nil {
 
- 		return nil, err
 
- 	}
 
- 	return account.AsAccount()
 
- }
 
- func (this *User) GetSettings() UserSettings {
 
- 	settings := UserSettings{
 
- 		PayloadReadTimeout: 120,
 
- 	}
 
- 	if this.Level > 0 {
 
- 		settings.PayloadReadTimeout = 0
 
- 	}
 
- 	return settings
 
- }
 
- type UserSettings struct {
 
- 	PayloadReadTimeout uint32
 
- }
 
 
  |