Files
amsterdam/database/validate.go
T

43 lines
1.3 KiB
Go

/*
* Amsterdam Web Communities System
* Copyright (c) 2025 Erbosoft Metaverse Design Solutions, All Rights Reserved
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*
* SPDX-License-Identifier: MPL-2.0
*/
// The database package contains database management and storage logic.
package database
import "strings"
const AMS_ID_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_~*'$"
// AmIsValidAmsterdamID returns true if the given string is a valid Amsterdam ID.
func AmIsValidAmsterdamID(test string) bool {
if len(test) < 1 {
return false
}
for _, r := range test {
if !strings.ContainsRune(AMS_ID_CHARS, r) {
return false
}
}
return true
}
// AmIsValidAmsterdamIDChar returns true if the character is a valid character in an Amsterdam ID.
func AmIsValidAmsterdamIDChar(ch byte) bool {
return strings.ContainsRune(AMS_ID_CHARS, rune(ch))
}
// AmIsValidPostLinkChar returns true if the character is a valid character in a post link.
func AmIsValidPostLinkChar(ch byte) bool {
if strings.ContainsRune(AMS_ID_CHARS, rune(ch)) {
return true
}
return ch == '.' || ch == '!'
}