- Crear modelo Printer con campos: id, name, host, deviceId, timeout, isDefault - Almacenamiento persistente en data/printers.json - APIs CRUD: GET/POST /api/printers, GET/PUT/DELETE /api/printers/:id - API para seleccionar impresora activa: POST /api/printers/select - Endpoint de impresión ahora usa la impresora seleccionada o la especificada por printerId - Composable usePrinters() para el cliente - UI: Selector de impresora en sidebar, tab Impresoras en mobile - Componentes: PrintersList, PrintersCard, PrintersForm, PrintersSelector
42 lines
788 B
TypeScript
42 lines
788 B
TypeScript
// POST /api/printers - Crear nueva impresora
|
|
import { createPrinter } from '../../utils/printers'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
try {
|
|
const body = await readBody(event)
|
|
|
|
const { name, host, deviceId, timeout, isDefault } = body as {
|
|
name: string
|
|
host: string
|
|
deviceId: string
|
|
timeout?: number
|
|
isDefault?: boolean
|
|
}
|
|
|
|
if (!name || !host || !deviceId) {
|
|
return {
|
|
ok: false,
|
|
error: 'name, host y deviceId son requeridos'
|
|
}
|
|
}
|
|
|
|
const printer = await createPrinter({
|
|
name,
|
|
host,
|
|
deviceId,
|
|
timeout,
|
|
isDefault
|
|
})
|
|
|
|
return {
|
|
ok: true,
|
|
printer
|
|
}
|
|
} catch (err: any) {
|
|
return {
|
|
ok: false,
|
|
error: err.message
|
|
}
|
|
}
|
|
})
|