Skip to content

Commit

Permalink
Filter out duplicate fingerprints in scene drafts (#500)
Browse files Browse the repository at this point in the history
  • Loading branch information
InfiniteStash committed Sep 21, 2022
1 parent 6692b9b commit f49b598
Showing 1 changed file with 20 additions and 8 deletions.
28 changes: 20 additions & 8 deletions pkg/api/resolver_mutation_draft.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,7 @@ func (r *mutationResolver) SubmitSceneDraft(ctx context.Context, input models.Sc
currentUser := getCurrentUser(ctx)
newDraft := models.NewDraft(UUID, currentUser, models.TargetTypeEnumScene)

var fingerprints []models.DraftFingerprint
for _, fp := range input.Fingerprints {
fingerprints = append(fingerprints, models.DraftFingerprint{
Hash: fp.Hash,
Algorithm: fp.Algorithm,
Duration: fp.Duration,
})
}
fingerprints := filterFingerprints(input.Fingerprints)

data := models.SceneDraft{
ID: input.ID,
Expand Down Expand Up @@ -167,6 +160,25 @@ func translateDraftEntitySlice(entities []*models.DraftEntityInput) []models.Dra
return ret
}

func filterFingerprints(input []*models.FingerprintInput) []models.DraftFingerprint {
resultMap := make(map[string]bool)
var fingerprints []models.DraftFingerprint

for _, fp := range input {
unique := fp.Hash + fp.Algorithm.String()
if _, exists := resultMap[unique]; !exists {
fingerprints = append(fingerprints, models.DraftFingerprint{
Hash: fp.Hash,
Algorithm: fp.Algorithm,
Duration: fp.Duration,
})
resultMap[unique] = true
}
}

return fingerprints
}

func resolveTags(tags []*models.DraftEntityInput, fac models.Repo) ([]models.DraftEntity, error) {
tqb := fac.Tag()

Expand Down

0 comments on commit f49b598

Please sign in to comment.