From 46bb800da8546e406e1df98836380a944faa6bec Mon Sep 17 00:00:00 2001 From: shortcuts Date: Thu, 4 Jan 2024 11:02:18 +0100 Subject: [PATCH 1/7] fix(specs): port recommend changes --- .../schemas/RecommendationsResponse.yml | 42 +++++++++++++++---- specs/recommend/paths/getRecommendations.yml | 2 +- templates/java/oneof_interface.mustache | 4 +- 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/specs/recommend/common/schemas/RecommendationsResponse.yml b/specs/recommend/common/schemas/RecommendationsResponse.yml index fab535ae549..caa6a6c5477 100644 --- a/specs/recommend/common/schemas/RecommendationsResponse.yml +++ b/specs/recommend/common/schemas/RecommendationsResponse.yml @@ -1,16 +1,16 @@ -recommendationsResponse: +recommendationsResults: allOf: - $ref: '../../../search/common/schemas/SearchResponse.yml#/baseSearchResponse' - - $ref: '#/recommendHits' + - $ref: '#/recommendationsHits' -recommendHits: +recommendationsHits: type: object additionalProperties: false properties: hits: type: array items: - $ref: '#/recommendHit' + $ref: '#/recommendationsHit' query: $ref: '../../../common/schemas/SearchParams.yml#/query' params: @@ -20,6 +20,11 @@ recommendHits: required: - hits +recommendationsHit: + oneOf: + - $ref: '#/recommendHit' + - $ref: '#/trendingFacetHit' + recommendHit: type: object description: Recommend hit. @@ -39,11 +44,30 @@ recommendHit: _distinctSeqID: $ref: '../../../search/common/schemas/Hit.yml#/_distinctSeqID' _score: - type: number - format: double - minimum: 0 - maximum: 100 - description: Recommendation score. + $ref: '#/recommendScore' + +trendingFacetHit: + type: object + description: Trending facet hit. + required: + - _score + - facetName + - facetValue + properties: + _score: + $ref: '#/recommendScore' + facetName: + type: string + facetValue: + type: object + additionalProperties: true + +recommendScore: + type: number + format: double + minimum: 0 + maximum: 100 + description: Recommendation score. ruleResponse: type: object diff --git a/specs/recommend/paths/getRecommendations.yml b/specs/recommend/paths/getRecommendations.yml index 7bf45ad1508..e4c6440505e 100644 --- a/specs/recommend/paths/getRecommendations.yml +++ b/specs/recommend/paths/getRecommendations.yml @@ -40,7 +40,7 @@ post: results: type: array items: - $ref: '../common/schemas/RecommendationsResponse.yml#/recommendationsResponse' + $ref: '../common/schemas/RecommendationsResponse.yml#/recommendationsResults' '400': $ref: '../../common/responses/BadRequest.yml' '402': diff --git a/templates/java/oneof_interface.mustache b/templates/java/oneof_interface.mustache index ed94fc2399e..48401ddadf7 100644 --- a/templates/java/oneof_interface.mustache +++ b/templates/java/oneof_interface.mustache @@ -83,7 +83,7 @@ public interface {{classname}}{{#vendorExtensions.x-has-child-generic}}{{/ven JsonNode tree = jp.readValueAsTree(); {{#composedSchemas.oneOf}} // deserialize {{{datatypeWithEnum}}} - if (tree.{{#isMap}}isObject(){{/isMap}}{{#isModel}}isObject(){{#vendorExtensions.x-discriminator-fields}} && tree.has("{{{.}}}"){{/vendorExtensions.x-discriminator-fields}}{{/isModel}}{{#isEnumRef}}isTextual(){{/isEnumRef}}{{#isArray}}isArray(){{/isArray}}{{#isInteger}}isInt(){{/isInteger}}{{#isLong}}isLong(){{/isLong}}{{#isDouble}}isDouble(){{/isDouble}}{{#isBoolean}}isBoolean(){{/isBoolean}}{{#isString}}isTextual(){{/isString}}){ + if (tree.{{#isModel}}isObject(){{#vendorExtensions.x-discriminator-fields}} && tree.has("{{{.}}}"){{/vendorExtensions.x-discriminator-fields}}{{/isModel}}{{#isEnumRef}}isTextual(){{/isEnumRef}}{{#isArray}}isArray(){{/isArray}}{{#isInteger}}isInt(){{/isInteger}}{{#isLong}}isLong(){{/isLong}}{{#isDouble}}isDouble(){{/isDouble}}{{#isBoolean}}isBoolean(){{/isBoolean}}{{#isString}}isTextual(){{/isString}}{{^isEnumRef}}{{^isModel}}{{^isArray}}{{^isInteger}}{{^isLong}}{{^isDouble}}{{^isBoolean}}{{^isString}}isObject(){{/isString}}{{/isBoolean}}{{/isDouble}}{{/isLong}}{{/isInteger}}{{/isArray}}{{/isModel}}{{/isEnumRef}}){ try(JsonParser parser = tree.traverse(jp.getCodec())) { {{#isModel}} return parser.readValueAs({{#vendorExtensions.x-has-child-generic}}new TypeReference<{{datatypeWithEnum}}>() {}{{/vendorExtensions.x-has-child-generic}}{{^vendorExtensions.x-has-child-generic}}{{{datatypeWithEnum}}}.class{{/vendorExtensions.x-has-child-generic}}); @@ -125,4 +125,4 @@ public interface {{classname}}{{#vendorExtensions.x-has-child-generic}}{{/ven {{/isNullable}} } } -} +} \ No newline at end of file From 9895398f8dc17a3a9b352e31f12d04c5bf5663cb Mon Sep 17 00:00:00 2001 From: shortcuts Date: Thu, 4 Jan 2024 11:13:09 +0100 Subject: [PATCH 2/7] fix: facetValue type and refs --- specs/recommend/common/schemas/RecommendationsResponse.yml | 5 ++--- specs/recommend/common/schemas/TrendingQuery.yml | 7 +++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/specs/recommend/common/schemas/RecommendationsResponse.yml b/specs/recommend/common/schemas/RecommendationsResponse.yml index caa6a6c5477..8e20c6d8c30 100644 --- a/specs/recommend/common/schemas/RecommendationsResponse.yml +++ b/specs/recommend/common/schemas/RecommendationsResponse.yml @@ -57,10 +57,9 @@ trendingFacetHit: _score: $ref: '#/recommendScore' facetName: - type: string + $ref: 'TrendingQuery.yml#/facetName' facetValue: - type: object - additionalProperties: true + $ref: 'TrendingQuery.yml#/facetValue' recommendScore: type: number diff --git a/specs/recommend/common/schemas/TrendingQuery.yml b/specs/recommend/common/schemas/TrendingQuery.yml index c22ba98ec6e..a4155263e85 100644 --- a/specs/recommend/common/schemas/TrendingQuery.yml +++ b/specs/recommend/common/schemas/TrendingQuery.yml @@ -10,8 +10,7 @@ baseTrendingItemsQuery: facetName: $ref: '#/facetName' facetValue: - type: string - description: Facet value for trending models. + $ref: '#/facetValue' model: $ref: '#/trendingItemsModel' queryParameters: @@ -48,3 +47,7 @@ trendingItemsModel: facetName: type: string description: Facet name for trending models. + +facetValue: + type: string + description: Facet value for trending models. From f244d6d4c8b458fa67da7f17ece4c76fbf446640 Mon Sep 17 00:00:00 2001 From: shortcuts Date: Thu, 4 Jan 2024 12:26:30 +0100 Subject: [PATCH 3/7] fix: names and common props --- specs/recommend/common/parameters.yml | 8 +++ .../common/schemas/RecommendationsQuery.yml | 2 +- .../common/schemas/RecommendationsRequest.yml | 4 +- .../schemas/RecommendationsResponse.yml | 37 +------------ .../recommend/common/schemas/RuleResponse.yml | 32 +++++++++++ .../common/schemas/TrendingFacetsQuery.yml | 20 +++++++ .../common/schemas/TrendingItemsQuery.yml | 24 +++++++++ .../common/schemas/TrendingQuery.yml | 53 ------------------- specs/recommend/paths/recommendRule.yml | 4 +- .../recommend/paths/searchRecommendRules.yml | 21 ++------ 10 files changed, 96 insertions(+), 109 deletions(-) create mode 100644 specs/recommend/common/schemas/RuleResponse.yml create mode 100644 specs/recommend/common/schemas/TrendingFacetsQuery.yml create mode 100644 specs/recommend/common/schemas/TrendingItemsQuery.yml delete mode 100644 specs/recommend/common/schemas/TrendingQuery.yml diff --git a/specs/recommend/common/parameters.yml b/specs/recommend/common/parameters.yml index e99d361e38d..b626f5ce037 100644 --- a/specs/recommend/common/parameters.yml +++ b/specs/recommend/common/parameters.yml @@ -18,3 +18,11 @@ ObjectID: type: string description: Unique Recommend rule identifier. example: 'a-recommend-rule-id' + +facetName: + type: string + description: Facet name for trending models. + +facetValue: + type: string + description: Facet value for trending models. diff --git a/specs/recommend/common/schemas/RecommendationsQuery.yml b/specs/recommend/common/schemas/RecommendationsQuery.yml index 764c9b9520f..63f75a17dc1 100644 --- a/specs/recommend/common/schemas/RecommendationsQuery.yml +++ b/specs/recommend/common/schemas/RecommendationsQuery.yml @@ -1,7 +1,7 @@ recommendationsQuery: allOf: - - $ref: '#/baseRecommendationsQuery' - $ref: './RecommendationsRequest.yml#/baseRecommendRequest' + - $ref: '#/baseRecommendationsQuery' baseRecommendationsQuery: type: object diff --git a/specs/recommend/common/schemas/RecommendationsRequest.yml b/specs/recommend/common/schemas/RecommendationsRequest.yml index fea646a6daf..f255b2e53c4 100644 --- a/specs/recommend/common/schemas/RecommendationsRequest.yml +++ b/specs/recommend/common/schemas/RecommendationsRequest.yml @@ -1,7 +1,7 @@ recommendationsRequest: oneOf: - - $ref: './TrendingQuery.yml#/trendingItemsQuery' - - $ref: './TrendingQuery.yml#/trendingFacetsQuery' + - $ref: './TrendingItemsQuery.yml#/trendingItemsQuery' + - $ref: './TrendingFacetsQuery.yml#/trendingFacetsQuery' - $ref: './RecommendationsQuery.yml#/recommendationsQuery' baseRecommendRequest: diff --git a/specs/recommend/common/schemas/RecommendationsResponse.yml b/specs/recommend/common/schemas/RecommendationsResponse.yml index 8e20c6d8c30..29b58fc046f 100644 --- a/specs/recommend/common/schemas/RecommendationsResponse.yml +++ b/specs/recommend/common/schemas/RecommendationsResponse.yml @@ -57,9 +57,9 @@ trendingFacetHit: _score: $ref: '#/recommendScore' facetName: - $ref: 'TrendingQuery.yml#/facetName' + $ref: '../parameters.yml#/facetName' facetValue: - $ref: 'TrendingQuery.yml#/facetValue' + $ref: '../parameters.yml#/facetValue' recommendScore: type: number @@ -67,36 +67,3 @@ recommendScore: minimum: 0 maximum: 100 description: Recommendation score. - -ruleResponse: - type: object - description: Rule object. - additionalProperties: false - properties: - _metadata: - type: object - properties: - lastUpdate: - $ref: '../../../common/responses/common.yml#/updatedAt' - objectID: - type: string - description: Unique identifier for a rule object. - example: 'hide-12345' - conditions: - type: array - description: > - [Conditions](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/#conditions) required to activate a rule. You can use up to 25 conditions per rule. - items: - $ref: '../../../search/paths/rules/common/schemas.yml#/condition' - consequence: - $ref: '../../../search/paths/rules/common/schemas.yml#//consequence' - description: - type: string - description: Description of the rule's purpose. This can be helpful for display in the Algolia dashboard. - example: 'Display a promotional banner' - enabled: - type: boolean - default: true - description: Indicates whether to enable the rule. If it isn't enabled, it isn't applied at query time. - required: - - objectID diff --git a/specs/recommend/common/schemas/RuleResponse.yml b/specs/recommend/common/schemas/RuleResponse.yml new file mode 100644 index 00000000000..50ee5aa0558 --- /dev/null +++ b/specs/recommend/common/schemas/RuleResponse.yml @@ -0,0 +1,32 @@ +ruleResponse: + type: object + description: Rule object. + additionalProperties: false + properties: + _metadata: + type: object + properties: + lastUpdate: + $ref: '../../../common/responses/common.yml#/updatedAt' + objectID: + type: string + description: Unique identifier for a rule object. + example: 'hide-12345' + conditions: + type: array + description: > + [Conditions](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/#conditions) required to activate a rule. You can use up to 25 conditions per rule. + items: + $ref: '../../../search/paths/rules/common/schemas.yml#/condition' + consequence: + $ref: '../../../search/paths/rules/common/schemas.yml#//consequence' + description: + type: string + description: Description of the rule's purpose. This can be helpful for display in the Algolia dashboard. + example: 'Display a promotional banner' + enabled: + type: boolean + default: true + description: Indicates whether to enable the rule. If it isn't enabled, it isn't applied at query time. + required: + - objectID diff --git a/specs/recommend/common/schemas/TrendingFacetsQuery.yml b/specs/recommend/common/schemas/TrendingFacetsQuery.yml new file mode 100644 index 00000000000..a1d67085e88 --- /dev/null +++ b/specs/recommend/common/schemas/TrendingFacetsQuery.yml @@ -0,0 +1,20 @@ +trendingFacetsQuery: + allOf: + - $ref: './RecommendationsRequest.yml#/baseRecommendRequest' + - $ref: '#/baseTrendingFacetsQuery' + +baseTrendingFacetsQuery: + type: object + additionalProperties: false + properties: + facetName: + $ref: '../parameters.yml#/facetName' + model: + $ref: '#/trendingFacetsModel' + required: + - facetName + +trendingFacetsModel: + description: Trending facets model. + type: string + enum: [trending-facets] diff --git a/specs/recommend/common/schemas/TrendingItemsQuery.yml b/specs/recommend/common/schemas/TrendingItemsQuery.yml new file mode 100644 index 00000000000..02a23131c54 --- /dev/null +++ b/specs/recommend/common/schemas/TrendingItemsQuery.yml @@ -0,0 +1,24 @@ +trendingItemsQuery: + allOf: + - $ref: './RecommendationsRequest.yml#/baseRecommendRequest' + - $ref: '#/baseTrendingItemsQuery' + +baseTrendingItemsQuery: + type: object + additionalProperties: false + properties: + facetName: + $ref: '../parameters.yml#/facetName' + facetValue: + $ref: '../parameters.yml#/facetValue' + model: + $ref: '#/trendingItemsModel' + queryParameters: + $ref: '../../../common/schemas/SearchParams.yml#/searchParamsObject' + fallbackParameters: + $ref: '../../../common/schemas/SearchParams.yml#/searchParamsObject' + +trendingItemsModel: + description: Trending items model. + type: string + enum: [trending-items] diff --git a/specs/recommend/common/schemas/TrendingQuery.yml b/specs/recommend/common/schemas/TrendingQuery.yml deleted file mode 100644 index a4155263e85..00000000000 --- a/specs/recommend/common/schemas/TrendingQuery.yml +++ /dev/null @@ -1,53 +0,0 @@ -trendingItemsQuery: - allOf: - - $ref: '#/baseTrendingItemsQuery' - - $ref: './RecommendationsRequest.yml#/baseRecommendRequest' - -baseTrendingItemsQuery: - type: object - additionalProperties: false - properties: - facetName: - $ref: '#/facetName' - facetValue: - $ref: '#/facetValue' - model: - $ref: '#/trendingItemsModel' - queryParameters: - $ref: '../../../common/schemas/SearchParams.yml#/searchParamsObject' - fallbackParameters: - $ref: '../../../common/schemas/SearchParams.yml#/searchParamsObject' - -trendingFacetsQuery: - allOf: - - $ref: '#/baseTrendingFacetsQuery' - - $ref: './RecommendationsRequest.yml#/baseRecommendRequest' - -baseTrendingFacetsQuery: - type: object - additionalProperties: false - properties: - facetName: - $ref: '#/facetName' - model: - $ref: '#/trendingFacetsModel' - required: - - facetName - -trendingFacetsModel: - description: Trending facets model. - type: string - enum: [trending-facets] - -trendingItemsModel: - description: Trending items model. - type: string - enum: [trending-items] - -facetName: - type: string - description: Facet name for trending models. - -facetValue: - type: string - description: Facet value for trending models. diff --git a/specs/recommend/paths/recommendRule.yml b/specs/recommend/paths/recommendRule.yml index c271262dc0a..96d38ad65aa 100644 --- a/specs/recommend/paths/recommendRule.yml +++ b/specs/recommend/paths/recommendRule.yml @@ -14,7 +14,7 @@ get: content: application/json: schema: - $ref: '../common/schemas/RecommendationsResponse.yml#/ruleResponse' + $ref: '../common/schemas/ruleResponse.yml#/ruleResponse' '400': $ref: '../../common/responses/BadRequest.yml' '402': @@ -44,4 +44,4 @@ delete: '403': $ref: '../../common/responses/MethodNotAllowed.yml' '404': - $ref: '../../common/responses/IndexNotFound.yml' \ No newline at end of file + $ref: '../../common/responses/IndexNotFound.yml' diff --git a/specs/recommend/paths/searchRecommendRules.yml b/specs/recommend/paths/searchRecommendRules.yml index eed612a53de..bc115ce0d9f 100644 --- a/specs/recommend/paths/searchRecommendRules.yml +++ b/specs/recommend/paths/searchRecommendRules.yml @@ -33,14 +33,6 @@ post: nullable: true default: null description: Restricts responses to enabled rules. When absent (default), _all_ rules are retrieved. - requestOptions: - type: array - description: Request options to send with the API call. - example: > - {timeouts:{read:20}} - items: - type: object - description: Request option. responses: '200': description: OK @@ -60,16 +52,13 @@ post: type: array description: Fetched rules. items: - $ref: '../common/schemas/RecommendationsResponse.yml#/ruleResponse' + $ref: '../common/schemas/RuleResponse.yml#/ruleResponse' nbHits: - type: integer - description: Number of fetched rules. + $ref: '../../search/common/schemas/SearchResponse.yml#/nbHits' page: - type: integer - description: Current page. + $ref: '../../common/schemas/SearchParams.yml#/page' nbPages: - type: integer - description: Number of pages. + $ref: '../../search/common/schemas/SearchResponse.yml#/nbPages' '400': $ref: '../../common/responses/BadRequest.yml' '402': @@ -77,4 +66,4 @@ post: '403': $ref: '../../common/responses/MethodNotAllowed.yml' '404': - $ref: '../../common/responses/IndexNotFound.yml' \ No newline at end of file + $ref: '../../common/responses/IndexNotFound.yml' From 8649ad87b24c5c5ef351240073b652cd304cdb3e Mon Sep 17 00:00:00 2001 From: shortcuts Date: Thu, 4 Jan 2024 12:33:01 +0100 Subject: [PATCH 4/7] fix: bundle specs From a4a7c0afaefc9b275fa4eb2303846290666c3ab0 Mon Sep 17 00:00:00 2001 From: shortcuts Date: Thu, 4 Jan 2024 12:35:57 +0100 Subject: [PATCH 5/7] fix: case --- .../recommend/common/schemas/RuleResponse.yml | 63 +++++++++---------- specs/recommend/paths/recommendRule.yml | 2 +- .../recommend/paths/searchRecommendRules.yml | 2 +- 3 files changed, 33 insertions(+), 34 deletions(-) diff --git a/specs/recommend/common/schemas/RuleResponse.yml b/specs/recommend/common/schemas/RuleResponse.yml index 50ee5aa0558..9690c5a8f48 100644 --- a/specs/recommend/common/schemas/RuleResponse.yml +++ b/specs/recommend/common/schemas/RuleResponse.yml @@ -1,32 +1,31 @@ -ruleResponse: - type: object - description: Rule object. - additionalProperties: false - properties: - _metadata: - type: object - properties: - lastUpdate: - $ref: '../../../common/responses/common.yml#/updatedAt' - objectID: - type: string - description: Unique identifier for a rule object. - example: 'hide-12345' - conditions: - type: array - description: > - [Conditions](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/#conditions) required to activate a rule. You can use up to 25 conditions per rule. - items: - $ref: '../../../search/paths/rules/common/schemas.yml#/condition' - consequence: - $ref: '../../../search/paths/rules/common/schemas.yml#//consequence' - description: - type: string - description: Description of the rule's purpose. This can be helpful for display in the Algolia dashboard. - example: 'Display a promotional banner' - enabled: - type: boolean - default: true - description: Indicates whether to enable the rule. If it isn't enabled, it isn't applied at query time. - required: - - objectID +type: object +description: Rule object. +additionalProperties: false +properties: + _metadata: + type: object + properties: + lastUpdate: + $ref: '../../../common/responses/common.yml#/updatedAt' + objectID: + type: string + description: Unique identifier for a rule object. + example: 'hide-12345' + conditions: + type: array + description: > + [Conditions](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/#conditions) required to activate a rule. You can use up to 25 conditions per rule. + items: + $ref: '../../../search/paths/rules/common/schemas.yml#/condition' + consequence: + $ref: '../../../search/paths/rules/common/schemas.yml#//consequence' + description: + type: string + description: Description of the rule's purpose. This can be helpful for display in the Algolia dashboard. + example: 'Display a promotional banner' + enabled: + type: boolean + default: true + description: Indicates whether to enable the rule. If it isn't enabled, it isn't applied at query time. +required: + - objectID diff --git a/specs/recommend/paths/recommendRule.yml b/specs/recommend/paths/recommendRule.yml index 96d38ad65aa..56dc82cb815 100644 --- a/specs/recommend/paths/recommendRule.yml +++ b/specs/recommend/paths/recommendRule.yml @@ -14,7 +14,7 @@ get: content: application/json: schema: - $ref: '../common/schemas/ruleResponse.yml#/ruleResponse' + $ref: '../common/schemas/ruleResponse.yml' '400': $ref: '../../common/responses/BadRequest.yml' '402': diff --git a/specs/recommend/paths/searchRecommendRules.yml b/specs/recommend/paths/searchRecommendRules.yml index bc115ce0d9f..61c1afb44f6 100644 --- a/specs/recommend/paths/searchRecommendRules.yml +++ b/specs/recommend/paths/searchRecommendRules.yml @@ -52,7 +52,7 @@ post: type: array description: Fetched rules. items: - $ref: '../common/schemas/RuleResponse.yml#/ruleResponse' + $ref: '../common/schemas/RuleResponse.yml' nbHits: $ref: '../../search/common/schemas/SearchResponse.yml#/nbHits' page: From 2ef075cb68e3ea8b29044f096727b26c57ce27f3 Mon Sep 17 00:00:00 2001 From: shortcuts Date: Thu, 4 Jan 2024 12:37:23 +0100 Subject: [PATCH 6/7] fix: case again --- specs/recommend/paths/recommendRule.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specs/recommend/paths/recommendRule.yml b/specs/recommend/paths/recommendRule.yml index 56dc82cb815..a4888aa66f2 100644 --- a/specs/recommend/paths/recommendRule.yml +++ b/specs/recommend/paths/recommendRule.yml @@ -14,7 +14,7 @@ get: content: application/json: schema: - $ref: '../common/schemas/ruleResponse.yml' + $ref: '../common/schemas/RuleResponse.yml' '400': $ref: '../../common/responses/BadRequest.yml' '402': From c1a0d6a1918a1dc896e48a8e94915d611e2d08b9 Mon Sep 17 00:00:00 2001 From: shortcuts Date: Thu, 4 Jan 2024 13:22:48 +0100 Subject: [PATCH 7/7] feat: recommended for you --- specs/common/schemas/SearchParams.yml | 13 ++++--- .../common/schemas/RecommendationsRequest.yml | 1 + .../common/schemas/RecommendedForYouQuery.yml | 35 +++++++++++++++++++ 3 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 specs/recommend/common/schemas/RecommendedForYouQuery.yml diff --git a/specs/common/schemas/SearchParams.yml b/specs/common/schemas/SearchParams.yml index 425e0a3478d..a3fe5efd30a 100644 --- a/specs/common/schemas/SearchParams.yml +++ b/specs/common/schemas/SearchParams.yml @@ -136,11 +136,7 @@ baseSearchParamsWithoutQuery: x-categories: - Personalization userToken: - type: string - description: Associates a [user token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/) with the current search. - example: '123456' - x-categories: - - Personalization + $ref: '#/userToken' getRankingInfo: type: boolean description: Incidates whether the search response includes [detailed ranking information](https://www.algolia.com/doc/guides/building-search-ui/going-further/backend-search/in-depth/understanding-the-api-response/#ranking-information). @@ -209,6 +205,13 @@ paramsAsString: type: string default: '' +userToken: + type: string + description: Associates a [user token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/) with the current search. + example: '123456' + x-categories: + - Personalization + query: type: string description: Text to search for in an index. diff --git a/specs/recommend/common/schemas/RecommendationsRequest.yml b/specs/recommend/common/schemas/RecommendationsRequest.yml index f255b2e53c4..35133f2866d 100644 --- a/specs/recommend/common/schemas/RecommendationsRequest.yml +++ b/specs/recommend/common/schemas/RecommendationsRequest.yml @@ -3,6 +3,7 @@ recommendationsRequest: - $ref: './TrendingItemsQuery.yml#/trendingItemsQuery' - $ref: './TrendingFacetsQuery.yml#/trendingFacetsQuery' - $ref: './RecommendationsQuery.yml#/recommendationsQuery' + - $ref: './RecommendedForYouQuery.yml#/recommendedForYouQuery' baseRecommendRequest: type: object diff --git a/specs/recommend/common/schemas/RecommendedForYouQuery.yml b/specs/recommend/common/schemas/RecommendedForYouQuery.yml new file mode 100644 index 00000000000..1289c18e26c --- /dev/null +++ b/specs/recommend/common/schemas/RecommendedForYouQuery.yml @@ -0,0 +1,35 @@ +recommendedForYouQuery: + allOf: + - $ref: './RecommendationsRequest.yml#/baseRecommendRequest' + - $ref: '#/baseRecommendedForYouQuery' + +recommendedForYouQueryParameters: + allOf: + - $ref: '../../../common/schemas/SearchParams.yml#/searchParamsObject' + - $ref: '#/baseRecommendedForYouQueryParameters' + +baseRecommendedForYouQueryParameters: + type: object + properties: + userToken: + $ref: '../../../common/schemas/SearchParams.yml#/userToken' + required: + - userToken + +baseRecommendedForYouQuery: + type: object + additionalProperties: false + properties: + model: + $ref: '#/recommendedForYouModel' + queryParameters: + $ref: '#/recommendedForYouQueryParameters' + fallbackParameters: + $ref: '#/recommendedForYouQueryParameters' + required: + - model + +recommendedForYouModel: + description: Recommended for you model. + type: string + enum: [recommended-for-you]