diff --git a/packages/payload/src/utilities/addLocalesToRequest.ts b/packages/payload/src/utilities/addLocalesToRequest.ts index 2a5651863f1..8345a94e319 100644 --- a/packages/payload/src/utilities/addLocalesToRequest.ts +++ b/packages/payload/src/utilities/addLocalesToRequest.ts @@ -69,7 +69,7 @@ export const sanitizeLocales = ({ }) } - if (locale === '*') { + if (['*', 'all'].includes(locale)) { locale = 'all' } else if (localization && !localization.localeCodes.includes(locale) && localization.fallback) { locale = localization.defaultLocale diff --git a/packages/payload/src/utilities/createPayloadRequest.ts b/packages/payload/src/utilities/createPayloadRequest.ts index 83955268dbd..6baf88c3131 100644 --- a/packages/payload/src/utilities/createPayloadRequest.ts +++ b/packages/payload/src/utilities/createPayloadRequest.ts @@ -78,11 +78,6 @@ export const createPayloadRequest = async ({ }) locale = locales.locale - - // Override if query params are present, in order to respect HTTP method override - if (query.locale) { - locale = query.locale as string - } } const customRequest: CustomPayloadRequestProperties = { diff --git a/test/localization/int.spec.ts b/test/localization/int.spec.ts index 91b99205726..628ac69ca2a 100644 --- a/test/localization/int.spec.ts +++ b/test/localization/int.spec.ts @@ -276,6 +276,34 @@ describe('Localization', () => { expect(localized.title.es).toEqual(spanishTitle) }) + it('REST all locales with all', async () => { + const response = await restClient.GET(`/${collection}/${localizedPost.id}`, { + query: { + locale: 'all', + }, + }) + + expect(response.status).toBe(200) + const localized = await response.json() + + expect(localized.title.en).toEqual(englishTitle) + expect(localized.title.es).toEqual(spanishTitle) + }) + + it('REST all locales with asterisk', async () => { + const response = await restClient.GET(`/${collection}/${localizedPost.id}`, { + query: { + locale: '*', + }, + }) + + expect(response.status).toBe(200) + const localized = await response.json() + + expect(localized.title.en).toEqual(englishTitle) + expect(localized.title.es).toEqual(spanishTitle) + }) + it('by localized field value - default locale', async () => { const result = await payload.find({ collection,