diff options
| author | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-07-09 14:15:45 +0300 |
|---|---|---|
| committer | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-07-09 14:15:45 +0300 |
| commit | 4575fc829356ba4cd538094b987d69b0233648f7 (patch) | |
| tree | b3d2039d26a65426769722bc7a2b4a8b3bc57632 | |
| parent | ea02b0a4b04ccd3c692a15f4db813c6d4f915feb (diff) | |
| download | ctfc-4575fc829356ba4cd538094b987d69b0233648f7.tar ctfc-4575fc829356ba4cd538094b987d69b0233648f7.tar.gz ctfc-4575fc829356ba4cd538094b987d69b0233648f7.zip | |
Implemented validation of existance of username and chat name on creation
| -rw-r--r-- | go-src/dataValidations.go | 13 | ||||
| -rw-r--r-- | go-src/errorMessages.go | 4 | ||||
| -rw-r--r-- | go-src/windows.go | 8 |
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]) |
