This repository has been archived on 2025-06-18. You can view files and clone it, but cannot push or open issues or pull requests.
Files
skolavdf/wap/api-calc/src/math-api/utils.php
Dzejkobik007 a005226c96 Update
2023-01-04 09:15:07 +01:00

80 lines
2.1 KiB
PHP

<?php
function processData(Array $data) {
$op = ["add", "sub", "mul", "div"];
if(isset($data["operation"]) && in_array($data["operation"], $op)){
if(isset($data["numbers"])) {
$rawnums = explode(',', $data["numbers"]);
$num = [];
for($i = 0; $i < sizeof($rawnums); $i++) {
if (is_numeric($rawnums[$i])) {
array_push($num, floatval($rawnums[$i]));
}
}
if(sizeof($num) < 1) {
wrongDataError();
}
header('HTTP/1.1 200 OK');
switch($data["operation"]){
case "add":
$result = json_encode(array("status" => "OK", "result" => addNumbers($num)));
break;
case "sub":
$result = json_encode(array("status" => "OK", "result" => subNumbers($num)));
break;
case "mul":
$result = json_encode(array("status" => "OK", "result" => mulNumbers($num)));
break;
case "div":
$result = json_encode(array("status" => "OK", "result" => divNumbers($num)));
break;
}
return $result;
} else {
wrongDataError();
}
} else {
wrongDataError();
}
}
function addNumbers(Array $num){
$result = $num[0];
for ($i = 1; $i < sizeof($num);$i++) {
$result += $num[$i];
}
return $result;
}
function subNumbers(Array $num) {
$result = $num[0];
for ($i = 1; $i < sizeof($num);$i++) {
$result -= $num[$i];
}
return $result;
}
function mulNumbers(Array $num) {
$result = $num[0];
for ($i = 1; $i < sizeof($num);$i++) {
$result *= $num[$i];
}
return $result;
}
function divNumbers(Array $num) {
$result = $num[0];
for ($i = 1; $i < sizeof($num);$i++) {
$result /= $num[$i];
}
return $result;
}
function wrongDataError() {
header('HTTP/1.1 422 Unprocessable Entity');
echo json_encode(array("status" => "ERROR", "reason" => "Wrong Data"));
die();
}