Skip to content

Commit dd5af67

Browse files
author
jelic98
committed
Initial commit
0 parents  commit dd5af67

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+6069
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/vendor
2+
.env

app/Console/Commands/.gitkeep

Whitespace-only changes.

app/Console/Kernel.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
namespace App\Console;
4+
5+
use Illuminate\Console\Scheduling\Schedule;
6+
use Laravel\Lumen\Console\Kernel as ConsoleKernel;
7+
8+
class Kernel extends ConsoleKernel
9+
{
10+
/**
11+
* The Artisan commands provided by your application.
12+
*
13+
* @var array
14+
*/
15+
protected $commands = [
16+
//
17+
];
18+
19+
/**
20+
* Define the application's command schedule.
21+
*
22+
* @param \Illuminate\Console\Scheduling\Schedule $schedule
23+
* @return void
24+
*/
25+
protected function schedule(Schedule $schedule)
26+
{
27+
//
28+
}
29+
}

app/Events/Event.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
namespace App\Events;
4+
5+
use Illuminate\Queue\SerializesModels;
6+
7+
abstract class Event
8+
{
9+
use SerializesModels;
10+
}

app/Events/ExampleEvent.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
namespace App\Events;
4+
5+
class ExampleEvent extends Event
6+
{
7+
/**
8+
* Create a new event instance.
9+
*
10+
* @return void
11+
*/
12+
public function __construct()
13+
{
14+
//
15+
}
16+
}

app/Exceptions/Handler.php

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<?php
2+
3+
namespace App\Exceptions;
4+
5+
use Exception;
6+
use Illuminate\Http\JsonResponse;
7+
use Illuminate\Validation\ValidationException;
8+
use Illuminate\Auth\Access\AuthorizationException;
9+
use Illuminate\Database\Eloquent\ModelNotFoundException;
10+
use Symfony\Component\HttpKernel\Exception\HttpException;
11+
use Laravel\Lumen\Exceptions\Handler as ExceptionHandler;
12+
13+
class Handler extends ExceptionHandler
14+
{
15+
/**
16+
* Report or log an exception.
17+
*
18+
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
19+
*
20+
* @param \Exception $e
21+
* @return void
22+
*/
23+
public function report(Exception $e)
24+
{
25+
parent::report($e);
26+
}
27+
28+
/**
29+
* Render an exception into an HTTP response.
30+
*
31+
* @param \Illuminate\Http\Request $request
32+
* @param \Exception $e
33+
* @return \Illuminate\Http\Response
34+
*/
35+
public function render($request, Exception $e) {
36+
if($request->wantsJson() && !($e instanceof ValidationException)) {
37+
if(is_object($e)) {
38+
$e = substr(strrchr(get_class($e), "\\"), 1);
39+
}
40+
41+
return response()->json([
42+
'code' => method_exists($e, 'getStatusCode') ? $e->getStatusCode() : 500,
43+
'message' => empty($e) ? 'Server error' : $e
44+
]);
45+
}
46+
47+
return parent::render($request, $e);
48+
}
49+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<?php
2+
3+
namespace App\Http\Controllers;
4+
5+
use App\School;
6+
use App\Subject;
7+
use App\Level;
8+
use App\Http\Controllers\Controller;
9+
use Illuminate\Http\Request;
10+
11+
class ConstantsController extends Controller {
12+
13+
public function schools() {
14+
return response()->json(School::with('level')->get());
15+
}
16+
17+
public function addSchool(Request $request) {
18+
$this->validate($request, [
19+
'name' => 'required',
20+
'city' => 'required',
21+
'level' => 'required'
22+
]);
23+
24+
if(School::where('name', $request['name'])
25+
->where('city', $request['city'])
26+
->where('level', $request['level'])
27+
->first()) {
28+
return MyResponse::show('School already exists', 400);
29+
}
30+
31+
return response()->json(School::create($request->all()));
32+
}
33+
34+
public function subjects() {
35+
return response()->json(Subject::all());
36+
}
37+
38+
public function addSubject(Request $request) {
39+
$this->validate($request, [
40+
'name' => 'required'
41+
]);
42+
43+
if(Subject::where('name', $request['name'])
44+
->first()) {
45+
return MyResponse::show('Subject already exists', 400);
46+
}
47+
48+
return response()->json(Subject::create($request->all()));
49+
}
50+
51+
public function levels() {
52+
return response()->json(Level::all());
53+
}
54+
}
55+
?>

app/Http/Controllers/Controller.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
namespace App\Http\Controllers;
4+
5+
use Laravel\Lumen\Routing\Controller as BaseController;
6+
7+
class Controller extends BaseController
8+
{
9+
//
10+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
namespace App\Http\Controllers;
4+
5+
use App\Login;
6+
use App\Http\Controllers\Controller;
7+
use Illuminate\Http\Request;
8+
9+
class LoginsController extends Controller {
10+
11+
public function all() {
12+
return response()->json(Login::all());
13+
}
14+
}
15+
?>

app/Http/Controllers/MyResponse.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
namespace App\Http\Controllers;
4+
5+
use Illuminate\Http\JsonResponse;
6+
7+
class MyResponse {
8+
9+
public static function show($message = 'Error has occured', $code = 400) {
10+
if(is_object($message)) {
11+
$message = $message->toArray();
12+
}
13+
14+
$data = [
15+
'code' => $code,
16+
'message' => $message
17+
];
18+
19+
return new JsonResponse($data, 200, [], 0);
20+
}
21+
}
22+
?>

0 commit comments

Comments
 (0)