32 lines
764 B
Go
32 lines
764 B
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
|
|
"go.infratographer.com/x/events"
|
|
"go.infratographer.com/x/gidx"
|
|
)
|
|
|
|
func (s *service) processRelationships(ctx context.Context, subjectType string, relationships []Relationship) {
|
|
var err error
|
|
|
|
for _, rel := range relationships {
|
|
err = s.publisher.PublishChange(ctx, subjectType, events.ChangeMessage{
|
|
SubjectID: rel.Resource.PrefixedID(),
|
|
EventType: string(events.CreateChangeType),
|
|
AdditionalSubjectIDs: []gidx.PrefixedID{
|
|
rel.RelatedResource.PrefixedID(),
|
|
},
|
|
})
|
|
|
|
if err != nil {
|
|
s.logger.Errorw("error publishing change",
|
|
"subject_type", subjectType,
|
|
"resource.id", rel.Resource.PrefixedID(),
|
|
"related_resource.id", rel.RelatedResource.PrefixedID(),
|
|
"error", err,
|
|
)
|
|
}
|
|
}
|
|
}
|