Skip to content

Commit

Permalink
feat(headless): forbid next analytics on defunct engines (#3668)
Browse files Browse the repository at this point in the history
Because the engines are defunct, I acted a bit lazy and decided to
copy-paste the schema definitions.

https://coveord.atlassian.net/browse/KIT-2990
  • Loading branch information
louis-bompart committed Mar 7, 2024
1 parent 11e126c commit 1b33acc
Show file tree
Hide file tree
Showing 2 changed files with 96 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
import {Schema} from '@coveo/bueno';
import {
BooleanValue,
RecordValue,
Schema,
SchemaDefinition,
StringValue,
} from '@coveo/bueno';
import {requiredNonEmptyString} from '../../utils/validate-payload';
import {
EngineConfiguration,
engineConfigurationDefinitions,
getSampleEngineConfiguration,
} from '../engine-configuration';

Expand All @@ -11,6 +17,42 @@ import {
export interface ProductListingEngineConfiguration
extends EngineConfiguration {}

const engineConfigurationDefinitions: SchemaDefinition<EngineConfiguration> = {
organizationId: requiredNonEmptyString,
accessToken: requiredNonEmptyString,
platformUrl: new StringValue({
required: false,
emptyAllowed: false,
}),
name: new StringValue({
required: false,
emptyAllowed: false,
}),
analytics: new RecordValue({
options: {
required: false,
},
values: {
enabled: new BooleanValue({
required: false,
}),
originContext: new StringValue({
required: false,
}),
originLevel2: new StringValue({
required: false,
}),
originLevel3: new StringValue({
required: false,
}),
analyticsMode: new StringValue<'legacy'>({
constrainTo: ['legacy'],
required: false,
}),
},
}),
};

export const productListingEngineConfigurationSchema =
new Schema<ProductListingEngineConfiguration>({
...engineConfigurationDefinitions,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
import {Schema} from '@coveo/bueno';
import {nonEmptyString} from '../../utils/validate-payload';
import {
BooleanValue,
RecordValue,
Schema,
SchemaDefinition,
StringValue,
} from '@coveo/bueno';
import {
nonEmptyString,
requiredNonEmptyString,
} from '../../utils/validate-payload';
import {
EngineConfiguration,
engineConfigurationDefinitions,
getSampleEngineConfiguration,
} from '../engine-configuration';

Expand Down Expand Up @@ -37,13 +45,50 @@ export interface ProductRecommendationEngineConfiguration
timezone?: string;
}

export const productRecommendationEngineConfigurationSchema =
new Schema<ProductRecommendationEngineConfiguration>({
...engineConfigurationDefinitions,
const engineConfigurationDefinitions: SchemaDefinition<ProductRecommendationEngineConfiguration> =
{
organizationId: requiredNonEmptyString,
accessToken: requiredNonEmptyString,
platformUrl: new StringValue({
required: false,
emptyAllowed: false,
}),
name: new StringValue({
required: false,
emptyAllowed: false,
}),
analytics: new RecordValue({
options: {
required: false,
},
values: {
enabled: new BooleanValue({
required: false,
}),
originContext: new StringValue({
required: false,
}),
originLevel2: new StringValue({
required: false,
}),
originLevel3: new StringValue({
required: false,
}),
analyticsMode: new StringValue<'legacy'>({
constrainTo: ['legacy'],
required: false,
}),
},
}),
searchHub: nonEmptyString,
locale: nonEmptyString,
timezone: nonEmptyString,
});
};

export const productRecommendationEngineConfigurationSchema =
new Schema<ProductRecommendationEngineConfiguration>(
engineConfigurationDefinitions
);

/**
* Creates a sample product recommendation engine configuration.
Expand Down

0 comments on commit 1b33acc

Please sign in to comment.