1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
package response
type bye struct {
msg string
}
func Bye() *bye {
return &bye{}
}
func (r *bye) WithMessage(msg string) *bye {
r.msg = msg
return r
}
func (r *bye) Send(s Session) error {
return s.WriteResponse(r.String())
}
func (r *bye) String() string {
parts := []string{"*", "BYE"}
if r.msg != "" {
parts = append(parts, r.msg)
}
return join(parts)
}
func (r *bye) WithMailboxDeleted() *bye {
r.msg = "Mailbox was deleted, have to disconnect."
return r
}
func (r *bye) WithInconsistentState() *bye {
r.msg = "IMAP session state is inconsistent, please re-login."
return r
}
|