Use base64 encoding everywhere

Signed-off-by: gearnode <bryan@frimin.fr>
This commit is contained in:
gearnode
2025-01-25 21:59:14 +01:00
parent 529d6e6459
commit b91c0c6fc8
3 changed files with 38 additions and 10 deletions

View File

@@ -50,11 +50,11 @@ func NewGID(et uint32) (GID, error) {
binary.BigEndian.PutUint32(id[10:14], et)
return Nil, nil
return GID(id), nil
}
func (gid GID) Value() (driver.Value, error) {
return gid[:], nil
return gid.String(), nil
}
func (gid GID) EntityType() uint32 {
@@ -64,19 +64,15 @@ func (gid GID) EntityType() uint32 {
func (gid *GID) Scan(value interface{}) error {
switch v := value.(type) {
case string:
id, err := uuid.Parse(v)
if err != nil {
return err
}
*gid = GID(id)
case []byte:
id, err := uuid.ParseBytes(v)
enc := base64.RawURLEncoding
id, err := enc.DecodeString(v)
if err != nil {
return err
}
*gid = GID(id)
default:
return fmt.Errorf("invalid type for GID: expected string or []byte, got %T", value)
return fmt.Errorf("invalid type for GID: expected string, got %T", value)
}
return nil
}

View File

@@ -0,0 +1 @@
ALTER TABLE organizations DROP COLUMN description;

View File

@@ -0,0 +1,31 @@
ALTER TABLE frameworks DROP CONSTRAINT IF EXISTS frameworks_organization_id_fkey;
ALTER TABLE controls DROP CONSTRAINT IF EXISTS controls_framework_id_fkey;
ALTER TABLE tasks DROP CONSTRAINT IF EXISTS tasks_control_id_fkey;
ALTER TABLE organizations DROP CONSTRAINT organizations_pkey;
ALTER TABLE organizations ALTER COLUMN id TYPE TEXT USING id::text;
ALTER TABLE organizations ADD PRIMARY KEY (id);
ALTER TABLE frameworks DROP CONSTRAINT frameworks_pkey;
ALTER TABLE frameworks ALTER COLUMN id TYPE TEXT USING id::text;
ALTER TABLE frameworks ADD PRIMARY KEY (id);
ALTER TABLE frameworks ALTER COLUMN organization_id TYPE TEXT USING organization_id::text;
ALTER TABLE controls DROP CONSTRAINT controls_pkey;
ALTER TABLE controls ALTER COLUMN id TYPE TEXT USING id::text;
ALTER TABLE controls ADD PRIMARY KEY (id);
ALTER TABLE controls ALTER COLUMN framework_id TYPE TEXT USING framework_id::text;
ALTER TABLE tasks DROP CONSTRAINT tasks_pkey;
ALTER TABLE tasks ALTER COLUMN id TYPE TEXT USING id::text;
ALTER TABLE tasks ADD PRIMARY KEY (id);
ALTER TABLE tasks ALTER COLUMN control_id TYPE TEXT USING control_id::text;
ALTER TABLE frameworks ADD CONSTRAINT frameworks_organization_id_fkey
FOREIGN KEY (organization_id) REFERENCES organizations(id);
ALTER TABLE controls ADD CONSTRAINT controls_framework_id_fkey
FOREIGN KEY (framework_id) REFERENCES frameworks(id);
ALTER TABLE tasks ADD CONSTRAINT tasks_control_id_fkey
FOREIGN KEY (control_id) REFERENCES controls(id);