fix: remove broken type filter from navigation API

The navigations collection has no top-level 'type' field — each tenant
has one document with mainMenu and footerMenu arrays. The previous
where[type][equals] query caused HTTP 400 on every call.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Martin Porwoll 2026-02-20 13:27:10 +00:00
parent c168832a12
commit a0eea9649d

View file

@ -1,5 +1,8 @@
/**
* Navigation API functions
*
* Each tenant has ONE navigation document with mainMenu (header) and footerMenu arrays.
* There is no top-level 'type' field access nav.mainMenu / nav.footerMenu directly.
*/
import type { Navigation } from '../types/collections'
import type { PaginatedResponse, CollectionQueryParams } from '../types/api'
@ -8,19 +11,19 @@ import type { PayloadClient } from './client'
export function createNavigationApi(client: PayloadClient) {
return {
/**
* Get navigation by type (header, footer, mobile, etc.)
* Get the navigation document for the current tenant.
* Returns a single document with `mainMenu` and `footerMenu` arrays.
*/
async getNavigation(type: string, options?: Pick<CollectionQueryParams, 'locale' | 'depth'>): Promise<Navigation | null> {
async getNavigation(options?: Pick<CollectionQueryParams, 'locale' | 'depth'>): Promise<Navigation | null> {
const result = await client.getCollection<Navigation>('navigations', {
...options,
where: { 'type][equals': type },
limit: 1,
})
return result.docs[0] ?? null
},
/**
* Get all navigations
* Get all navigations (multi-tenant admin usage)
*/
async getNavigations(options?: CollectionQueryParams): Promise<PaginatedResponse<Navigation>> {
return client.getCollection<Navigation>('navigations', options)