FPSMS-frontend
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

47 rivejä
1.3 KiB

  1. "use server";
  2. import { ServerFetchError, serverFetchJson, serverFetchWithNoContent } from "@/app/utils/fetchUtil";
  3. import { revalidateTag } from "next/cache";
  4. import { BASE_API_URL } from "@/config/api";
  5. import { HTMLInputTypeAttribute } from "react";
  6. import { CreateItemResponse } from "../../utils";
  7. export type TypeInputs = {
  8. id: number;
  9. name: string
  10. }
  11. export type UomInputs = {
  12. uom: string
  13. }
  14. export type WeightUnitInputs = {
  15. weightUnit: string
  16. conversion: number
  17. }
  18. export type CreateItemInputs = {
  19. id?: string | number
  20. code: string;
  21. name: string;
  22. description?: string | undefined;
  23. remarks?: string | undefined;
  24. shelfLife?: Number | undefined;
  25. countryOfOrigin?: string | undefined;
  26. minHumid?: number | undefined;
  27. maxHumid?: number | undefined;
  28. minTemp?: number | undefined;
  29. maxTemp?: number | undefined;
  30. sampleRate?: number | undefined;
  31. passingRate?: number | undefined;
  32. netWeight: number;
  33. typeId: number;
  34. }
  35. export const saveItem = async (data: CreateItemInputs) => {
  36. // try {
  37. const item = await serverFetchJson<CreateItemResponse<CreateItemInputs>>(`${BASE_API_URL}/items/new`, {
  38. method: "POST",
  39. body: JSON.stringify(data),
  40. headers: { "Content-Type": "application/json" },
  41. });
  42. revalidateTag("items");
  43. return item
  44. };