Add better messages for expected google login errors
This commit is contained in:
parent
dce41f68bc
commit
847b9a3a90
2 changed files with 24 additions and 5 deletions
19
commands.go
19
commands.go
|
@ -19,6 +19,7 @@ package main
|
|||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
|
@ -29,6 +30,7 @@ import (
|
|||
"maunium.net/go/mautrix/event"
|
||||
"maunium.net/go/mautrix/id"
|
||||
|
||||
"go.mau.fi/mautrix-gmessages/libgm"
|
||||
"go.mau.fi/mautrix-gmessages/libgm/gmproto"
|
||||
)
|
||||
|
||||
|
@ -156,6 +158,13 @@ func fnLoginGoogle(ce *WrappedCommandEvent) {
|
|||
ce.Reply("Send your Google cookies here, formatted as a key-value JSON object (see <https://docs.mau.fi/bridges/go/gmessages/authentication.html> for details)")
|
||||
}
|
||||
|
||||
const (
|
||||
pairingErrMsgNoDevices = "No devices found. Make sure you've enabled account pairing in the Google Messages app on your phone."
|
||||
pairingErrMsgIncorrectEmoji = "Incorrect emoji chosen on phone, please try again"
|
||||
pairingErrMsgCancelled = "Pairing cancelled on phone"
|
||||
pairingErrMsgTimeout = "Pairing timed out, please try again"
|
||||
)
|
||||
|
||||
func fnLoginGoogleCookies(ce *WrappedCommandEvent) {
|
||||
ce.User.CommandState = nil
|
||||
if ce.User.Session != nil {
|
||||
|
@ -183,7 +192,17 @@ func fnLoginGoogleCookies(ce *WrappedCommandEvent) {
|
|||
ce.Reply(emoji)
|
||||
})
|
||||
if err != nil {
|
||||
if errors.Is(err, libgm.ErrNoDevicesFound) {
|
||||
ce.Reply(pairingErrMsgNoDevices)
|
||||
} else if errors.Is(err, libgm.ErrIncorrectEmoji) {
|
||||
ce.Reply(pairingErrMsgIncorrectEmoji)
|
||||
} else if errors.Is(err, libgm.ErrPairingCancelled) {
|
||||
ce.Reply(pairingErrMsgCancelled)
|
||||
} else if errors.Is(err, libgm.ErrPairingTimeout) {
|
||||
ce.Reply(pairingErrMsgTimeout)
|
||||
} else {
|
||||
ce.Reply("Login failed: %v", err)
|
||||
}
|
||||
} else {
|
||||
ce.Reply("Login successful")
|
||||
}
|
||||
|
|
|
@ -353,7 +353,7 @@ func (prov *ProvisioningAPI) GoogleLoginStart(w http.ResponseWriter, r *http.Req
|
|||
switch {
|
||||
case errors.Is(err, libgm.ErrNoDevicesFound):
|
||||
jsonResponse(w, http.StatusBadRequest, Error{
|
||||
Error: err.Error(),
|
||||
Error: pairingErrMsgNoDevices,
|
||||
ErrCode: "no-devices-found",
|
||||
})
|
||||
default:
|
||||
|
@ -384,17 +384,17 @@ func (prov *ProvisioningAPI) GoogleLoginWait(w http.ResponseWriter, r *http.Requ
|
|||
})
|
||||
case errors.Is(err, libgm.ErrIncorrectEmoji):
|
||||
jsonResponse(w, http.StatusBadRequest, Error{
|
||||
Error: err.Error(),
|
||||
Error: pairingErrMsgIncorrectEmoji,
|
||||
ErrCode: "incorrect-emoji",
|
||||
})
|
||||
case errors.Is(err, libgm.ErrPairingCancelled):
|
||||
jsonResponse(w, http.StatusBadRequest, Error{
|
||||
Error: err.Error(),
|
||||
Error: pairingErrMsgCancelled,
|
||||
ErrCode: "pairing-cancelled",
|
||||
})
|
||||
case errors.Is(err, libgm.ErrPairingTimeout):
|
||||
jsonResponse(w, http.StatusBadRequest, Error{
|
||||
Error: err.Error(),
|
||||
Error: pairingErrMsgTimeout,
|
||||
ErrCode: "timeout",
|
||||
})
|
||||
case errors.Is(err, context.Canceled):
|
||||
|
|
Loading…
Reference in a new issue