46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
|
|
"use server";
|
|
|
|
import { executeHttpRequest } from "@sap-cloud-sdk/http-client";
|
|
|
|
export type Item = {
|
|
ItemCode: string;
|
|
ItemName: string;
|
|
};
|
|
|
|
export async function getItems(): Promise<{ items: Item[]; error: string }> {
|
|
try {
|
|
const response = await executeHttpRequest(
|
|
{ destinationName: "SAP4SL" },
|
|
{ method: "GET", url: "/b1s/v2/Items" },
|
|
);
|
|
|
|
return { items: response.data.value || [], error: "" };
|
|
} catch (error) {
|
|
console.error(error);
|
|
return {
|
|
items: [],
|
|
error: "items_request_failed",
|
|
};
|
|
}
|
|
}
|
|
|
|
export async function searchItems(query: string): Promise<{ items: Item[]; error: string }> {
|
|
const escapedQuery = query.replaceAll("'", "''");
|
|
|
|
try {
|
|
const response = await executeHttpRequest(
|
|
{ destinationName: "SAP4SL" },
|
|
{ method: "GET", url: `/b1s/v2/Items?$filter=contains(ItemName,'${escapedQuery}')` },
|
|
);
|
|
|
|
return { items: response.data.value || [], error: "" };
|
|
} catch (error) {
|
|
console.error(error);
|
|
return {
|
|
items: [],
|
|
error: "items_request_failed",
|
|
};
|
|
}
|
|
}
|