getProductByIdHandler function
Future<CallToolResult>
getProductByIdHandler(
- Map<String, dynamic> args,
- dynamic extra
)
Implementation
Future<CallToolResult> getProductByIdHandler(
Map<String, dynamic> args,
dynamic extra,
) async {
final id = args['id'] as String?;
if (id == null) {
return CallToolResult(
isError: true,
content: [TextContent(text: "Missing 'id' argument")],
);
}
if (!dbRunning) {
return CallToolResult(
isError: true,
content: [TextContent(text: "Inventory database is not running.")],
);
}
try {
final doc = await Firestore.instance
.collection("inventory")
.document(id)
.get();
final product = Product.fromFirestore(doc);
return CallToolResult(
content: [TextContent(text: jsonEncode(product.toJson()))],
);
} catch (e) {
log("Product not found or error: $e", isError: true);
return CallToolResult(
isError: true,
content: [TextContent(text: "Product not found or error: $e")],
);
}
}