initial commit

This commit is contained in:
Behzad Babaei
2020-03-28 17:02:54 +04:30
commit 851454db11
39 changed files with 946 additions and 0 deletions
+11
View File
@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers;
use App\Traits\ApiResponse;
use Laravel\Lumen\Routing\Controller as BaseController;
class Controller extends BaseController
{
use ApiResponse;
}
+71
View File
@@ -0,0 +1,71 @@
<?php
namespace App\Http\Controllers;
use App\Order;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class OrderController extends Controller
{
public function index()
{
$orders = Order::all();
return $this->successResponse($orders);
}
public function show($order)
{
$order = Order::findOrFail($order);
return $this->successResponse($order);
}
public function store(Request $request)
{
$rules = [
'quantity' => 'required|numeric|min:1|max:100',
'product_id' => 'required|integer',
'total_price' => 'required|numeric|min:1',
'discount' => 'numeric'
];
$this->validate($request, $rules);
$order = Order::create($request->all());
return $this->successResponse($order);
}
public function update(Request $request, $order)
{
$rules = [
'quantity' => 'numeric|min:1|max:100',
'product_id' => 'integer',
'total_price' => 'numeric|min:1',
'discount' => 'numeric'
];
$this->validate($request, $rules);
$order = Order::findOrFail($order);
$order = $order->fill($request->all());
if ($order->isClean()) {
return $this->errorResponse('at least one value must be change',
Response::HTTP_UNPROCESSABLE_ENTITY);
}
$order->save();
return $this->successResponse($order);
}
public function destroy($order)
{
$order = Order::findOrFail($order);
$order->delete();
return $this->successResponse($order);
}
}
+44
View File
@@ -0,0 +1,44 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Contracts\Auth\Factory as Auth;
class Authenticate
{
/**
* The authentication guard factory instance.
*
* @var \Illuminate\Contracts\Auth\Factory
*/
protected $auth;
/**
* Create a new middleware instance.
*
* @param \Illuminate\Contracts\Auth\Factory $auth
* @return void
*/
public function __construct(Auth $auth)
{
$this->auth = $auth;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
if ($this->auth->guard($guard)->guest()) {
return response('Unauthorized.', 401);
}
return $next($request);
}
}
@@ -0,0 +1,27 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Response;
class AuthenticateAccess
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$allowedSecrets = explode(',', env('ALLOWED_SECRETS'));
if (in_array($request->header('Authorization'), $allowedSecrets)) {
return $next($request);
}
abort(Response::HTTP_UNAUTHORIZED);
}
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Middleware;
use Closure;
class ExampleMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
return $next($request);
}
}