"use server"; import { serverFetchJson, serverFetchWithNoContent, } from "../../../utils/fetchUtil"; import { BASE_API_URL } from "../../../../config/api"; import { revalidateTag } from "next/cache"; import { PrinterResult } from "."; export interface PrinterInputs { name?: string; code?: string; type?: string; description?: string; ip?: string; port?: number; } export const fetchPrinterDetails = async (id: number) => { return serverFetchJson(`${BASE_API_URL}/printers/${id}`, { next: { tags: ["printers"] }, }); }; export const editPrinter = async (id: number, data: PrinterInputs) => { const result = await serverFetchWithNoContent(`${BASE_API_URL}/printers/${id}`, { method: "PUT", body: JSON.stringify(data), headers: { "Content-Type": "application/json" }, }); revalidateTag("printers"); return result; }; export const createPrinter = async (data: PrinterInputs) => { const result = await serverFetchWithNoContent(`${BASE_API_URL}/printers`, { method: "POST", body: JSON.stringify(data), headers: { "Content-Type": "application/json" }, }); revalidateTag("printers"); return result; }; export const deletePrinter = async (id: number) => { const result = await serverFetchWithNoContent(`${BASE_API_URL}/printers/${id}`, { method: "DELETE", headers: { "Content-Type": "application/json" }, }); revalidateTag("printers"); return result; };