-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.php
55 lines (43 loc) · 1.89 KB
/
index.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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
require __DIR__.'/vendor/autoload.php';
use SWAPI\config\Router;
use SWAPI\controller\ProductController;
// Set custom error and exception handlers
set_error_handler('SWAPI\config\Handler::handleError');
set_exception_handler('SWAPI\config\Handler::handleException');
// Load ENV read lib
(Dotenv\Dotenv::createUnsafeImmutable(__DIR__))->load();
$router = new Router(getenv('BASE_PATH'));
$productController = new ProductController();
$router->addRoute('GET', '/product/list', function () use ($productController) {
return $productController->productList();
});
$router->addRoute('GET', '/product/get', function ($params) use ($productController) {
// sku from url query param ?sku=
$sku = $params['sku'] ?? null;
return $productController->getProduct($sku);
});
$router->addRoute('POST', '/product/saveApi', function () use ($productController) {
// data from body json payload
$data = json_decode(file_get_contents('php://input'), true);
return $productController->addProduct($data);
});
$router->addRoute('DELETE', '/product/delete', function ($params) use ($productController) {
// sku from url query param ?sku=
$sku = $params['sku'] ?? null;
// data from body json payload
$data = json_decode(file_get_contents('php://input'), true);
// overwrite if sku exists in body json payload
if (isset($data['sku'])) $sku = $data['sku'];
return $productController->deleteProduct($sku);
});
$router->addRoute('DELETE', '/product/massDelete', function ($params) use ($productController) {
// skus from url query param ?skus=
$skus = $params['skus'] ?? null;
// data from body json payload
$data = json_decode(file_get_contents('php://input'), true);
// overwrite if skus exists in body json payload
if (isset($data['skus'])) $skus = $data['skus'];
return $productController->massDeleteProduct($skus);
});
echo $router->handleRequest();