import { app, HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";
import { products } from "../shared/data.js";
interface GetProductByIdParams {
id: string;
}
/**
* GET /api/products/{id} - Get a single product by ID
*/
export async function getProductById(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
const productId = request.params.id;
context.log(`getProductById function processed a request for product: ${productId}`);
const product = products.find(p => p.id === productId);
if (!product) {
return {
status: 404,
jsonBody: {
success: false,
error: `Product with ID '${productId}' not found`
}
};
}
return {
status: 200,
jsonBody: {
success: true,
product
}
};
}
app.http("getProductById", {
methods: ["GET"],
authLevel: "function",
route: "products/{id}",
handler: getProductById
});