diff options
| author | Andrew <saintruler@gmail.com> | 2021-04-28 21:07:44 +0400 |
|---|---|---|
| committer | Andrew <saintruler@gmail.com> | 2021-04-28 21:07:44 +0400 |
| commit | 8aeabf9a6387b8251747de6eaeb59a92c098d51d (patch) | |
| tree | 6e76c64e7069f3812fc62dc9cc58f585df02d064 /http-client/main.go | |
| parent | 4b2ecfc50e3315dcc27ec85c6b707a021515c5c6 (diff) | |
Added ability to enter server URL.
Diffstat (limited to 'http-client/main.go')
| -rw-r--r-- | http-client/main.go | 47 |
1 files changed, 43 insertions, 4 deletions
diff --git a/http-client/main.go b/http-client/main.go index 7d32e9b..0af8efa 100644 --- a/http-client/main.go +++ b/http-client/main.go @@ -12,9 +12,11 @@ import ( "fyne.io/fyne/v2/layout" "fyne.io/fyne/v2/widget" "image/color" + "strings" ) type UserData struct { + ServerUrl string Username string ServerKey []byte UserKey []byte @@ -36,7 +38,7 @@ func chatLayout(window fyne.Window, user UserData) { entry := widget.NewEntry() submit := widget.NewButton("Отправить", func() { - go sendMessage(user, entry.Text, user.ParsedUserKey) + go sendMessage(user, entry.Text) entry.SetText("") storage.RLock() @@ -62,6 +64,9 @@ func loginLayout(window fyne.Window, user UserData) { label := canvas.NewText("Chat", color.White) label.TextSize = 40 + urlLabel := widget.NewLabel("URL: ") + urlEntry := widget.NewEntry() + loginLabel := widget.NewLabel("Логин: ") loginEntry := widget.NewEntry() @@ -105,9 +110,21 @@ func loginLayout(window fyne.Window, user UserData) { dialog.ShowInformation("Ошибка", "Логин не может быть пустым", window) return } - user.Username = loginEntry.Text - _, err := tryAuth(user, user.ParsedUserKey) + + if len(urlEntry.Text) == 0 { + dialog.ShowInformation("Ошибка", "URL не может быть пустым", window) + return + } + user.ServerUrl = strings.TrimRight(urlEntry.Text, "/") + + err := pingServer(user) + if err != nil { + dialog.ShowInformation("Ошибка", "Нет связи с сервером", window) + return + } + + _, err = tryAuth(user) if err != nil { dialog.ShowInformation("Ошибка", fmt.Sprint(err), window) return @@ -122,6 +139,7 @@ func loginLayout(window fyne.Window, user UserData) { mainContainer := container.NewCenter(container.NewVBox( container.NewCenter(label), layout.NewSpacer(), + container.NewBorder(nil, nil, urlLabel, nil, urlEntry), container.NewBorder(nil, nil, loginLabel, nil, loginEntry), chooseKey, loginButton, @@ -138,6 +156,9 @@ func registerLayout(window fyne.Window, user UserData) { label := canvas.NewText("Chat", color.White) label.TextSize = 40 + urlLabel := widget.NewLabel("URL: ") + urlEntry := widget.NewEntry() + loginLabel := widget.NewLabel("Логин: ") loginEntry := widget.NewEntry() @@ -168,8 +189,25 @@ func registerLayout(window fyne.Window, user UserData) { return } + if len(loginEntry.Text) == 0 { + dialog.ShowInformation("Ошибка", "Логин не может быть пустым", window) + return + } user.Username = loginEntry.Text - _, err := register(user, string(user.ServerKey), user.ParsedUserKey) + + if len(urlEntry.Text) == 0 { + dialog.ShowInformation("Ошибка", "URL не может быть пустым", window) + return + } + user.ServerUrl = strings.TrimRight(urlEntry.Text, "/") + + err := pingServer(user) + if err != nil { + dialog.ShowInformation("Ошибка", "Нет связи с сервером", window) + return + } + + _, err = register(user, string(user.ServerKey)) if err != nil { dialog.ShowInformation("Ошибка", fmt.Sprint(err), window) return @@ -184,6 +222,7 @@ func registerLayout(window fyne.Window, user UserData) { window.SetContent(container.NewCenter(container.NewVBox( container.NewCenter(label), layout.NewSpacer(), + container.NewBorder(nil, nil, urlLabel, nil, urlEntry), container.NewBorder(nil, nil, loginLabel, nil, loginEntry), generateKeysBtn, registerButton, |