/** * Site Management Tools */ import { getPayloadClient } from '../client.js'; export async function sitesListTool(args: any) { try { const client = await getPayloadClient(); const response = await client.sites.list({ page: args.page || 1, limit: args.limit || 10, }); return { success: true, data: response, message: `Retrieved ${response.docs?.length || 0} sites`, }; } catch (error: any) { throw new Error(`Failed to list sites: ${error.message}`); } } export async function sitesGetTool(args: any) { if (!args.id) { throw new Error('Site ID is required'); } try { const client = await getPayloadClient(); const site = await client.sites.retrieve(args.id); return { success: true, data: site, }; } catch (error: any) { if (error.status === 404) { throw new Error(`Site not found: ${args.id}`); } throw new Error(`Failed to get site: ${error.message}`); } } export async function sitesCreateTool(args: any) { if (!args.name) { throw new Error('Site name is required'); } try { const client = await getPayloadClient(); const site = await client.sites.create({ name: args.name, domain: args.domain, ...args.settings, }); return { success: true, data: site, message: `Site created: ${args.name}`, }; } catch (error: any) { throw new Error(`Failed to create site: ${error.message}`); } } export async function sitesUpdateTool(args: any) { if (!args.id) { throw new Error('Site ID is required'); } try { const client = await getPayloadClient(); const { id, ...updateData } = args; const site = await client.sites.update(id, updateData); return { success: true, data: site, message: `Site updated: ${id}`, }; } catch (error: any) { throw new Error(`Failed to update site: ${error.message}`); } } export async function sitesDeleteTool(args: any) { if (!args.id) { throw new Error('Site ID is required'); } try { const client = await getPayloadClient(); await client.sites.delete(args.id); return { success: true, message: `Site deleted: ${args.id}`, }; } catch (error: any) { throw new Error(`Failed to delete site: ${error.message}`); } }