diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/CookieBannerConfigLayout.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/CookieBannerConfigLayout.tsx index 98665fedb..dee11b9a9 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/CookieBannerConfigLayout.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/CookieBannerConfigLayout.tsx @@ -86,6 +86,14 @@ const publishMutation = graphql` version state } + cookieBanner { + id + latestVersion { + id + version + state + } + } } } `; @@ -108,7 +116,9 @@ export default function CookieBannerConfigLayout({ queryRef }: CookieBannerConfi const banner = data.node; const [commitActivate, isActivating] = useMutation(activateMutation); - const [commitDeactivate, isDeactivating] = useMutation(deactivateMutation); + const [commitDeactivate, isDeactivating] = useMutation( + deactivateMutation, + ); const [commitPublish, isPublishing] = useMutation(publishMutation); const handleToggleState = () => { @@ -164,7 +174,22 @@ export default function CookieBannerConfigLayout({ queryRef }: CookieBannerConfi /> + {banner.name} + {banner.latestVersion?.version != null && ( + + v + {banner.latestVersion.version} + {banner.latestVersion.state === "DRAFT" && ( + +  (draft) + + )} + + )} + + )} description={banner.origin} > diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/_components/BannerSettingsForm.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/_components/BannerSettingsForm.tsx index fb25f9bef..2bd86df32 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/_components/BannerSettingsForm.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/_components/BannerSettingsForm.tsx @@ -43,6 +43,11 @@ const updateBannerMutation = graphql` privacyPolicyUrl consentExpiryDays consentMode + latestVersion { + id + version + state + } } } } diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/_components/CategoryDialog.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/_components/CategoryDialog.tsx index 838319067..467ec829a 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/_components/CategoryDialog.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/_components/CategoryDialog.tsx @@ -52,6 +52,14 @@ const createMutation = graphql` updatedAt } } + cookieBanner { + id + latestVersion { + id + version + state + } + } } } `; diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/_components/CategoryList.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/_components/CategoryList.tsx index fce71ca33..911c04918 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/_components/CategoryList.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/_components/CategoryList.tsx @@ -50,6 +50,14 @@ const deleteCategoryMutation = graphql` ) { deleteCookieCategory(input: $input) { deletedCookieCategoryId @deleteEdge(connections: $connections) + cookieBanner { + id + latestVersion { + id + version + state + } + } } } `; @@ -69,6 +77,14 @@ const updateCategoryMutation = graphql` } updatedAt } + cookieBanner { + id + latestVersion { + id + version + state + } + } } } `; diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/_components/CookieDialog.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/_components/CookieDialog.tsx index ba3570be2..08afe1cf0 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/_components/CookieDialog.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/_components/CookieDialog.tsx @@ -48,6 +48,14 @@ const updateCategoryMutation = graphql` } updatedAt } + cookieBanner { + id + latestVersion { + id + version + state + } + } } } `; diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/cookies/_components/CategorySection.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/cookies/_components/CategorySection.tsx index 429342b9d..e57e82f1f 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/cookies/_components/CategorySection.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/cookies/_components/CategorySection.tsx @@ -69,6 +69,14 @@ const updateCategoryMutation = graphql` } updatedAt } + cookieBanner { + id + latestVersion { + id + version + state + } + } } } `; diff --git a/pkg/server/api/console/v1/cookie_banner_resolvers.go b/pkg/server/api/console/v1/cookie_banner_resolvers.go index f4bec643f..79f67cee3 100644 --- a/pkg/server/api/console/v1/cookie_banner_resolvers.go +++ b/pkg/server/api/console/v1/cookie_banner_resolvers.go @@ -309,6 +309,12 @@ func (r *mutationResolver) PublishCookieBannerVersion(ctx context.Context, input return nil, gqlutils.Internal(ctx) } + banner, err := r.cookieBanner.GetCookieBanner(ctx, scope, input.CookieBannerID) + if err != nil { + r.logger.ErrorCtx(ctx, "cannot get cookie banner", log.Error(err)) + return nil, gqlutils.Internal(ctx) + } + return &types.PublishCookieBannerVersionPayload{ CookieBannerVersion: &types.CookieBannerVersion{ ID: version.ID, @@ -317,6 +323,7 @@ func (r *mutationResolver) PublishCookieBannerVersion(ctx context.Context, input CreatedAt: version.CreatedAt, UpdatedAt: version.UpdatedAt, }, + CookieBanner: types.NewCookieBanner(banner), }, nil } @@ -363,8 +370,15 @@ func (r *mutationResolver) CreateCookieCategory(ctx context.Context, input types return nil, gqlutils.Internal(ctx) } + banner, err := r.cookieBanner.GetCookieBanner(ctx, scope, input.CookieBannerID) + if err != nil { + r.logger.ErrorCtx(ctx, "cannot get cookie banner", log.Error(err)) + return nil, gqlutils.Internal(ctx) + } + return &types.CreateCookieCategoryPayload{ CookieCategoryEdge: types.NewCookieCategoryEdge(category, coredata.CookieCategoryOrderFieldRank), + CookieBanner: types.NewCookieBanner(banner), }, nil } @@ -411,8 +425,16 @@ func (r *mutationResolver) UpdateCookieCategory(ctx context.Context, input types return nil, gqlutils.Internal(ctx) } + bannerScope := coredata.NewScopeFromObjectID(category.CookieBannerID) + banner, err := r.cookieBanner.GetCookieBanner(ctx, bannerScope, category.CookieBannerID) + if err != nil { + r.logger.ErrorCtx(ctx, "cannot get cookie banner", log.Error(err)) + return nil, gqlutils.Internal(ctx) + } + return &types.UpdateCookieCategoryPayload{ CookieCategory: types.NewCookieCategory(category), + CookieBanner: types.NewCookieBanner(banner), }, nil } @@ -424,7 +446,18 @@ func (r *mutationResolver) DeleteCookieCategory(ctx context.Context, input types scope := coredata.NewScopeFromObjectID(input.CookieCategoryID) - err := r.cookieBanner.DeleteCookieCategory(ctx, scope, input.CookieCategoryID) + category, err := r.cookieBanner.GetCookieCategory(ctx, scope, input.CookieCategoryID) + if err != nil { + if errors.Is(err, cookiebanner.ErrCategoryNotFound) { + return nil, gqlutils.NotFound(ctx, err) + } + r.logger.ErrorCtx(ctx, "cannot get cookie category", log.Error(err)) + return nil, gqlutils.Internal(ctx) + } + + bannerID := category.CookieBannerID + + err = r.cookieBanner.DeleteCookieCategory(ctx, scope, input.CookieCategoryID) if err != nil { if errors.Is(err, cookiebanner.ErrCategoryNotFound) { return nil, gqlutils.NotFound(ctx, err) @@ -436,8 +469,16 @@ func (r *mutationResolver) DeleteCookieCategory(ctx context.Context, input types return nil, gqlutils.Internal(ctx) } + bannerScope := coredata.NewScopeFromObjectID(bannerID) + banner, err := r.cookieBanner.GetCookieBanner(ctx, bannerScope, bannerID) + if err != nil { + r.logger.ErrorCtx(ctx, "cannot get cookie banner", log.Error(err)) + return nil, gqlutils.Internal(ctx) + } + return &types.DeleteCookieCategoryPayload{ DeletedCookieCategoryID: input.CookieCategoryID, + CookieBanner: types.NewCookieBanner(banner), }, nil } diff --git a/pkg/server/api/console/v1/graphql/cookie_banner.graphql b/pkg/server/api/console/v1/graphql/cookie_banner.graphql index a85801ac8..abaf84bfa 100644 --- a/pkg/server/api/console/v1/graphql/cookie_banner.graphql +++ b/pkg/server/api/console/v1/graphql/cookie_banner.graphql @@ -254,16 +254,20 @@ type DeactivateCookieBannerPayload { type PublishCookieBannerVersionPayload { cookieBannerVersion: CookieBannerVersion! + cookieBanner: CookieBanner! } type CreateCookieCategoryPayload { cookieCategoryEdge: CookieCategoryEdge! + cookieBanner: CookieBanner! } type UpdateCookieCategoryPayload { cookieCategory: CookieCategory! + cookieBanner: CookieBanner! } type DeleteCookieCategoryPayload { deletedCookieCategoryId: ID! + cookieBanner: CookieBanner! }