Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions openapi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -287,14 +287,10 @@ paths:
]
- name: region
in: query
required: true
description: This region string is Fx domain language, and built from Fx expectations. Parameter values are not case sensitive.
required: false
description: This region string is Fx domain language, and built from Fx expectations. Parameter values are not case sensitive. See [Firefox Home & New Tab Regional Differences](https://mozilla-hub.atlassian.net/wiki/spaces/FPS/pages/80448805/Regional+Differences).
schema:
type: string
enum: [
# relevant docs: https://docs.google.com/document/d/1omclr-eETJ7zAWTMI7mvvsc3_-ns2Iiho4jPEfrmZfo
US, CA, DE, GB, IE, FR, ES, IT, IN, CH, AT, BE,
]
responses:
'200':
description: OK
Expand Down
22 changes: 1 addition & 21 deletions src/api/desktop/recommendations/inputs.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -138,22 +138,12 @@ describe('input.ts recommendations query parameters', () => {
parameters: 'locale',
},
}),
expect.objectContaining<APIError>({
status: '400',
title: 'Bad Request',
detail:
'Region must be provided. Valid regions include [' +
'"US","CA","DE","GB","IE","FR","ES","IT","IN","CH","AT","BE"]',
source: {
parameters: 'region',
},
}),
]),
})
);
});

it('region and locale are required', () => {
it('locale is required', () => {
const res = validate({
count: 30,
// region and locale are missing
Expand All @@ -175,16 +165,6 @@ describe('input.ts recommendations query parameters', () => {
parameters: 'locale',
},
}),
expect.objectContaining<APIError>({
status: '400',
title: 'Bad Request',
detail:
'Region must be provided. Valid regions include [' +
'"US","CA","DE","GB","IE","FR","ES","IT","IN","CH","AT","BE"]',
source: {
parameters: 'region',
},
}),
]),
})
);
Expand Down
39 changes: 0 additions & 39 deletions src/api/desktop/recommendations/inputs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,44 +78,6 @@ const isValidLocale: ValidatorFunction = (locale?: string) =>
}
: null;

// all valid regions
const validRegions = [
'US',
'CA',
'DE',
'GB',
'IE',
'FR',
'ES',
'IT',
'IN',
'CH',
'AT',
'BE',
];
// copy to set for fast lookup, all lowercase
const validRegionsSet = new Set(
validRegions.map((region) => region.toLowerCase())
);

// prettier config thrashes here
// prettier-ignore
/**
* Validates regions. This ensures that region is present and
* contains a valid value.
*
* Returns null if valid, or returns details to build an error
* if invalid.
* @param region
*/
const isValidRegion: ValidatorFunction = (region?: string) =>
!validRegionsSet.has(region?.toLowerCase?.())
? {
propertyName: 'region',
errorDetail: `Region must be provided. Valid regions include ${JSON.stringify(validRegions)}`,
}
: null;

// prettier config thrashes here
// prettier-ignore
// returns details to build error response if invalid
Expand Down Expand Up @@ -174,7 +136,6 @@ export const validate = (
const errorDetails = [
isValidCount(query.count),
isValidLocale(query.locale),
isValidRegion(query.region),
].filter((ed) => ed !== null);

if (errorDetails.length > 0) {
Expand Down
4 changes: 2 additions & 2 deletions src/generated/openapi/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -155,11 +155,11 @@ export interface operations {
parameters: {
/** @description The number of items to return. */
/** @description This locale string is Fx domain language, and built from Fx expectations. Parameter values are not case sensitive. */
/** @description This region string is Fx domain language, and built from Fx expectations. Parameter values are not case sensitive. */
/** @description This region string is Fx domain language, and built from Fx expectations. Parameter values are not case sensitive. See [Firefox Home & New Tab Regional Differences](https://mozilla-hub.atlassian.net/wiki/spaces/FPS/pages/80448805/Regional+Differences). */
query: {
count?: number;
locale: "fr" | "fr-FR" | "es" | "es-ES" | "it" | "it-IT" | "en" | "en-CA" | "en-GB" | "en-US" | "de" | "de-DE" | "de-AT" | "de-CH";
region: "US" | "CA" | "DE" | "GB" | "IE" | "FR" | "ES" | "IT" | "IN" | "CH" | "AT" | "BE";
region?: string;
};
};
responses: {
Expand Down