Skip to content

Commit

Permalink
fix: uupdate resource metadata on refresh (#208)
Browse files Browse the repository at this point in the history
  • Loading branch information
singhvikash11 committed Jul 7, 2022
1 parent 7c13206 commit 61f1add
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 2 deletions.
13 changes: 13 additions & 0 deletions core/provider/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,19 @@ func (s *Service) getResources(ctx context.Context, p *domain.Provider) ([]*doma
isFound := false
for _, r := range res {
if er.URN == r.URN {
existingMetadata := er.Details
if existingMetadata != nil {
if r.Details != nil {
for key, value := range existingMetadata {
if _, ok := r.Details[key]; !ok {
r.Details[key] = value
}
}
} else {
r.Details = existingMetadata
}
}

resources = append(resources, r)
isFound = true
break
Expand Down
2 changes: 1 addition & 1 deletion internal/store/postgres/resource_repository.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ func (r *ResourceRepository) BulkUpsert(resources []*domain.Resource) error {
{Name: "type"},
{Name: "urn"},
},
DoUpdates: clause.AssignmentColumns([]string{"name", "updated_at", "is_deleted"}),
DoUpdates: clause.AssignmentColumns([]string{"name", "details", "updated_at", "is_deleted"}),
}
if err := r.db.Clauses(upsertClause).Create(models).Error; err != nil {
return err
Expand Down
2 changes: 1 addition & 1 deletion internal/store/postgres/resource_repository_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ func (s *ResourceRepositoryTestSuite) TestBulkUpsert() {
},
}

expectedQuery := regexp.QuoteMeta(`INSERT INTO "resources" ("provider_type","provider_urn","type","urn","name","details","labels","created_at","updated_at","deleted_at","is_deleted") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11),($12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22) ON CONFLICT ("provider_type","provider_urn","type","urn") DO UPDATE SET "name"="excluded"."name","updated_at"="excluded"."updated_at","is_deleted"="excluded"."is_deleted" RETURNING "id"`)
expectedQuery := regexp.QuoteMeta(`INSERT INTO "resources" ("provider_type","provider_urn","type","urn","name","details","labels","created_at","updated_at","deleted_at","is_deleted") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11),($12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22) ON CONFLICT ("provider_type","provider_urn","type","urn") DO UPDATE SET "name"="excluded"."name","details"="excluded"."details","updated_at"="excluded"."updated_at","is_deleted"="excluded"."is_deleted" RETURNING "id"`)
expectedArgs := []driver.Value{}
for _, r := range resources {
expectedArgs = append(expectedArgs,
Expand Down

0 comments on commit 61f1add

Please sign in to comment.