48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
package interact
|
|
|
|
import (
|
|
"time"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
type BaseSession struct {
|
|
OriginState State `json:"originState,omitempty"`
|
|
CurrentState State `json:"currentState,omitempty"`
|
|
Authorized bool `json:"authorized,omitempty"`
|
|
StartedTime time.Time `json:"startedTime,omitempty"`
|
|
|
|
// authorizing -- the user started authorizing himself/herself, do not ignore the message
|
|
authorizing bool
|
|
}
|
|
|
|
func (s *BaseSession) SetOriginState(state State) {
|
|
s.OriginState = state
|
|
}
|
|
|
|
func (s *BaseSession) GetOriginState() State {
|
|
return s.OriginState
|
|
}
|
|
|
|
func (s *BaseSession) SetState(state State) {
|
|
log.Infof("[interact] transiting state from %s -> %s", s.CurrentState, state)
|
|
s.CurrentState = state
|
|
}
|
|
|
|
func (s *BaseSession) GetState() State {
|
|
return s.CurrentState
|
|
}
|
|
|
|
func (s *BaseSession) SetAuthorized() {
|
|
s.Authorized = true
|
|
s.authorizing = false
|
|
}
|
|
|
|
func (s *BaseSession) IsAuthorized() bool {
|
|
return s.Authorized
|
|
}
|
|
|
|
func (s *BaseSession) SetAuthorizing(b bool) {
|
|
s.authorizing = b
|
|
}
|