Browse Source

Updated API "read" PHP file which processes GET requests for inventory data.

miguel.cruz15 2 years ago
parent
commit
a1fbe8781f
1 changed files with 99 additions and 0 deletions
  1. 99
    0
      api/inventario/read.php

+ 99
- 0
api/inventario/read.php View File

@@ -0,0 +1,99 @@
1
+<?php
2
+
3
+    // Headers:
4
+
5
+    header('Access-Control-Allow-Origin: *');
6
+    header('Content-Type: application/json');
7
+
8
+    include_once '../../config/Database.php';
9
+    include_once '../../models/Inventario.php';
10
+
11
+    // Conectarse a la base de datos:
12
+
13
+    $database = new Database();
14
+    $db = $database->connect();
15
+
16
+    // Crear instancia de inventario para obtener productos y comerciantes:
17
+
18
+    $inventario = new Inventario($db);
19
+
20
+    // Obtener datos del inventario:
21
+
22
+    $datos = $inventario->read();
23
+
24
+    // Contar filas de datos obtenidos:
25
+
26
+    $num = $datos->rowCount();
27
+
28
+    // Si la tabla solicitada no está vacía...
29
+
30
+    if ($num > 0) {
31
+
32
+      // Crear arreglo de datos:
33
+
34
+      $inventario_arr = array();
35
+      $inventario_arr['datos'] = array();
36
+
37
+      while($row = $datos->fetch(PDO::FETCH_ASSOC)) {
38
+        extract($row);
39
+
40
+        // Obtener insignias de cada comerciante:
41
+
42
+        $insignias = $inventario->insignias($id_comerciante);
43
+        $insignias_arr = array();
44
+        if ($insignias->rowCount() > 0) {
45
+
46
+          while($row = $insignias->fetch(PDO::FETCH_ASSOC)) {
47
+            extract($row);
48
+            array_push($insignias_arr, $id_insignia);
49
+          }
50
+        }
51
+
52
+        // Obtener foto de cada producto:
53
+
54
+        $imagen = $inventario->imagen($id_producto);
55
+        if ($imagen->rowCount() > 0) {
56
+          while($row = $imagen->fetch(PDO::FETCH_ASSOC)) {
57
+            extract($row);
58
+            $foto = $imagen_chunk1.$imagen_chunk2;
59
+          }
60
+        } else {
61
+          $foto = null;
62
+        }
63
+
64
+        // Obtener precio de cada producto:
65
+
66
+        $precio = $inventario->precio($id_producto);
67
+        if ($precio->rowCount() > 0) {
68
+          $precio2 = $precio;
69
+          while($row = $precio2->fetch(PDO::FETCH_ASSOC)) {
70
+            extract($row);
71
+          }
72
+        } else {
73
+          $precio = null;
74
+        }
75
+
76
+        // Añadir información ordenada de cada producto y su comerciante:
77
+
78
+        $producto = array(
79
+          'producto' => $nom_producto,
80
+          'comerciante' => $nom_comerciante,
81
+          'id_producto' => $id_producto,
82
+          'id_comerciante' => $id_comerciante,
83
+          'precio' => $precio,
84
+          'imagen' => $foto,
85
+          'insignias' => $insignias_arr
86
+        );
87
+
88
+        array_push($inventario_arr['datos'], $producto);
89
+      }
90
+
91
+      // Convertir a JSON y desplegar:
92
+
93
+      echo json_encode($inventario_arr);
94
+
95
+    } else {
96
+      echo json_encode(array('message' => 'No hay productos disponibles.'));
97
+    }
98
+
99
+?>