diff --git a/api/routes/food.php b/api/routes/food.php index ba74c4a..3e47aa6 100644 --- a/api/routes/food.php +++ b/api/routes/food.php @@ -83,4 +83,104 @@ } $response = $response->withJSON($response_json); return $response; +}); + + +/** + * GET a Food By ID + * @param int limit + * @param int offset + */ +$app->get('/food/{id}', function( $request, $response ) { + $q = new FoodQuery(); + $id = $request->getAttribute('id'); + $food = $q::create() + ->useRankQuery() + ->endUse() + ->useCategoryQuery() + ->endUse() + ->findPK(intval($id)); + if ( $food ) { + $rank = $food->getRank(); + $category = $food->getCategory(); + $response_json = [ + "status" => [ + "code" => $response->getStatusCode(), + "message" => "OK" + ], + "data" => [ + "id" => $food->getId(), + "name" => $food->getName(), + "barcode" => $food->getBarcode(), + "rank" => [ + "id" => $food->getRankId(), + "name" => $rank->getName() + ], + "category" => [ + "id" => $food->getCategoryId(), + "name" => $category->getName() + ] + ] + ]; + } else { + $response_json = [ + "status" => [ + "code" => $response->getStatusCode(), + "message" => "OK" + ], + "data" => [] + ]; + } + $response = $response->withJSON($response_json); + return $response; +}); + +/** + * GET a Food By ID + * @param int limit + * @param int offset + */ +$app->get('/food/barcode/{barcode}', function( $request, $response ) { + $q = new FoodQuery(); + $barcode = $request->getAttribute('barcode'); + $food = $q::create() + ->useRankQuery() + ->endUse() + ->useCategoryQuery() + ->endUse() + ->filterByBarcode($barcode) + ->findOne(); + if ( $food ) { + $rank = $food->getRank(); + $category = $food->getCategory(); + $response_json = [ + "status" => [ + "code" => $response->getStatusCode(), + "message" => "OK" + ], + "data" => [ + "id" => $food->getId(), + "name" => $food->getName(), + "barcode" => $food->getBarcode(), + "rank" => [ + "id" => $food->getRankId(), + "name" => $rank->getName() + ], + "category" => [ + "id" => $food->getCategoryId(), + "name" => $category->getName() + ] + ] + ]; + } else { + $response_json = [ + "status" => [ + "code" => $response->getStatusCode(), + "message" => "OK" + ], + "data" => [] + ]; + } + $response = $response->withJSON($response_json); + return $response; }); \ No newline at end of file