Fix optional empty value update

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Sacha Al Himdani
2025-10-16 10:32:32 +02:00
parent 6253254335
commit 611b549f08
18 changed files with 516 additions and 497 deletions

View File

@@ -1147,18 +1147,18 @@ func (r *mutationResolver) UpdateOrganization(ctx context.Context, input types.U
req := probo.UpdateOrganizationRequest{
ID: input.OrganizationID,
Name: input.Name,
Description: &input.Description,
WebsiteURL: &input.WebsiteURL,
Email: &input.Email,
HeadquarterAddress: &input.HeadquarterAddress,
Description: UnwrapOmittable(input.Description),
WebsiteURL: UnwrapOmittable(input.WebsiteURL),
Email: UnwrapOmittable(input.Email),
HeadquarterAddress: UnwrapOmittable(input.HeadquarterAddress),
}
if input.Logo != nil {
if input.LogoFile != nil {
req.File = &probo.File{
Filename: input.Logo.Filename,
ContentType: input.Logo.ContentType,
Size: input.Logo.Size,
Content: input.Logo.File,
Filename: input.LogoFile.Filename,
ContentType: input.LogoFile.ContentType,
Size: input.LogoFile.Size,
Content: input.LogoFile.File,
}
}
@@ -1493,9 +1493,9 @@ func (r *mutationResolver) UpdatePeople(ctx context.Context, input types.UpdateP
PrimaryEmailAddress: input.PrimaryEmailAddress,
AdditionalEmailAddresses: &input.AdditionalEmailAddresses,
Kind: input.Kind,
Position: &input.Position,
ContractStartDate: &input.ContractStartDate,
ContractEndDate: &input.ContractEndDate,
Position: UnwrapOmittable(input.Position),
ContractStartDate: UnwrapOmittable(input.ContractStartDate),
ContractEndDate: UnwrapOmittable(input.ContractEndDate),
})
if err != nil {
return nil, fmt.Errorf("cannot update people: %w", err)
@@ -1564,23 +1564,23 @@ func (r *mutationResolver) UpdateVendor(ctx context.Context, input types.UpdateV
vendor, err := prb.Vendors.Update(ctx, probo.UpdateVendorRequest{
ID: input.ID,
Name: input.Name,
Description: input.Description,
StatusPageURL: input.StatusPageURL,
TermsOfServiceURL: input.TermsOfServiceURL,
PrivacyPolicyURL: input.PrivacyPolicyURL,
ServiceLevelAgreementURL: input.ServiceLevelAgreementURL,
DataProcessingAgreementURL: input.DataProcessingAgreementURL,
BusinessAssociateAgreementURL: input.BusinessAssociateAgreementURL,
SubprocessorsListURL: input.SubprocessorsListURL,
SecurityPageURL: input.SecurityPageURL,
TrustPageURL: input.TrustPageURL,
HeadquarterAddress: input.HeadquarterAddress,
LegalName: input.LegalName,
WebsiteURL: input.WebsiteURL,
Description: UnwrapOmittable(input.Description),
StatusPageURL: UnwrapOmittable(input.StatusPageURL),
TermsOfServiceURL: UnwrapOmittable(input.TermsOfServiceURL),
PrivacyPolicyURL: UnwrapOmittable(input.PrivacyPolicyURL),
ServiceLevelAgreementURL: UnwrapOmittable(input.ServiceLevelAgreementURL),
DataProcessingAgreementURL: UnwrapOmittable(input.DataProcessingAgreementURL),
BusinessAssociateAgreementURL: UnwrapOmittable(input.BusinessAssociateAgreementURL),
SubprocessorsListURL: UnwrapOmittable(input.SubprocessorsListURL),
SecurityPageURL: UnwrapOmittable(input.SecurityPageURL),
TrustPageURL: UnwrapOmittable(input.TrustPageURL),
HeadquarterAddress: UnwrapOmittable(input.HeadquarterAddress),
LegalName: UnwrapOmittable(input.LegalName),
WebsiteURL: UnwrapOmittable(input.WebsiteURL),
Category: input.Category,
Certifications: input.Certifications,
BusinessOwnerID: &input.BusinessOwnerID,
SecurityOwnerID: &input.SecurityOwnerID,
BusinessOwnerID: UnwrapOmittable(input.BusinessOwnerID),
SecurityOwnerID: UnwrapOmittable(input.SecurityOwnerID),
ShowOnTrustCenter: input.ShowOnTrustCenter,
Countries: input.Countries,
})
@@ -1635,10 +1635,10 @@ func (r *mutationResolver) UpdateVendorContact(ctx context.Context, input types.
req := probo.UpdateVendorContactRequest{
ID: input.ID,
FullName: &input.FullName,
Email: &input.Email,
Phone: &input.Phone,
Role: &input.Role,
FullName: UnwrapOmittable(input.FullName),
Email: UnwrapOmittable(input.Email),
Phone: UnwrapOmittable(input.Phone),
Role: UnwrapOmittable(input.Role),
}
vendorContact, err := prb.VendorContacts.Update(ctx, req)
@@ -1692,7 +1692,7 @@ func (r *mutationResolver) UpdateVendorService(ctx context.Context, input types.
req := probo.UpdateVendorServiceRequest{
ID: input.ID,
Name: input.Name,
Description: &input.Description,
Description: UnwrapOmittable(input.Description),
}
vendorService, err := prb.VendorServices.Update(ctx, req)
@@ -2127,8 +2127,8 @@ func (r *mutationResolver) UpdateTask(ctx context.Context, input types.UpdateTas
Name: input.Name,
Description: input.Description,
State: input.State,
TimeEstimate: input.TimeEstimate,
Deadline: input.Deadline,
TimeEstimate: UnwrapOmittable(input.TimeEstimate),
Deadline: UnwrapOmittable(input.Deadline),
})
if err != nil {
panic(fmt.Errorf("cannot update task: %w", err))
@@ -2222,7 +2222,7 @@ func (r *mutationResolver) UpdateRisk(ctx context.Context, input types.UpdateRis
Description: input.Description,
Category: input.Category,
Treatment: input.Treatment,
OwnerID: input.OwnerID,
OwnerID: UnwrapOmittable(input.OwnerID),
InherentLikelihood: input.InherentLikelihood,
InherentImpact: input.InherentImpact,
ResidualLikelihood: input.ResidualLikelihood,
@@ -2450,8 +2450,8 @@ func (r *mutationResolver) UpdateVendorBusinessAssociateAgreement(ctx context.Co
ctx,
input.VendorID,
&probo.VendorBusinessAssociateAgreementUpdateRequest{
ValidFrom: &input.ValidFrom,
ValidUntil: &input.ValidUntil,
ValidFrom: UnwrapOmittable(input.ValidFrom),
ValidUntil: UnwrapOmittable(input.ValidUntil),
},
)
if err != nil {
@@ -2508,8 +2508,8 @@ func (r *mutationResolver) UpdateVendorDataPrivacyAgreement(ctx context.Context,
ctx,
input.VendorID,
&probo.VendorDataPrivacyAgreementUpdateRequest{
ValidFrom: &input.ValidFrom,
ValidUntil: &input.ValidUntil,
ValidFrom: UnwrapOmittable(input.ValidFrom),
ValidUntil: UnwrapOmittable(input.ValidUntil),
},
)
if err != nil {
@@ -3133,15 +3133,15 @@ func (r *mutationResolver) UpdateNonconformity(ctx context.Context, input types.
req := probo.UpdateNonconformityRequest{
ID: input.ID,
ReferenceID: input.ReferenceID,
Description: &input.Description,
DateIdentified: &input.DateIdentified,
Description: UnwrapOmittable(input.Description),
DateIdentified: UnwrapOmittable(input.DateIdentified),
RootCause: input.RootCause,
CorrectiveAction: &input.CorrectiveAction,
CorrectiveAction: UnwrapOmittable(input.CorrectiveAction),
OwnerID: input.OwnerID,
AuditID: input.AuditID,
DueDate: &input.DueDate,
DueDate: UnwrapOmittable(input.DueDate),
Status: input.Status,
EffectivenessCheck: &input.EffectivenessCheck,
EffectivenessCheck: UnwrapOmittable(input.EffectivenessCheck),
}
nonconformity, err := prb.Nonconformities.Update(ctx, &req)
@@ -3201,14 +3201,14 @@ func (r *mutationResolver) UpdateObligation(ctx context.Context, input types.Upd
req := probo.UpdateObligationRequest{
ID: input.ID,
Area: &input.Area,
Source: &input.Source,
Requirement: &input.Requirement,
ActionsToBeImplemented: &input.ActionsToBeImplemented,
Regulator: &input.Regulator,
Area: UnwrapOmittable(input.Area),
Source: UnwrapOmittable(input.Source),
Requirement: UnwrapOmittable(input.Requirement),
ActionsToBeImplemented: UnwrapOmittable(input.ActionsToBeImplemented),
Regulator: UnwrapOmittable(input.Regulator),
OwnerID: input.OwnerID,
LastReviewDate: &input.LastReviewDate,
DueDate: &input.DueDate,
LastReviewDate: UnwrapOmittable(input.LastReviewDate),
DueDate: UnwrapOmittable(input.DueDate),
Status: input.Status,
}
@@ -3268,10 +3268,10 @@ func (r *mutationResolver) UpdateContinualImprovement(ctx context.Context, input
req := probo.UpdateContinualImprovementRequest{
ID: input.ID,
ReferenceID: input.ReferenceID,
Description: &input.Description,
Source: &input.Source,
Description: UnwrapOmittable(input.Description),
Source: UnwrapOmittable(input.Source),
OwnerID: input.OwnerID,
TargetDate: &input.TargetDate,
TargetDate: UnwrapOmittable(input.TargetDate),
Status: input.Status,
Priority: input.Priority,
}
@@ -3339,17 +3339,17 @@ func (r *mutationResolver) UpdateProcessingActivity(ctx context.Context, input t
req := probo.UpdateProcessingActivityRequest{
ID: input.ID,
Name: input.Name,
Purpose: &input.Purpose,
DataSubjectCategory: &input.DataSubjectCategory,
PersonalDataCategory: &input.PersonalDataCategory,
Purpose: UnwrapOmittable(input.Purpose),
DataSubjectCategory: UnwrapOmittable(input.DataSubjectCategory),
PersonalDataCategory: UnwrapOmittable(input.PersonalDataCategory),
SpecialOrCriminalData: input.SpecialOrCriminalData,
LawfulBasis: input.LawfulBasis,
Recipients: &input.Recipients,
Location: &input.Location,
Recipients: UnwrapOmittable(input.Recipients),
Location: UnwrapOmittable(input.Location),
InternationalTransfers: input.InternationalTransfers,
TransferSafeguards: &input.TransferSafeguards,
RetentionPeriod: &input.RetentionPeriod,
SecurityMeasures: &input.SecurityMeasures,
TransferSafeguards: UnwrapOmittable(input.TransferSafeguards),
RetentionPeriod: UnwrapOmittable(input.RetentionPeriod),
SecurityMeasures: UnwrapOmittable(input.SecurityMeasures),
DataProtectionImpactAssessment: input.DataProtectionImpactAssessment,
TransferImpactAssessment: input.TransferImpactAssessment,
}