// LoginGuestCard 游客登录
type LoginGuestCard struct {
Base *card.Card
URL string
delay time.Duration
md *prefab.BotDat
}
// NewGuestLoginCard 生成账号创建预制
func NewGuestLoginCard(md *prefab.BotDat) *LoginGuestCard {
return &LoginGuestCard{
Base: card.NewCardWithConfig(),
URL: prefab.Urls[prefab.LoginGuest],
delay: time.Millisecond,
md: md,
}
}
func (card *LoginGuestCard) GetName() string { return prefab.LoginGuest }
func (card *LoginGuestCard) GetURL() string { return card.URL }
func (card *LoginGuestCard) GetClient() *http.Client { return nil }
func (card *LoginGuestCard) GetHeader() map[string]string { return card.Base.Header }
func (card *LoginGuestCard) GetMethod() string { return card.Base.Method }
func (card *LoginGuestCard) SetDelay(delay time.Duration) { card.delay = delay }
func (card *LoginGuestCard) GetDelay() time.Duration { return card.delay }
func (card *LoginGuestCard) Enter() []byte {
b := []byte{}
card.Base.AddInjectAssert("token assert", func() error {
return assert.NotEqual(card.md.Token, "")
})
return b
}
// Leave 反序列化返回消息
func (card *LoginGuestCard) Leave(res *http.Response) error {
var err error
var body []byte
cres := LoginGuestRes{}
body, _ = ioutil.ReadAll(res.Body)
err = json.Unmarshal(body, &cres)
if err != nil {
err = fmt.Errorf("%v json.Unmarshal err %v", card.GetURL(), err.Error())
goto EXT
}
card.md.Token = cres.Token
err = card.Base.Assert()
EXT:
return err
}