UNPKG

@websolutespa/payload-plugin-bowl-llm

Version:

LLM plugin for Bowl PayloadCms plugin

109 lines (108 loc) 3.29 kB
import { ResponseSuccess } from '@websolutespa/payload-utils/server'; import { options } from '../options'; import { errorHandler } from './error.handler'; export const appHandler = async (req)=>{ const { payload } = req; if (!payload) { throw { status: 500, message: 'Server Error: Cannot resolve payload' }; } const { query } = req; if (!query) { throw { status: 400, message: 'Bad Request: locale is missing' }; } const { locale } = query; if (!locale) { throw { status: 400, message: 'Bad Request: locale is missing' }; } if (!(typeof req.data === 'object')) { throw { status: 400, message: 'Bad Request: request body is missing or invalid' }; } const { appKey, apiKey, preview } = req.data; if (!appKey) { throw { status: 401, message: 'Unauthorized: appKey is missing' }; } if (!apiKey) { throw { status: 401, message: 'Unauthorized: apiKey is missing' }; } const defaultLocale = payload.config.localization ? payload.config.localization.defaultLocale : 'en'; const response = await payload.find({ collection: options.slug.llmApp, where: { 'settings.credentials.appKey': { equals: appKey }, 'settings.credentials.apiKey': { equals: apiKey }, ...preview ? { 'settings.credentials.previewEnabled': { equals: true } } : { isActive: { equals: true } } }, depth: 3, locale: locale, fallbackLocale: defaultLocale, showHiddenFields: true, pagination: false, overrideAccess: true }); if (!response.docs.length) { throw { status: 404, message: 'Not Found: application not found' }; } const app = response.docs[0]; const referrer = req.headers.get('referer') || req.headers.get('referer') || ''; const isReferrefAllowed = !referrer || app.settings.credentials.httpReferrers.reduce((p, c)=>{ return p || referrer.indexOf(c.referrer) !== -1; }, false); if (!isReferrefAllowed) { // referrer http://localhost:4000/bowl/admin/llm-test console.log('referrer', `[${referrer}]`, app.settings.credentials.httpReferrers); throw { status: 401, message: `Unauthorized: referrer is not allowed [${referrer}]` }; } return app; }; export const llmAppsHandler = async (req)=>{ try { const { payload } = req; // get all the llmApps (both enabled and disabled) associated with the current user const response = await payload.find({ collection: options.slug.llmApp, pagination: false, req: req, overrideAccess: false }); return ResponseSuccess(response.docs); } catch (error) { return errorHandler(error); } }; //# sourceMappingURL=app.handler.js.map