From e8c2fbb7683ac086460fbd96517c7b7751d2fa61 Mon Sep 17 00:00:00 2001 From: sbouaram Date: Mon, 29 May 2023 11:31:50 +0200 Subject: [PATCH] removing invalid UUIDs --- storage/postgresql.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/storage/postgresql.go b/storage/postgresql.go index 5800607..da36dd7 100644 --- a/storage/postgresql.go +++ b/storage/postgresql.go @@ -7,6 +7,7 @@ import ( "database/sql" "encoding/json" "fmt" + "github.com/google/uuid" "github.com/lib/pq" _ "github.com/lib/pq" "github.com/spf13/viper" @@ -31,6 +32,15 @@ func NewPostgresqlStorage(cfg *viper.Viper) (PostgresqlStorage, error) { pgtables_group_members = cfg.GetString("storage.db.psql.tables.group_members") pgtables_groups = cfg.GetString("storage.db.psql.tables.groups") ) + fmt.Println("host", host) + fmt.Println("port", port) + fmt.Println("user", user) + fmt.Println("pwd", password) + fmt.Println("dbname", dbname) + fmt.Println("sslmode", sslmode) + fmt.Println("pg_schena", pg_schema) + fmt.Println("group|_members", pgtables_group_members) + fmt.Println("groups", pgtables_groups) portInt, _ := strconv.Atoi(port) psqlconn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=%s", host, portInt, user, password, dbname, sslmode) @@ -137,6 +147,11 @@ func (psql PostgresqlStorage) GetGroups(namespaces []string) ([]Group, error) { } func (psql PostgresqlStorage) GetGroupsByIds(ids []string) ([]Group, error) { + for i := len(ids) - 1; i >= 0; i-- { + if !isValidUUID(ids[i]) { + ids = append(ids[:i], ids[i+1:]...) + } + } groups := make([]Group, 0) query := fmt.Sprintf(`SELECT id, namespace, members, data FROM %s WHERE id = ANY($1)`, psql.Tables["groups"]) rows, err := psql.DbConnection.Query(query, pq.Array(ids)) @@ -258,6 +273,11 @@ func (psql PostgresqlStorage) GetGroupsMember(namespaces []string) ([]GroupMembe } func (psql PostgresqlStorage) GetGroupsMemberByIds(ids []string) ([]GroupMember, error) { + for i := len(ids) - 1; i >= 0; i-- { + if !isValidUUID(ids[i]) { + ids = append(ids[:i], ids[i+1:]...) + } + } groupMembers := make([]GroupMember, 0) req := fmt.Sprintf(`SELECT id, member_id, group_id, data FROM %s WHERE group_id = ANY($1)`, psql.Tables["group_members"]) @@ -361,3 +381,8 @@ func (psql PostgresqlStorage) Migrate() error { return nil } + +func isValidUUID(s string) bool { + _, err := uuid.Parse(s) + return err == nil +}