You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
968 B
37 lines
968 B
package auth |
|
|
|
import ( |
|
"github.com/go-faster/errors" |
|
|
|
"github.com/gotd/td/tg" |
|
) |
|
|
|
// SignUpRequired means that log in failed because corresponding account |
|
// does not exist, so sign up is required. |
|
type SignUpRequired struct { |
|
TermsOfService tg.HelpTermsOfService |
|
} |
|
|
|
// Is returns true if err is SignUpRequired. |
|
func (s *SignUpRequired) Is(err error) bool { |
|
_, ok := err.(*SignUpRequired) |
|
return ok |
|
} |
|
|
|
func (s *SignUpRequired) Error() string { |
|
return "account with provided number does not exist (sign up required)" |
|
} |
|
|
|
// checkResult checks that `a` is *tg.AuthAuthorization and returns authorization result or error. |
|
func checkResult(a tg.AuthAuthorizationClass) (*tg.AuthAuthorization, error) { |
|
switch a := a.(type) { |
|
case *tg.AuthAuthorization: |
|
return a, nil // ok |
|
case *tg.AuthAuthorizationSignUpRequired: |
|
return nil, &SignUpRequired{ |
|
TermsOfService: a.TermsOfService, |
|
} |
|
default: |
|
return nil, errors.Errorf("got unexpected response %T", a) |
|
} |
|
}
|
|
|