From 84120a07fc7f510f091e0a6cd5186b8e1f9ae165 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89mile=20R=C3=A9?= Date: Tue, 5 May 2026 15:30:52 +0400 Subject: [PATCH] Delegate ReportDetectedCookies to ReportDetectedTrackers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The compat endpoint now writes to the unified tracker tables instead of the legacy cookies + cookie_patterns tables. Signed-off-by: Émile Ré --- pkg/cookiebanner/service.go | 94 ++----------------------------------- 1 file changed, 3 insertions(+), 91 deletions(-) diff --git a/pkg/cookiebanner/service.go b/pkg/cookiebanner/service.go index fd8ef6ac8..982393ddc 100644 --- a/pkg/cookiebanner/service.go +++ b/pkg/cookiebanner/service.go @@ -2282,97 +2282,9 @@ func (s *Service) ReportDetectedCookies( bannerID gid.GID, req ReportDetectedCookiesRequest, ) error { - return s.pg.WithTx( - ctx, - func(ctx context.Context, tx pg.Tx) error { - scope := coredata.NewScopeFromObjectID(bannerID) - - var banner coredata.CookieBanner - if err := banner.LoadByID(ctx, tx, scope, bannerID); err != nil { - if errors.Is(err, coredata.ErrResourceNotFound) { - return ErrBannerNotFound - } - return fmt.Errorf("cannot load cookie banner: %w", err) - } - - var uncategorised coredata.CookieCategory - if err := uncategorised.LoadUncategorisedByCookieBannerID(ctx, tx, scope, banner.ID); err != nil { - return fmt.Errorf("cannot load uncategorised category: %w", err) - } - - inserted := 0 - now := time.Now() - - for _, dc := range req.Cookies { - var matchedPattern coredata.CookiePattern - err := matchedPattern.FindMatchingPattern(ctx, tx, scope, banner.ID, dc.Name) - if err != nil && !errors.Is(err, coredata.ErrResourceNotFound) { - return fmt.Errorf("cannot find matching pattern: %w", err) - } - - if err == nil && matchedPattern.Excluded { - continue - } - - patternID := matchedPattern.ID - if errors.Is(err, coredata.ErrResourceNotFound) { - newPattern := &coredata.CookiePattern{ - ID: gid.New(scope.GetTenantID(), coredata.CookiePatternEntityType), - OrganizationID: banner.OrganizationID, - CookieBannerID: banner.ID, - CookieCategoryID: uncategorised.ID, - Pattern: dc.Name, - MatchType: coredata.CookiePatternMatchTypeExact, - DisplayName: dc.Name, - MaxAgeSeconds: dc.MaxAgeSeconds, - Description: "", - Source: dc.Source, - CreatedAt: now, - UpdatedAt: now, - } - wasInserted, err := newPattern.InsertIfNotExists(ctx, tx, scope) - if err != nil { - return fmt.Errorf("cannot insert cookie pattern: %w", err) - } - if wasInserted { - patternID = newPattern.ID - inserted++ - } else { - var existingPattern coredata.CookiePattern - if err := existingPattern.LoadByBannerIDAndPattern(ctx, tx, scope, banner.ID, dc.Name); err != nil { - return fmt.Errorf("cannot load existing cookie pattern: %w", err) - } - patternID = existingPattern.ID - } - } - - cookie := &coredata.Cookie{ - ID: gid.New(scope.GetTenantID(), coredata.CookieEntityType), - OrganizationID: banner.OrganizationID, - CookieBannerID: banner.ID, - CookiePatternID: patternID, - Name: dc.Name, - MaxAgeSeconds: dc.MaxAgeSeconds, - Source: dc.Source, - LastDetectedAt: now, - CreatedAt: now, - UpdatedAt: now, - } - - if _, err := cookie.InsertIfNotExists(ctx, tx, scope); err != nil { - return fmt.Errorf("cannot insert detected cookie: %w", err) - } - } - - if inserted > 0 { - if err := banner.SetPatternAnalysisRequested(ctx, tx); err != nil { - return fmt.Errorf("cannot request pattern analysis: %w", err) - } - } - - return nil - }, - ) + return s.ReportDetectedTrackers(ctx, bannerID, ReportDetectedTrackersRequest{ + Cookies: req.Cookies, + }) } func (s *Service) ReportDetectedTrackers(