@websolutespa/payload-plugin-bowl
Version:
Bowl PayloadCms plugin of the BOM Repository
58 lines (57 loc) • 2.38 kB
JavaScript
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