summaryrefslogtreecommitdiff
path: root/http-client/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'http-client/main.go')
-rw-r--r--http-client/main.go47
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,