diff --git a/api/index.php b/api/index.php index 2dc475c..7475b8e 100644 --- a/api/index.php +++ b/api/index.php @@ -1,5 +1,5 @@ add('', __DIR__ . '/generated-classes/'); // Propel ORM Classes require './generated-conf/config.php'; // Propel Config diff --git a/api/routes/category.php b/api/routes/category.php index cb5856e..1122017 100644 --- a/api/routes/category.php +++ b/api/routes/category.php @@ -7,6 +7,11 @@ $app->get('/category/all', function( $request, $response ) { $q = new CategoryQuery; $cats = $q::create()->find(); + + + + + $response_json = [ "status" => [ "code" => $response->getStatusCode(), @@ -15,9 +20,25 @@ "data" => [] ]; foreach( $cats as $cat ) { + + $q = new CategoryRankNutrientQuery; + $requestedCatRules = $q->filterByCategoryId($cat->getId())->find(); + foreach($requestedCatRules as $rule) { + $rules[] = [ + "nutrientName" => $rule->getNutrient()->getName(), + "nutrientId" => $rule->getNutrient()->getId(), + "operator" => $rule->getOperator(), + "threshold" => $rule->getThreshold(), + "units" => $rule->getUnits(), + "rank" => $rule->getRankId() + ]; + } + + $response_json["data"][] = [ "id" => $cat->getId(), - "name" => $cat->getName() + "name" => $cat->getName(), + "rules" => $rules ]; } $response = $response->withJSON($response_json); diff --git a/api/routes/rules.php b/api/routes/rules.php index f18979a..0b81736 100644 --- a/api/routes/rules.php +++ b/api/routes/rules.php @@ -48,7 +48,59 @@ $newRule->setRankId($rank); $newRule->setNutrientId($nutrient); - $newRule->save(); + if($newRule->save()){ + $msg = "New Rule Saved"; + } else { + $msg = "There was an error saving this rule"; + } + + + + $response_json = [ + "status" => [ + "code" => $response->getStatusCode(), + "message" => [$msg] + ] + ]; + + $response = $response->withJSON($response_json); + return $response; + + +}); + +$app->post('/rules/updateRuleById/{ruleId}', function($request, $response) { + + $rule = CategoryRankNutrientQuery::create()->findPk($request->getAttribute("ruleId")); + + $cat = $request->getParam('catId'); + $nutrient = $request->getParam('nutrientId'); + + $rank = $request->getParam('rankId'); + + + $rule->setThreshold($request->getParam('threshold')); + $rule->setUnits($request->getParam('units')); + $rule->setOperator($request->getParam('operator')); + $rule->setCategoryId($cat); + $rule->setRankId($rank); + $rule->setNutrientId($nutrient); + + if($rule->save()){ + $msg = "Rule updated."; + } else { + $msg = "There was an error saving this rule"; + } + + + $response_json = [ + "status" => [ + "code" => $response->getStatusCode(), + "message" => [$msg] + ] + ]; + $response = $response->withJSON($response_json); + return $response; }); \ No newline at end of file