diff --git a/src/auth/operations/local/forgotPassword.ts b/src/auth/operations/local/forgotPassword.ts index 612889267a..eafb8331f5 100644 --- a/src/auth/operations/local/forgotPassword.ts +++ b/src/auth/operations/local/forgotPassword.ts @@ -3,6 +3,7 @@ import forgotPassword, { Result } from '../forgotPassword'; import { Payload } from '../../..'; import { getDataLoader } from '../../../collections/dataloader'; import i18n from '../../../translations/init'; +import { APIError } from '../../../errors'; export type Options = { collection: string @@ -25,6 +26,10 @@ async function localForgotPassword(payload: Payload, options: Options): Promise< const collection = payload.collections[collectionSlug]; + if (!collection) { + throw new APIError(`The collection with slug ${collectionSlug} can't be found.`); + } + req.payloadAPI = 'local'; req.i18n = i18n(payload.config.i18n); diff --git a/src/auth/operations/local/login.ts b/src/auth/operations/local/login.ts index ef92235c08..f1921ea9ea 100644 --- a/src/auth/operations/local/login.ts +++ b/src/auth/operations/local/login.ts @@ -5,6 +5,7 @@ import { TypeWithID } from '../../../collections/config/types'; import { Payload } from '../../..'; import { getDataLoader } from '../../../collections/dataloader'; import i18n from '../../../translations/init'; +import { APIError } from '../../../errors'; export type Options = { collection: string @@ -21,7 +22,7 @@ export type Options = { showHiddenFields?: boolean } -async function localLogin(payload: Payload, options: Options): Promise { +async function localLogin(payload: Payload, options: Options): Promise { const { collection: collectionSlug, req = {} as PayloadRequest, @@ -36,6 +37,10 @@ async function localLogin(payload: Payload, options: const collection = payload.collections[collectionSlug]; + if (!collection) { + throw new APIError(`The collection with slug ${collectionSlug} can't be found.`); + } + req.payloadAPI = 'local'; req.payload = payload; req.i18n = i18n(payload.config.i18n); diff --git a/src/auth/operations/local/resetPassword.ts b/src/auth/operations/local/resetPassword.ts index 55f3541159..969850d9de 100644 --- a/src/auth/operations/local/resetPassword.ts +++ b/src/auth/operations/local/resetPassword.ts @@ -3,6 +3,7 @@ import resetPassword, { Result } from '../resetPassword'; import { PayloadRequest } from '../../../express/types'; import { getDataLoader } from '../../../collections/dataloader'; import i18n from '../../../translations/init'; +import { APIError } from '../../../errors'; export type Options = { collection: string @@ -24,6 +25,10 @@ async function localResetPassword(payload: Payload, options: Options): Promise const collection = payload.collections[collectionSlug]; + if (!collection) { + throw new APIError(`The collection with slug ${collectionSlug} can't be found.`); + } + req.payload = payload; req.payloadAPI = 'local'; req.i18n = i18n(payload.config.i18n); diff --git a/src/auth/operations/local/verifyEmail.ts b/src/auth/operations/local/verifyEmail.ts index 22228d5ac4..c4466bbc95 100644 --- a/src/auth/operations/local/verifyEmail.ts +++ b/src/auth/operations/local/verifyEmail.ts @@ -1,3 +1,4 @@ +import { APIError } from '../../../errors'; import { Payload } from '../../../index'; import verifyEmail from '../verifyEmail'; @@ -14,6 +15,10 @@ async function localVerifyEmail(payload: Payload, options: Options): Promise = { collection: string @@ -46,6 +47,10 @@ export default async function createLocal(payload: Payload, options: Op const collection = payload.collections[collectionSlug]; const defaultLocale = payload?.config?.localization ? payload?.config?.localization?.defaultLocale : null; + if (!collection) { + throw new APIError(`The collection with slug ${collectionSlug} can't be found.`); + } + req.payloadAPI = 'local'; req.locale = locale ?? req?.locale ?? defaultLocale; req.fallbackLocale = fallbackLocale ?? req?.fallbackLocale ?? defaultLocale; diff --git a/src/collections/operations/local/delete.ts b/src/collections/operations/local/delete.ts index 0b8a0188a8..386c1e797e 100644 --- a/src/collections/operations/local/delete.ts +++ b/src/collections/operations/local/delete.ts @@ -5,6 +5,7 @@ import { Payload } from '../../../index'; import deleteOperation from '../delete'; import { getDataLoader } from '../../dataloader'; import i18n from '../../../translations/init'; +import { APIError } from '../../../errors'; export type Options = { collection: string @@ -32,6 +33,11 @@ export default async function deleteLocal(payload: P const collection = payload.collections[collectionSlug]; const defaultLocale = payload?.config?.localization ? payload?.config?.localization?.defaultLocale : null; + + if (!collection) { + throw new APIError(`The collection with slug ${collectionSlug} can't be found.`); + } + const req = { user, payloadAPI: 'local', diff --git a/src/collections/operations/local/find.ts b/src/collections/operations/local/find.ts index 342a91dcb6..cea2105c98 100644 --- a/src/collections/operations/local/find.ts +++ b/src/collections/operations/local/find.ts @@ -6,6 +6,7 @@ import { PayloadRequest } from '../../../express/types'; import find from '../find'; import { getDataLoader } from '../../dataloader'; import i18n from '../../../translations/init'; +import { APIError } from '../../../errors'; export type Options = { collection: string @@ -50,6 +51,10 @@ export default async function findLocal(payload: Pay const collection = payload.collections[collectionSlug]; const defaultLocale = payload?.config?.localization ? payload?.config?.localization?.defaultLocale : null; + if (!collection) { + throw new APIError(`The collection with slug ${collectionSlug} can't be found.`); + } + req.payloadAPI = 'local'; req.locale = locale ?? req?.locale ?? defaultLocale; req.fallbackLocale = fallbackLocale ?? req?.fallbackLocale ?? defaultLocale; diff --git a/src/collections/operations/local/findByID.ts b/src/collections/operations/local/findByID.ts index ba3addeb1d..9f013b041a 100644 --- a/src/collections/operations/local/findByID.ts +++ b/src/collections/operations/local/findByID.ts @@ -5,6 +5,7 @@ import findByID from '../findByID'; import { Payload } from '../../..'; import { getDataLoader } from '../../dataloader'; import i18n from '../../../translations/init'; +import { APIError } from '../../../errors'; export type Options = { collection: string @@ -41,6 +42,10 @@ export default async function findByIDLocal(payload: const collection = payload.collections[collectionSlug]; const defaultLocale = payload?.config?.localization ? payload?.config?.localization?.defaultLocale : null; + if (!collection) { + throw new APIError(`The collection with slug ${collectionSlug} can't be found.`); + } + req.payloadAPI = 'local'; req.locale = locale ?? req?.locale ?? defaultLocale; req.fallbackLocale = fallbackLocale ?? req?.fallbackLocale ?? defaultLocale; diff --git a/src/collections/operations/local/findVersionByID.ts b/src/collections/operations/local/findVersionByID.ts index 240ce53bd8..e19eba9dd0 100644 --- a/src/collections/operations/local/findVersionByID.ts +++ b/src/collections/operations/local/findVersionByID.ts @@ -5,6 +5,7 @@ import { TypeWithVersion } from '../../../versions/types'; import findVersionByID from '../findVersionByID'; import { getDataLoader } from '../../dataloader'; import i18n from '../../../translations/init'; +import { APIError } from '../../../errors'; export type Options = { collection: string @@ -35,6 +36,10 @@ export default async function findVersionByIDLocal const collection = payload.collections[collectionSlug]; const defaultLocale = payload?.config?.localization ? payload?.config?.localization?.defaultLocale : null; + if (!collection) { + throw new APIError(`The collection with slug ${collectionSlug} can't be found.`); + } + req.payloadAPI = 'local'; req.locale = locale ?? req?.locale ?? defaultLocale; req.fallbackLocale = fallbackLocale ?? req?.fallbackLocale ?? defaultLocale; diff --git a/src/collections/operations/local/findVersions.ts b/src/collections/operations/local/findVersions.ts index 6d833cf976..e7f1000218 100644 --- a/src/collections/operations/local/findVersions.ts +++ b/src/collections/operations/local/findVersions.ts @@ -6,6 +6,7 @@ import { PayloadRequest } from '../../../express/types'; import findVersions from '../findVersions'; import { getDataLoader } from '../../dataloader'; import i18nInit from '../../../translations/init'; +import { APIError } from '../../../errors'; export type Options = { collection: string @@ -39,6 +40,10 @@ export default async function findVersionsLocal = a const collection = payload.collections[collectionSlug]; const defaultLocale = payload?.config?.localization ? payload?.config?.localization?.defaultLocale : null; + if (!collection) { + throw new APIError(`The collection with slug ${collectionSlug} can't be found.`); + } + const i18n = i18nInit(payload.config.i18n); const req = { user, diff --git a/src/collections/operations/local/restoreVersion.ts b/src/collections/operations/local/restoreVersion.ts index f016468740..67d3ee6bbc 100644 --- a/src/collections/operations/local/restoreVersion.ts +++ b/src/collections/operations/local/restoreVersion.ts @@ -5,6 +5,7 @@ import { TypeWithVersion } from '../../../versions/types'; import { getDataLoader } from '../../dataloader'; import restoreVersion from '../restoreVersion'; import i18nInit from '../../../translations/init'; +import { APIError } from '../../../errors'; export type Options = { collection: string @@ -30,6 +31,11 @@ export default async function restoreVersionLocal = } = options; const collection = payload.collections[collectionSlug]; + + if (!collection) { + throw new APIError(`The collection with slug ${collectionSlug} can't be found.`); + } + const i18n = i18nInit(payload.config.i18n); const req = { user, diff --git a/src/collections/operations/local/update.ts b/src/collections/operations/local/update.ts index 57fd71a7ff..a4e86c80b6 100644 --- a/src/collections/operations/local/update.ts +++ b/src/collections/operations/local/update.ts @@ -6,6 +6,7 @@ import { PayloadRequest } from '../../../express/types'; import { getDataLoader } from '../../dataloader'; import { File } from '../../../uploads/types'; import i18nInit from '../../../translations/init'; +import { APIError } from '../../../errors'; export type Options = { collection: string @@ -43,6 +44,11 @@ export default async function updateLocal(payload: Payload, options: Op } = options; const collection = payload.collections[collectionSlug]; + + if (!collection) { + throw new APIError(`The collection with slug ${collectionSlug} can't be found.`); + } + const i18n = i18nInit(payload.config.i18n); const defaultLocale = payload.config.localization ? payload.config.localization?.defaultLocale : null; diff --git a/src/globals/operations/local/findOne.ts b/src/globals/operations/local/findOne.ts index 8d9f04cab7..60f9d196e6 100644 --- a/src/globals/operations/local/findOne.ts +++ b/src/globals/operations/local/findOne.ts @@ -5,6 +5,7 @@ import { Document } from '../../../types'; import { TypeWithID } from '../../config/types'; import findOne from '../findOne'; import i18nInit from '../../../translations/init'; +import { APIError } from '../../../errors'; export type Options = { slug: string @@ -32,6 +33,11 @@ export default async function findOneLocal(payload: const globalConfig = payload.globals.config.find((config) => config.slug === globalSlug); const i18n = i18nInit(payload.config.i18n); + + if (!globalConfig) { + throw new APIError(`The global with slug ${globalSlug} can't be found.`); + } + const req = { user, payloadAPI: 'local', diff --git a/src/globals/operations/local/findVersionByID.ts b/src/globals/operations/local/findVersionByID.ts index 8d9cf748a2..6e14dd948e 100644 --- a/src/globals/operations/local/findVersionByID.ts +++ b/src/globals/operations/local/findVersionByID.ts @@ -5,6 +5,7 @@ import { Document } from '../../../types'; import { TypeWithVersion } from '../../../versions/types'; import findVersionByID from '../findVersionByID'; import i18nInit from '../../../translations/init'; +import { APIError } from '../../../errors'; export type Options = { slug: string @@ -34,6 +35,10 @@ export default async function findVersionByIDLocal const globalConfig = payload.globals.config.find((config) => config.slug === globalSlug); const i18n = i18nInit(payload.config.i18n); + if (!globalConfig) { + throw new APIError(`The global with slug ${globalSlug} can't be found.`); + } + const req = { user, payloadAPI: 'local', diff --git a/src/globals/operations/local/findVersions.ts b/src/globals/operations/local/findVersions.ts index 321b153173..b53f334ddf 100644 --- a/src/globals/operations/local/findVersions.ts +++ b/src/globals/operations/local/findVersions.ts @@ -6,6 +6,7 @@ import { PayloadRequest } from '../../../express/types'; import findVersions from '../findVersions'; import { getDataLoader } from '../../../collections/dataloader'; import i18nInit from '../../../translations/init'; +import { APIError } from '../../../errors'; export type Options = { slug: string @@ -39,6 +40,10 @@ export default async function findVersionsLocal = a const globalConfig = payload.globals.config.find((config) => config.slug === globalSlug); const i18n = i18nInit(payload.config.i18n); + if (!globalConfig) { + throw new APIError(`The global with slug ${globalSlug} can't be found.`); + } + const req = { user, payloadAPI: 'local', diff --git a/src/globals/operations/local/restoreVersion.ts b/src/globals/operations/local/restoreVersion.ts index 97a83bd03e..4bd185d578 100644 --- a/src/globals/operations/local/restoreVersion.ts +++ b/src/globals/operations/local/restoreVersion.ts @@ -5,6 +5,7 @@ import { Document } from '../../../types'; import { TypeWithVersion } from '../../../versions/types'; import restoreVersion from '../restoreVersion'; import i18nInit from '../../../translations/init'; +import { APIError } from '../../../errors'; export type Options = { slug: string @@ -32,6 +33,10 @@ export default async function restoreVersionLocal = const globalConfig = payload.globals.config.find((config) => config.slug === globalSlug); const i18n = i18nInit(payload.config.i18n); + if (!globalConfig) { + throw new APIError(`The global with slug ${globalSlug} can't be found.`); + } + const req = { user, payloadAPI: 'local', diff --git a/src/globals/operations/local/update.ts b/src/globals/operations/local/update.ts index 264235f1b9..169f7d74c1 100644 --- a/src/globals/operations/local/update.ts +++ b/src/globals/operations/local/update.ts @@ -5,6 +5,7 @@ import { TypeWithID } from '../../config/types'; import update from '../update'; import { getDataLoader } from '../../../collections/dataloader'; import i18nInit from '../../../translations/init'; +import { APIError } from '../../../errors'; export type Options = { slug: string @@ -34,6 +35,10 @@ export default async function updateLocal(payload: P const globalConfig = payload.globals.config.find((config) => config.slug === globalSlug); const i18n = i18nInit(payload.config.i18n); + if (!globalConfig) { + throw new APIError(`The global with slug ${globalSlug} can't be found.`); + } + const req = { user, payloadAPI: 'local',