-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapi.php
34 lines (28 loc) · 1.14 KB
/
api.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
require_once 'php/Interfaces/BeverageCollectionInterface.php';
require_once 'php/Collection/BeverageCollection.php';
require_once 'php/Data/DataReader.php';
require_once 'php/Entity/Beverage.php';
require_once 'php/Builder/BeverageCollectionBuilder.php';
use php\Builder\BeverageCollectionBuilder;
use php\Entity\Beverage;
if (!empty($_REQUEST['action'])) {
$action = $_REQUEST['action'];
$id = (!empty($_REQUEST['id'])) ? (int) $_REQUEST['id'] : '';
$builder = new BeverageCollectionBuilder();
$collection = $builder->build("php/Data/beverages.csv");
if ($action === 'list') {
echo $collection->jsonSerialize();
} elseif ($action === 'get') {
$beverage = $collection->findById($id);
if ($beverage instanceof Beverage) {
echo json_encode(['status' => 'success', 'data' => $beverage->toArray()]);
} else {
echo json_encode(['status' => 'error', 'msg' => 'Beverage was not found']);
}
} else {
echo json_encode(['status' => 'error', 'msg' => 'Action not found']);
}
} else {
echo json_encode(['status' => 'error', 'msg' => 'Missing action parameter']);
}