aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--go-src/dataValidations.go13
-rw-r--r--go-src/errorMessages.go4
-rw-r--r--go-src/windows.go8
3 files changed, 25 insertions, 0 deletions
diff --git a/go-src/dataValidations.go b/go-src/dataValidations.go
index 34c6f03..5c44e47 100644
--- a/go-src/dataValidations.go
+++ b/go-src/dataValidations.go
@@ -1,7 +1,10 @@
package ctfc
import (
+ "os"
"regexp"
+
+ "gitlab.com/Syndamia/ctfc/go-src/folderPaths"
)
var SpecialCharacters = []rune{'!', '@', '#', '$', '%', '^', '&', '*'}
@@ -72,3 +75,13 @@ func stringValidChatName(value string) bool {
func stringValidChatDesc(value string) bool {
return stringValidLength(0, 30, value)
}
+
+func usernameExists(username string) bool {
+ _, err := os.Stat(folderPaths.FileAtUsersFolder(username))
+ return err == nil
+}
+
+func chatNameExists(name string) bool {
+ _, err := os.Stat(folderPaths.FileAtChatsFolder(name))
+ return err == nil
+}
diff --git a/go-src/errorMessages.go b/go-src/errorMessages.go
index 0caf128..103bf41 100644
--- a/go-src/errorMessages.go
+++ b/go-src/errorMessages.go
@@ -9,3 +9,7 @@ const (
func invalidValueFor(typeName string) string {
return "Invalid value for " + typeName + "!"
}
+
+func valueAlreadyTaken(typeName string) string {
+ return typeName + " is already taken!"
+}
diff --git a/go-src/windows.go b/go-src/windows.go
index 183849e..3bc621c 100644
--- a/go-src/windows.go
+++ b/go-src/windows.go
@@ -54,6 +54,10 @@ func registerWindow(values ...string) {
if len(inputs) == 0 {
return
}
+ if usernameExists(inputs[0]) {
+ defer showError(valueAlreadyTaken("Username"), registerWindow, values...)
+ return
+ }
createUser(inputs)
logInUser(inputs[0], inputs[1])
@@ -92,6 +96,10 @@ func createChatWindow(values ...string) {
if len(inputs) == 0 {
return
}
+ if chatNameExists(inputs[0]) {
+ defer showError(valueAlreadyTaken("Chat name"), createChatWindow, values...)
+ return
+ }
createChat(inputs[0], inputs[1], loggedInUser.Username)
defer chatWindow(inputs[0])