Skip to content

Commit 6ffe786

Browse files
committed
set vendor entity by default
1 parent a139ff0 commit 6ffe786

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

internal/ent/hooks/listeners_questionnaire_transform.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/theopenlane/core/internal/ent/generated/assessmentresponse"
2222
"github.com/theopenlane/core/internal/ent/generated/customtypeenum"
2323
"github.com/theopenlane/core/internal/ent/generated/entity"
24+
"github.com/theopenlane/core/internal/ent/generated/entitytype"
2425
"github.com/theopenlane/core/internal/ent/generated/group"
2526
"github.com/theopenlane/core/internal/ent/generated/note"
2627
"github.com/theopenlane/core/internal/ent/generated/orgmembership"
@@ -107,6 +108,7 @@ func handleAssessmentResponse(ctx gala.HandlerContext, payload eventqueue.Mutati
107108
err = transformQuestionnaire(allowCtx, client, questionnaireTransformRequest{
108109
OrganizationID: organizationID,
109110
TemplateID: assessment.TemplateID,
111+
TemplateKind: assessment.Edges.Template.Kind,
110112
AssessmentID: assessment.ID,
111113
AssessmentResponseID: response.ID,
112114
DocumentDataID: response.DocumentDataID,
@@ -172,6 +174,7 @@ func questionnaireTransformFieldChanged(payload eventqueue.MutationGalaPayload)
172174

173175
const transformMetadataKey = "questionnaire_transform"
174176
const entityTransformFieldNotes = "notes"
177+
const entityTransformFieldEntityTypeID = "entityTypeID"
175178
const questionnaireTransformDefinitionID = "questionnaire_transform"
176179

177180
type questionnaireValidationError struct {
@@ -188,6 +191,7 @@ func isQuestionnaireValidationError(err error) bool {
188191
type questionnaireTransformRequest struct {
189192
OrganizationID string
190193
TemplateID string
194+
TemplateKind enums.TemplateKind
191195
AssessmentID string
192196
AssessmentResponseID string
193197
DocumentDataID string
@@ -235,6 +239,10 @@ func handleEntityTransform(ctx context.Context, client *entgen.Client, req quest
235239
return err
236240
}
237241

242+
if err := setVendorEntityType(ctx, client, req, mapped.Payload); err != nil {
243+
return err
244+
}
245+
238246
record, err := persistTransformPayload(ctx, client, req, integrationgenerated.IntegrationMappingSchemaEntity, mapped)
239247
if err != nil {
240248
return err
@@ -408,6 +416,30 @@ func resolveEnvironment(ctx context.Context, client *entgen.Client, organization
408416
return nil
409417
}
410418

419+
func setVendorEntityType(ctx context.Context, client *entgen.Client, req questionnaireTransformRequest, payload map[string]any) error {
420+
if req.TemplateKind != enums.TemplateKindExternalIntake || payload[entityTransformFieldEntityTypeID] != nil {
421+
return nil
422+
}
423+
424+
id, err := client.EntityType.Query().
425+
Where(
426+
entitytype.OwnerIDEQ(req.OrganizationID),
427+
entitytype.NameEqualFold("vendor"),
428+
).
429+
FirstID(ctx)
430+
431+
if entgen.IsNotFound(err) {
432+
return nil
433+
}
434+
435+
if err != nil {
436+
return fmt.Errorf("resolve external intake entity type: %w", err)
437+
}
438+
439+
payload[entityTransformFieldEntityTypeID] = id
440+
return nil
441+
}
442+
411443
func applyTransform(value any, transform enums.TemplateProjectionTransform) (any, error) {
412444
if transform == "" {
413445
return value, nil

0 commit comments

Comments
 (0)