Add uncategorised cookie category
Replace the `required` boolean column on cookie_categories with a `kind` enum (NORMAL, NECESSARY, UNCATEGORISED). The Necessary category remains undeletable and always-on for consent; the new Uncategorised category is also undeletable but users can opt out of it. When a category is deleted, its cookies are merged into the Uncategorised category (lazy-created for legacy banners that don't have one yet). Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
@@ -354,7 +354,6 @@ func (r *mutationResolver) CreateCookieCategory(ctx context.Context, input types
|
||||
CookieBannerID: input.CookieBannerID,
|
||||
Name: input.Name,
|
||||
Description: input.Description,
|
||||
Required: input.Required,
|
||||
Rank: input.Rank,
|
||||
Cookies: cookies,
|
||||
},
|
||||
@@ -461,7 +460,7 @@ func (r *mutationResolver) DeleteCookieCategory(ctx context.Context, input types
|
||||
if errors.Is(err, cookiebanner.ErrCategoryNotFound) {
|
||||
return nil, gqlutils.NotFound(ctx, err)
|
||||
}
|
||||
if errors.Is(err, cookiebanner.ErrCannotDeleteRequiredCategory) {
|
||||
if errors.Is(err, cookiebanner.ErrCannotDeleteSystemCategory) {
|
||||
return nil, gqlutils.Conflict(ctx, err)
|
||||
}
|
||||
r.logger.ErrorCtx(ctx, "cannot delete cookie category", log.Error(err))
|
||||
|
||||
@@ -90,7 +90,7 @@ type CookieCategory implements Node {
|
||||
cookieBanner: CookieBanner @goField(forceResolver: true)
|
||||
name: String!
|
||||
description: String!
|
||||
required: Boolean!
|
||||
kind: String!
|
||||
rank: Int!
|
||||
cookies: [CookieItem!]!
|
||||
createdAt: Datetime!
|
||||
@@ -212,7 +212,6 @@ input CreateCookieCategoryInput {
|
||||
cookieBannerId: ID!
|
||||
name: String!
|
||||
description: String!
|
||||
required: Boolean!
|
||||
rank: Int!
|
||||
cookies: [CookieItemInput!]
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ func NewCookieCategory(c *coredata.CookieCategory) *CookieCategory {
|
||||
},
|
||||
Name: c.Name,
|
||||
Description: c.Description,
|
||||
Required: c.Required,
|
||||
Kind: string(c.Kind),
|
||||
Rank: c.Rank,
|
||||
Cookies: cookies,
|
||||
CreatedAt: c.CreatedAt,
|
||||
|
||||
Reference in New Issue
Block a user