-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSubjectController.php
More file actions
105 lines (88 loc) · 2.72 KB
/
SubjectController.php
File metadata and controls
105 lines (88 loc) · 2.72 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
<?php
namespace App\Controllers;
use App\Models\Block;
use App\Models\Subject;
use Core\Http\Controllers\Controller;
use Core\Http\Request;
use Exception;
use function array_map;
use function is_null;
use function json_encode;
class SubjectController extends Controller
{
public function index(): void
{
$allSubjects = Subject::all();
$classRoomsArray = array_map(function ($subject) {
return [
'id' => $subject->id,
'name' => $subject->name,
'semester' => $subject->semester,
];
}, $allSubjects);
echo json_encode($classRoomsArray);
}
public function create(Request $request): void
{
$params = $request->getBody();
$subject = new Subject($params);
if ($subject->isValid()) {
if ($subject->save()) {
echo json_encode(['success' => 'Criado com sucesso']);
} else {
echo json_encode(['error' => 'Erro ao salvar']);
}
} else {
echo json_encode(['error' => 'Erro ao criar']);
}
}
public function show(Request $request): void
{
$params = $request->getParams();
$subject = Subject::findById($params['id']);
if (is_null($subject)) {
echo json_encode(['error' => 'sala não encontrado']);
return;
}
$response = [
'id' => $subject->id,
'name' => $subject->name,
'semester' => $subject->semester,
];
echo json_encode(['data' => $response]);
}
public function update(Request $request): void
{
$params = $request->getParams();
$body = $request->getBody();
$subject = Subject::findById($params['id']);
if (is_null($subject)) {
echo json_encode(['error' => 'bloco não encontrado']);
return;
}
$subject->name = $body['name'];
$subject->semester = $body['semester'];
$subject->save();
$subjectArray = [
'id' => $subject->id,
'name' => $subject->name,
'semester' => $subject->semester,
];
echo json_encode(['success' => $subjectArray]);
}
public function destroy(Request $request): void
{
try {
$params = $request->getParams();
$subject = Subject::findById($params['id']);
if (!$subject) {
echo json_encode(['error' => 'Bloco não encontrado']);
return;
}
$subject->destroy();
echo json_encode(['success' => 'Deletado com sucesso']);
} catch (Exception $e) {
echo json_encode(['error' => $e->getMessage()]);
}
}
}