summaryrefslogtreecommitdiffstats
path: root/ru/kolo
diff options
context:
space:
mode:
authorsijanec <sijanecantonluka@gmail.com>2020-12-23 09:08:34 +0100
committersijanec <sijanecantonluka@gmail.com>2020-12-23 09:08:34 +0100
commit182d22faa585b2c8793213905a7d9df7e0675ea6 (patch)
tree5fd587d28dacd7d280347ace05cb7999d485985d /ru/kolo
parentadvent 8 (diff)
parentdodan list z arabci (diff)
downloadsola-gimb-2-182d22faa585b2c8793213905a7d9df7e0675ea6.tar
sola-gimb-2-182d22faa585b2c8793213905a7d9df7e0675ea6.tar.gz
sola-gimb-2-182d22faa585b2c8793213905a7d9df7e0675ea6.tar.bz2
sola-gimb-2-182d22faa585b2c8793213905a7d9df7e0675ea6.tar.lz
sola-gimb-2-182d22faa585b2c8793213905a7d9df7e0675ea6.tar.xz
sola-gimb-2-182d22faa585b2c8793213905a7d9df7e0675ea6.tar.zst
sola-gimb-2-182d22faa585b2c8793213905a7d9df7e0675ea6.zip
Diffstat (limited to 'ru/kolo')
-rw-r--r--ru/kolo/api.php163
1 files changed, 163 insertions, 0 deletions
diff --git a/ru/kolo/api.php b/ru/kolo/api.php
new file mode 100644
index 0000000..64dd35c
--- /dev/null
+++ b/ru/kolo/api.php
@@ -0,0 +1,163 @@
+<?php
+
+ $dbuser = "kolo";
+ $dbhost = "localhost";
+ $dbdb = "kolo";
+ $dbpw = "kolo";
+ $conn = new mysqli($dbhost, $dbuser, $dbpw, $dbdb);
+ header("Content-Type: application/json");
+ if ($conn->connect_error) {
+ http_response_code(500);
+ exit('{"napaka":true,"obvestilo":"Napaka strežnika pri povezavi v podatkovno zbirko."}');
+ }
+ $query = "CREATE TABLE IF NOT EXISTS kolesa (
+ omogoceno INT,
+ ime VARCHAR(420),
+ admin VARCHAR(420)
+ );
+ CREATE TABLE IF NOT EXISTS ljudje (
+ ime VARCHAR(420) PRIMARY KEY,
+ izbranec VARCHAR(420),
+ kolo VARCHAR(420),
+ krneki VARCHAR(420)
+ )";
+ $result = $conn->query($query);
+ var_dump($result);
+ var_dump($conn->error);
+ if (empty($_REQUEST['k'])) {
+ http_response_code(400);
+ exit ('{"napaka":true,"obvestilo":"Ne vem, na katero kolo se sklicuješ, ker manjka parameter k."}');
+ }
+ switch ($_REQUEST['m']) {
+ case "r": /* registracija */
+ if (empty($_REQUEST['i'])) {
+ http_response_code(400);
+ exit ('{"napaka":true,"obvestilo":"Ne vem, kako ti je ime, ker manjka parameter i"}');
+ }
+ $stmt2 = $conn->prepare("SELECT omogoceno FROM `kolesa` WHERE `ime`=?");
+ $stmt2->bind_param("s", $_REQUEST["k"]);
+ $stmt2->execute();
+ $stmt2->bind_result($omogoceno);
+ $stmt2->fetch();
+ if ($omogoceno != 0) {
+ http_response_code(400);
+ exit ('{"napaka":true,"obvestilo":"Ne morem registrirati novih ljudi, ker se je vrtenje koles že začelo.}');
+ }
+ $stmt2->close();
+ $stmt = $conn->prepare("INSERT INTO ljudje (ime, kolo) VALUES (?, ?) ON DUPLICATE KEY UPDATE `krneki`='123'");
+ $stmt->bind_param("ss", $_REQUEST["i"], $_REQUEST["k"]);
+ $stmt->execute();
+ $stmt->close();
+ http_response_code(201);
+ exit ('{"napaka":false,"obvestilo":"Uporabnik registriran!"}');
+ break;
+ case "z": /* zakleni kolo, omogoči vrtenje, naključno razporedi osebe */
+ $stmt = $conn->prepare("SELECT admin FROM kolesa WHERE `ime`='?'");
+ $stmt->bind_param("s", $_REQUEST["k"]);
+ $stmt->execute();
+ $stmt->bind_result($admin_pass);
+ $stmt->fetch();
+ if ($_REQUEST['g'] !== $admin_pass) {
+ http_response_code(400);
+ exit ('{"napaka":true,"obvestilo":"Ne bom zaklenil tega kolesa, ker
+ niste administrator."}');
+ }
+ $stmt->close();
+ $stmt = $conn->prepare("UPDATE kolesa SET `omogoceno`=1 WHERE `ime` = '?'");
+ $stmt->bind_param("s", $_REQUEST["k"]);
+ $stmt->execute();
+ $stmt->close();
+ $stmt2 = $conn->prepare("SELECT ime FROM ljudje WHERE `kolo`=?");
+ $stmt2->bind_param("s", $_REQUEST["k"]);
+ $stmt2->execute();
+ $result = $stmt->get_result();
+ $ljudje = $result->fetch_all(MYSQLI_ASSOC);
+ $ljudje2 = $ljudje;
+ shuffle($ljudje);
+ for ($i = 0; $i < sizeof($ljudje);) {
+ if ($ljudje[$i] == $ljudje2[$i]) {
+ shuffle($ljudje);
+ $i = 0;
+ continue;
+ }
+ $i++;
+ }
+ $stmt3 = $conn->prepare("UPDATE ljudje SET `izbranec`=? WHERE `ime`=?");
+ for ($i = 0; $i < sizeof($ljudje); $i++) {
+ $stmt3->bind_param("ss", $ljudje[$i], $ljudje2[$i]);
+ $stmt3->execute();
+ }
+ $stmt3->close();
+ $stmt2->close();
+ http_response_code(200);
+ exit ('{"napaka":false,"obvestilo":"uspešno zaklenil kolo."}');
+ break;
+ case "u": /* srčni utrip */
+ $r = array();
+ $stmt2 = $conn->prepare("SELECT ime FROM ljudje WHERE `kolo`=?");
+ $stmt2->bind_param("s", $_REQUEST["k"]);
+ $stmt2->execute();
+ $result = $stmt->get_result();
+ $ljudje = $result->fetch_all(MYSQLI_ASSOC);
+ $r["moznosti_na_kolesu"] = $ljudje;
+ $stmt = $conn->prepare("SELECT admin FROM kolesa WHERE `ime`=?");
+ $stmt->bind_param("s", $_REQUEST["k"]);
+ $stmt->execute();
+ $stmt->bind_result($admin_pass);
+ $stmt->fetch();
+ if ($admin_pass === $_REQUEST["g"]) {
+ $r["si_administrator"] = true;
+ } else {
+ $r["si_administrator"] = false;
+ $r["si_administrator"] = false;
+ }
+ $stmt3 = $conn->prepare("SELECT omogoceno FROM `kolesa` WHERE `ime` = ?");
+ $stmt3->bind_param("s", $_REQUEST["k"]);
+ $stmt3->execute();
+ $stmt3->bind_result($omogoceno);
+ $stmt3->fetch();
+ if ($omogoceno !== 1) {
+ $r["dovoli_vrtenje"] = false;
+ } else {
+ $r["dovoli_vrtenje"] = true;
+ }
+ $r["napaka"] = false;
+ $stmt2->close();
+ $stmt->close();
+ $stmt3->close();
+ http_response_code(200);
+ exit (json_encode($r));
+ break;
+ case "v": /* vrti */
+ $stmt3 = $conn->prepare("SELECT omogoceno FROM `kolesa` WHERE `ime` = ?");
+ $stmt3->bind_param("s", $_REQUEST["k"]);
+ $stmt3->execute();
+ $stmt3->bind_result($omogoceno);
+ $stmt3->fetch();
+ if ($omogoceno !== 1 /* a je vrtenje nedovoljeno */) {
+ http_response_code(400);
+ exit ('{"napaka":true,"obvestilo":"Ne morem vrteti, ker vrtenja še ni odobril administrator"}');
+ }
+ if (empty($_REQUEST["i"])) {
+ http_response_code(400);
+ exit ('{"napaka":true,"obvestilo":"Ne morem vrteti, ker nimam vašega imena."}');
+ }
+ $stmt2 = $conn->prepare("SELECT izbranec FROM `ljudje` WHERE `ime` = ?");
+ $stmt2->bind_param("s", $_REQUEST["i"]);
+ $stmt2->execute();
+ $stmt2->bind_result($izbranec);
+ $stmt2->fetch();
+ $r["izbranec"] = $izbranec;
+ $r["napaka"] = false;
+ $stmt3->close();
+ $stmt2->close();
+ http_response_code(200);
+ exit(json_encode($r));
+ break;
+ default:
+ http_response_code(400);
+ exit ('{"napaka":true,"obvestilo":"Ne vem, kaj hočeš,. ker je bila zahtevana napačna metoda, parameter m."}');
+ break;
+ }
+
+?>