UNPKG

@websolutespa/payload-plugin-bowl

Version:

Bowl PayloadCms plugin of the BOM Repository

58 lines (57 loc) 2.38 kB
import { HttpStatus, getInt, getObject, getString } from '@websolutespa/payload-utils'; import { ResponseError, ResponseSuccess } from '@websolutespa/payload-utils/server'; import { options } from '../../options'; import { getPagination } from '../api/pagination.service'; import { sortCollection, whereCollection } from '../api/where.service'; import { getGlobalItems } from './collection.service'; export async function getLocale(req) { let locales = await getGlobalItems(req, options.slug.locale, 0); locales = locales.filter((x)=>x.isActive); return locales; } export const localeGet = { path: '/locale', method: 'get', handler: async (req)=>{ try { const { query = {} } = req; const { locale, where, sort, pagination, page, limit } = query; const response = await req.payload.find({ collection: options.slug.language, locale: locale, limit: 10000, user: req.user }); if (response.totalDocs === 0) { return Response.json({ message: 'Not Found' }, { status: HttpStatus.NOT_FOUND }); } const languages = response.docs; let items = await getLocale(req); items = items.map((item)=>{ const language = languages.find((x)=>x.id === item.id); // console.log('language', language); item.title = language ? language.name : undefined; return item; }); items = await whereCollection(items, getObject(where)); // items = await localizeCollection(items, ['title'], getString(locale)); items = await sortCollection(items, getString(sort)); if (pagination !== 'false') { const result = await getPagination(items, getInt(page), getInt(limit)); // console.log('result', result); return ResponseSuccess(result); } else { // console.log('items', items); return ResponseSuccess(items); } } catch (error) { console.error('RouteService.routeGet.error', error); return ResponseError(error); } } }; //# sourceMappingURL=locale.service.js.map