From 7ebb377866f6f91aabc6ae4927642232abb7dbea Mon Sep 17 00:00:00 2001 From: Lauren Krugen Date: Fri, 9 Aug 2024 12:17:16 -0700 Subject: [PATCH] add opt out logging counts --- bcda/suppression/suppression.go | 10 ++++++++++ bcda/suppression/suppression_test.go | 18 ++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/bcda/suppression/suppression.go b/bcda/suppression/suppression.go index a73064352..2233786b0 100644 --- a/bcda/suppression/suppression.go +++ b/bcda/suppression/suppression.go @@ -120,6 +120,8 @@ func (importer OptOutImporter) validate(metadata *optout.OptOutFilenameMetadata) } func (importer OptOutImporter) ImportSuppressionData(metadata *optout.OptOutFilenameMetadata) error { + optOutCount := 0 + optInCount := 0 err := importer.importSuppressionMetadata(metadata, func(fileID uint, b []byte) error { suppression, err := optout.ParseRecord(metadata, b) @@ -133,6 +135,13 @@ func (importer OptOutImporter) ImportSuppressionData(metadata *optout.OptOutFile importer.Logger.Error(err) return err } + switch suppression.PrefIndicator { + case "Y": + optInCount++ + case "N": + optOutCount++ + return nil + } return nil }) @@ -140,6 +149,7 @@ func (importer OptOutImporter) ImportSuppressionData(metadata *optout.OptOutFile importer.updateImportStatus(metadata, optout.ImportFail) return err } + importer.Logger.WithFields(logrus.Fields{"created_opt_outs_count": optOutCount, "created_opt_ins_count": optInCount}).Info() importer.updateImportStatus(metadata, optout.ImportComplete) return nil } diff --git a/bcda/suppression/suppression_test.go b/bcda/suppression/suppression_test.go index b12589850..c4a299905 100644 --- a/bcda/suppression/suppression_test.go +++ b/bcda/suppression/suppression_test.go @@ -9,7 +9,9 @@ import ( "time" "github.com/DATA-DOG/go-sqlmock" + "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus" + "github.com/sirupsen/logrus/hooks/test" "github.com/CMSgov/bcda-app/bcda/constants" "github.com/CMSgov/bcda-app/bcda/database" @@ -74,6 +76,7 @@ func TestSuppressionTestSuite(t *testing.T) { func (s *SuppressionTestSuite) TestImportSuppression() { assert := assert.New(s.T()) + hook := test.NewLocal(logrus.StandardLogger()) // 181120 file fileTime, _ := time.Parse(time.RFC3339, "2018-11-20T10:00:00Z") metadata := &optout.OptOutFilenameMetadata{ @@ -134,6 +137,21 @@ func (s *SuppressionTestSuite) TestImportSuppression() { assert.Equal("N", suppressions[200].PrefIndicator) assert.Equal("1000098787", suppressions[249].MBI) assert.Equal("", suppressions[249].PrefIndicator) + + var optOut, optIn bool + entry := hook.LastEntry() + if _, ok := entry.Data["created_opt_outs_count"]; ok { + optOut = true + assert.Equal(entry.Data["created_opt_outs_count"], 86) + } + if _, ok := entry.Data["created_opt_ins_count"]; ok { + optIn = true + assert.Equal(entry.Data["created_opt_ins_count"], 71) + } + + assert.True(optOut) + assert.True(optIn) + } func (s *SuppressionTestSuite) TestImportSuppression_MissingData() {