Refactor ID generarion

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
Bryan Frimin
2025-05-01 07:59:30 -07:00
parent 27a1269ba6
commit 448728c1f8
11 changed files with 34 additions and 105 deletions

View File

@@ -87,11 +87,7 @@ func (s *ConnectorService) CreateOrUpdate(
return nil, fmt.Errorf("connection configuration is required")
}
connectorID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.ConnectorEntityType)
if err != nil {
return nil, fmt.Errorf("cannot create connector global id: %w", err)
}
connectorID := gid.New(s.svc.scope.GetTenantID(), coredata.ConnectorEntityType)
now := time.Now()
connector := &coredata.Connector{
@@ -104,7 +100,7 @@ func (s *ConnectorService) CreateOrUpdate(
UpdatedAt: now,
}
err = s.svc.pg.WithConn(
err := s.svc.pg.WithConn(
ctx,
func(conn pg.Conn) error {
if err := connector.Upsert(ctx, conn, s.svc.scope, s.svc.encryptionKey); err != nil {

View File

@@ -85,11 +85,7 @@ func (s EvidenceService) Request(
ctx context.Context,
req RequestEvidenceRequest,
) (*coredata.Evidence, error) {
evidenceID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.EvidenceEntityType)
if err != nil {
return nil, fmt.Errorf("cannot create evidence global id: %w", err)
}
evidenceID := gid.New(s.svc.scope.GetTenantID(), coredata.EvidenceEntityType)
now := time.Now()
evidence := &coredata.Evidence{
@@ -103,7 +99,7 @@ func (s EvidenceService) Request(
UpdatedAt: now,
}
err = s.svc.pg.WithConn(
err := s.svc.pg.WithConn(
ctx,
func(conn pg.Conn) error {
return evidence.Insert(ctx, conn, s.svc.scope)
@@ -192,10 +188,7 @@ func (s EvidenceService) Create(
req CreateEvidenceRequest,
) (*coredata.Evidence, error) {
now := time.Now()
evidenceID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.EvidenceEntityType)
if err != nil {
return nil, fmt.Errorf("cannot create evidence global id: %w", err)
}
evidenceID := gid.New(s.svc.scope.GetTenantID(), coredata.EvidenceEntityType)
referenceID, err := uuid.NewV4()
if err != nil {

View File

@@ -61,10 +61,7 @@ func (s FrameworkService) Create(
req CreateFrameworkRequest,
) (*coredata.Framework, error) {
now := time.Now()
frameworkID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.FrameworkEntityType)
if err != nil {
return nil, fmt.Errorf("cannot create global id: %w", err)
}
frameworkID := gid.New(s.svc.scope.GetTenantID(), coredata.FrameworkEntityType)
framework := &coredata.Framework{
ID: frameworkID,
@@ -76,7 +73,7 @@ func (s FrameworkService) Create(
UpdatedAt: now,
}
err = s.svc.pg.WithConn(
err := s.svc.pg.WithConn(
ctx,
func(conn pg.Conn) error {
return framework.Insert(ctx, conn, s.svc.scope)
@@ -187,10 +184,7 @@ func (s FrameworkService) Import(
organizationID gid.GID,
req ImportFrameworkRequest,
) (*coredata.Framework, error) {
frameworkID, err := gid.NewGID(organizationID.TenantID(), coredata.FrameworkEntityType)
if err != nil {
return nil, fmt.Errorf("cannot create global id: %w", err)
}
frameworkID := gid.New(organizationID.TenantID(), coredata.FrameworkEntityType)
now := time.Now()
framework := &coredata.Framework{
@@ -204,10 +198,7 @@ func (s FrameworkService) Import(
importedControls := coredata.Controls{}
for _, control := range req.Framework.Controls {
controlID, err := gid.NewGID(organizationID.TenantID(), coredata.ControlEntityType)
if err != nil {
return nil, fmt.Errorf("cannot create global id: %w", err)
}
controlID := gid.New(organizationID.TenantID(), coredata.ControlEntityType)
now := time.Now()
control := &coredata.Control{
@@ -224,12 +215,10 @@ func (s FrameworkService) Import(
importedControls = append(importedControls, control)
}
err = s.svc.pg.WithTx(
err := s.svc.pg.WithTx(
ctx,
func(tx pg.Conn) error {
err := framework.Insert(ctx, tx, s.svc.scope)
if err != nil {
if err := framework.Insert(ctx, tx, s.svc.scope); err != nil {
return fmt.Errorf("cannot insert framework: %w", err)
}

View File

@@ -144,10 +144,7 @@ func (s MeasureService) Import(
for i := range req.Measures {
now := time.Now()
measureID, err := gid.NewGID(organizationID.TenantID(), coredata.MeasureEntityType)
if err != nil {
return fmt.Errorf("cannot create global id: %w", err)
}
measureID := gid.New(organizationID.TenantID(), coredata.MeasureEntityType)
measure := &coredata.Measure{
ID: measureID,
@@ -168,10 +165,7 @@ func (s MeasureService) Import(
}
for j := range req.Measures[i].Tasks {
taskID, err := gid.NewGID(organizationID.TenantID(), coredata.TaskEntityType)
if err != nil {
return fmt.Errorf("cannot create global id: %w", err)
}
taskID := gid.New(organizationID.TenantID(), coredata.TaskEntityType)
task := &coredata.Task{
ID: taskID,
@@ -189,10 +183,7 @@ func (s MeasureService) Import(
}
for k := range req.Measures[i].Tasks[j].RequestedEvidences {
evidenceID, err := gid.NewGID(organizationID.TenantID(), coredata.EvidenceEntityType)
if err != nil {
return fmt.Errorf("cannot create global id: %w", err)
}
evidenceID := gid.New(organizationID.TenantID(), coredata.EvidenceEntityType)
evidence := &coredata.Evidence{
State: coredata.EvidenceStateRequested,
@@ -332,10 +323,7 @@ func (s MeasureService) Create(
req CreateMeasureRequest,
) (*coredata.Measure, error) {
now := time.Now()
measureID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.MeasureEntityType)
if err != nil {
return nil, fmt.Errorf("cannot create measure global id: %w", err)
}
measureID := gid.New(s.svc.scope.GetTenantID(), coredata.MeasureEntityType)
referenceID, err := uuid.NewV4()
if err != nil {

View File

@@ -50,10 +50,7 @@ func (s OrganizationService) Create(
req CreateOrganizationRequest,
) (*coredata.Organization, error) {
now := time.Now()
organizationID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.OrganizationEntityType)
if err != nil {
return nil, fmt.Errorf("cannot create organization global id: %w", err)
}
organizationID := gid.New(s.svc.scope.GetTenantID(), coredata.OrganizationEntityType)
organization := &coredata.Organization{
ID: organizationID,
@@ -63,7 +60,7 @@ func (s OrganizationService) Create(
UpdatedAt: now,
}
err = s.svc.pg.WithConn(
err := s.svc.pg.WithConn(
ctx,
func(tx pg.Conn) error {
if err := organization.Insert(ctx, tx); err != nil {

View File

@@ -165,10 +165,7 @@ func (s PeopleService) Create(
req CreatePeopleRequest,
) (*coredata.People, error) {
now := time.Now()
peopleID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.PeopleEntityType)
if err != nil {
return nil, fmt.Errorf("cannot create people global id: %w", err)
}
peopleID := gid.New(s.svc.scope.GetTenantID(), coredata.PeopleEntityType)
organization := &coredata.Organization{}
people := &coredata.People{
@@ -183,7 +180,7 @@ func (s PeopleService) Create(
UpdatedAt: now,
}
err = s.svc.pg.WithTx(
err := s.svc.pg.WithTx(
ctx,
func(conn pg.Conn) error {
if err := organization.LoadByID(ctx, conn, s.svc.scope, req.OrganizationID); err != nil {

View File

@@ -124,15 +124,8 @@ func (s *PolicyService) Create(
req CreatePolicyRequest,
) (*coredata.Policy, *coredata.PolicyVersion, error) {
now := time.Now()
policyID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.PolicyEntityType)
if err != nil {
return nil, nil, fmt.Errorf("cannot create policy global id: %w", err)
}
policyVersionID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.PolicyVersionEntityType)
if err != nil {
return nil, nil, fmt.Errorf("cannot create policy version global id: %w", err)
}
policyID := gid.New(s.svc.scope.GetTenantID(), coredata.PolicyEntityType)
policyVersionID := gid.New(s.svc.scope.GetTenantID(), coredata.PolicyVersionEntityType)
policy := &coredata.Policy{
ID: policyID,
@@ -153,7 +146,7 @@ func (s *PolicyService) Create(
CreatedAt: now,
UpdatedAt: now,
}
err = s.svc.pg.WithTx(
err := s.svc.pg.WithTx(
ctx,
func(conn pg.Conn) error {
if err := policy.Insert(ctx, conn, s.svc.scope); err != nil {
@@ -235,10 +228,7 @@ func (s *PolicyService) SendSigningNotifications(
for _, people := range peoples {
now := time.Now()
emailID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.EmailEntityType)
if err != nil {
return fmt.Errorf("cannot create email global id: %w", err)
}
emailID := gid.New(s.svc.scope.GetTenantID(), coredata.EmailEntityType)
token, err := statelesstoken.NewToken(
s.svc.tokenSecret,
@@ -398,10 +388,7 @@ func (s *PolicyService) RequestSignature(
ctx context.Context,
req RequestSignatureRequest,
) (*coredata.PolicyVersionSignature, error) {
policyVersionSignatureID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.PolicyVersionSignatureEntityType)
if err != nil {
return nil, fmt.Errorf("cannot create policy version signature global id: %w", err)
}
policyVersionSignatureID := gid.New(s.svc.scope.GetTenantID(), coredata.PolicyVersionSignatureEntityType)
policyVersion, err := s.GetVersion(ctx, req.PolicyVersionID)
if err != nil {
@@ -469,16 +456,13 @@ func (s *PolicyService) CreateDraft(
policyID gid.GID,
createdBy gid.GID,
) (*coredata.PolicyVersion, error) {
draftVersionID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.PolicyVersionEntityType)
if err != nil {
return nil, fmt.Errorf("cannot create policy version global id: %w", err)
}
draftVersionID := gid.New(s.svc.scope.GetTenantID(), coredata.PolicyVersionEntityType)
latestVersion := &coredata.PolicyVersion{}
draftVersion := &coredata.PolicyVersion{}
now := time.Now()
err = s.svc.pg.WithTx(
err := s.svc.pg.WithTx(
ctx,
func(conn pg.Conn) error {
if err := latestVersion.LoadLatestVersion(ctx, conn, s.svc.scope, policyID); err != nil {

View File

@@ -165,10 +165,7 @@ func (s RiskService) Create(
req CreateRiskRequest,
) (*coredata.Risk, error) {
now := time.Now()
riskID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.RiskEntityType)
if err != nil {
return nil, fmt.Errorf("cannot create global id: %w", err)
}
riskID := gid.New(s.svc.scope.GetTenantID(), coredata.RiskEntityType)
risk := &coredata.Risk{
ID: riskID,
@@ -198,7 +195,7 @@ func (s RiskService) Create(
risk.ResidualImpact = *req.ResidualImpact
}
err = s.svc.pg.WithConn(
err := s.svc.pg.WithConn(
ctx,
func(conn pg.Conn) error {
return risk.Insert(ctx, conn, s.svc.scope)

View File

@@ -53,10 +53,7 @@ func (s TaskService) Create(
req CreateTaskRequest,
) (*coredata.Task, error) {
now := time.Now()
taskID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.TaskEntityType)
if err != nil {
return nil, fmt.Errorf("cannot generate id: %w", err)
}
taskID := gid.New(s.svc.scope.GetTenantID(), coredata.TaskEntityType)
referenceID, err := uuid.NewV4()
if err != nil {

View File

@@ -98,10 +98,7 @@ func (s VendorComplianceReportService) Upload(
now := time.Now()
vendorComplianceReportID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.VendorComplianceReportEntityType)
if err != nil {
return nil, fmt.Errorf("cannot generate vendor compliance report ID: %w", err)
}
vendorComplianceReportID := gid.New(s.svc.scope.GetTenantID(), coredata.VendorComplianceReportEntityType)
vendorComplianceReport := &coredata.VendorComplianceReport{
ID: vendorComplianceReportID,

View File

@@ -267,10 +267,7 @@ func (s VendorService) Create(
req CreateVendorRequest,
) (*coredata.Vendor, error) {
now := time.Now()
vendorID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.VendorEntityType)
if err != nil {
return nil, fmt.Errorf("cannot create vendor global id: %w", err)
}
vendorID := gid.New(s.svc.scope.GetTenantID(), coredata.VendorEntityType)
organization := &coredata.Organization{}
vendor := &coredata.Vendor{
@@ -301,7 +298,7 @@ func (s VendorService) Create(
vendor.Category = "Other"
}
err = s.svc.pg.WithTx(
err := s.svc.pg.WithTx(
ctx,
func(conn pg.Conn) error {
if err := organization.LoadByID(ctx, conn, s.svc.scope, req.OrganizationID); err != nil {
@@ -348,10 +345,7 @@ func (s VendorService) CreateRiskAssessment(
ctx context.Context,
req CreateVendorRiskAssessmentRequest,
) (*coredata.VendorRiskAssessment, error) {
vendorRiskAssessmentID, err := gid.NewGID(s.svc.scope.GetTenantID(), coredata.VendorRiskAssessmentEntityType)
if err != nil {
return nil, fmt.Errorf("cannot create vendor risk assessment global id: %w", err)
}
vendorRiskAssessmentID := gid.New(s.svc.scope.GetTenantID(), coredata.VendorRiskAssessmentEntityType)
now := time.Now()
@@ -372,7 +366,7 @@ func (s VendorService) CreateRiskAssessment(
return nil, fmt.Errorf("expiresAt %v must be in the future", req.ExpiresAt)
}
err = s.svc.pg.WithTx(
err := s.svc.pg.WithTx(
ctx,
func(tx pg.Conn) error {
vendor := coredata.Vendor{ID: req.VendorID}