-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPackagesController.php
More file actions
112 lines (98 loc) · 3.13 KB
/
Copy pathPackagesController.php
File metadata and controls
112 lines (98 loc) · 3.13 KB
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?php
/**
* Created by PhpStorm.
* @author Valentin Ruskevych <leaderpvp@gmail.com>
*/
namespace Controllers;
use Core\AbstractController;
use Core\Http\Response;
use Models\Packages;
class PackagesController extends AbstractController
{
/**
* @desc REST GET Method.
*/
public function showAction() : Response {
$id = $this->getRequest()->getGetParameters()['id'] ?? null;
$model = new Packages();
$packages = $model->getPackages($id);
$response = $this->makeResponse()->setJsonResponseType()->setSuccess();
if ( empty( $packages ) ) {
$response->setContent([]);
} else {
$response->setContent($packages);
}
return $response;
}
/**
* @desc Action to generate package offers files.
* @return Response
*/
public function generatePackagesFilesAction() : Response {
$model = new Packages();
$result = $model->generatePackagesAsFiles();
$response = $this->makeResponse()->setJsonResponseType();
if ( $result === false ) {
$response->setFailure()
->setContent('something wrong');
} else {
$response->setSuccess()
->setContent($result);
}
return $response;
}
/**
* @desc Action to get packages as key=>value (id,name) for drop downs.
* @return Response
*/
public function getKeyValuePackagesAction() : Response {
$model = new Packages();
$packages = $model->getPackagesAsKeyValue();
$response = $this->makeResponse()->setJsonResponseType()->setSuccess();
if ( empty( $packages ) ) {
$response->setContent([]);
} else {
$response->setContent($packages);
}
return $response;
}
/**
* @desc REST DELETE Method.
* @return Response
*/
public function removeAction() : Response {
$id = $this->getRequest()->getGetParameters()['id'] ?? null;
$response = $this->makeResponse()->setJsonResponseType();
$model = new Packages();
if (!$model->remove($id)) {
return $response->setContent('Could not remove supplied package')->setFailure();
}
return $response->setSuccess()->setContent([]);
}
/**
* @desc REST POST method
* @return Response
*/
public function createAction() : Response {
$data = $this->getRequest()->getPostParameters();
$model = new Packages();
$response = $this->makeResponse()->setJsonResponseType()->setContent([]);
if (!$model->create($data)) {
return $response->setFailure();
}
return $response->setSuccess();
}
/**
* @desc REST POST method
* @return Response
*/
public function updateAction() : Response {
$data = $this->getRequest()->getPostParameters();
$model = new Packages();
$response = $this->makeResponse()->setJsonResponseType()->setContent([]);
if (!$model->update($data)) {
return $response->setFailure();
}
return $response->setSuccess();
}
}