// Copyright (c) 2025 Nikolai Papin // // This file is part of Easywish // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See // the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . package validation import ( "regexp" "github.com/go-playground/validator/v10" ) type CustomValidatorHandler struct { Function func(fl validator.FieldLevel) bool FieldName string } func GetCustomHandlers() []CustomValidatorHandler { handlers := []CustomValidatorHandler{ { FieldName: "username", Function: func(fl validator.FieldLevel) bool { username := fl.Field().String() return regexp.MustCompile(`^[a-zA-Z0-9_]{3,20}$`).MatchString(username) }}, { FieldName: "name", Function: func(fl validator.FieldLevel) bool { username := fl.Field().String() return regexp.MustCompile(`^[.]{1,75}$`).MatchString(username) }}, } return handlers }