removing invalid UUIDs
This commit is contained in:
		
							parent
							
								
									e2ad1d9a50
								
							
						
					
					
						commit
						e8c2fbb768
					
				| 
						 | 
				
			
			@ -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
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue