* [Personaliza] mensajes de excepciones.
* [Agrega] modelo, controlador y rutas de precios.
This commit is contained in:
parent
6219cf81a2
commit
aa29ec7266
|
@ -8,6 +8,7 @@ use Illuminate\Validation\ValidationException;
|
|||
use Laravel\Lumen\Exceptions\Handler as ExceptionHandler;
|
||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||
use Throwable;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class Handler extends ExceptionHandler {
|
||||
/**
|
||||
|
@ -46,6 +47,32 @@ class Handler extends ExceptionHandler {
|
|||
* @throws \Throwable
|
||||
*/
|
||||
public function render($request, Throwable $exception) {
|
||||
return parent::render($request, $exception);
|
||||
if ($exception instanceof AuthorizationException) {
|
||||
$code = Response::HTTP_UNAUTHORIZED;
|
||||
$descr = $exception -> getMessage();
|
||||
} elseif ($exception instanceof HttpException) {
|
||||
$code = $exception->getStatusCode();
|
||||
$descr = Response::$statusTexts[$code];
|
||||
} elseif ($exception instanceof ModelNotFoundException) {
|
||||
$code = Response::HTTP_NOT_FOUND;
|
||||
$descr = $exception -> getMessage();
|
||||
} elseif ($exception instanceof ValidationException) {
|
||||
$code = Response::HTTP_BAD_REQUEST;
|
||||
$descr = $exception->getMessage();
|
||||
} else {
|
||||
$code = Response::HTTP_INTERNAL_SERVER_ERROR;
|
||||
$descr = $exception->getMessage();
|
||||
}
|
||||
|
||||
//return parent::render($request, $exception);
|
||||
|
||||
return response()->json([
|
||||
'data' => [],
|
||||
'message' => [
|
||||
'type' => 'error',
|
||||
'code' => $code,
|
||||
'description' => $descr,
|
||||
],
|
||||
], $code);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,8 @@ namespace App\Http\Controllers;
|
|||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Price;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class PriceController extends Controller {
|
||||
/**
|
||||
|
@ -17,22 +19,36 @@ class PriceController extends Controller {
|
|||
}
|
||||
|
||||
public function index() {
|
||||
//
|
||||
return response()->json([
|
||||
'data' => Price::all(),
|
||||
'message' => [
|
||||
'type' => 'success',
|
||||
'code' => Response::HTTP_OK,
|
||||
'description' => 'Ok',
|
||||
]
|
||||
], Response::HTTP_OK);
|
||||
}
|
||||
|
||||
public function store(Request $request) {
|
||||
//
|
||||
return Price::create([
|
||||
'id' => Str::uuid(),
|
||||
'type' => $request->input('type'),
|
||||
'cost' => $request->input('cost'),
|
||||
'active' => $request->input('active'),
|
||||
]);
|
||||
}
|
||||
|
||||
public function show(Price $price) {
|
||||
//
|
||||
public function show($id) {
|
||||
return Price::findOrFail($id);
|
||||
}
|
||||
|
||||
public function update(Request $request, Price $price) {
|
||||
//
|
||||
public function update(Request $request, $id) {
|
||||
$price = Price::findOrFail($id);
|
||||
|
||||
return $price->update($request->all());
|
||||
}
|
||||
|
||||
public function destroy(Price $price) {
|
||||
//
|
||||
public function destroy($id) {
|
||||
return Price::destroy($id);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,9 @@
|
|||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
|
||||
class Price extends Model {
|
||||
//
|
||||
public $incrementing = false;
|
||||
protected $keyType = 'string';
|
||||
protected $fillable = ['id', 'type', 'cost', 'active'];
|
||||
}
|
||||
|
|
|
@ -15,8 +15,8 @@ return new class extends Migration {
|
|||
$table->uuid('id')
|
||||
->primary();
|
||||
|
||||
$table->enum('type', ['Becado', 'Regular', 'Preventa'])
|
||||
->default('Regular');
|
||||
$table->string('type', 20)
|
||||
->unique();
|
||||
|
||||
$table->float('cost', 6, 2)
|
||||
->unsigned();
|
||||
|
|
|
@ -16,3 +16,11 @@
|
|||
$router->get('/', function () use ($router) {
|
||||
return $router->app->version();
|
||||
});
|
||||
|
||||
$router->group(['prefix' => '/v1/prices', 'as' => 'prices'], function () use ($router) {
|
||||
$router->get('/', ['as' => 'index', 'uses' => 'PriceController@index']);
|
||||
$router->post('/', ['as' => 'store', 'uses' => 'PriceController@store']);
|
||||
$router->get('/{id}', ['as' => 'show', 'uses' => 'PriceController@show']);
|
||||
$router->put('/{id}', ['as' => 'update', 'uses' => 'PriceController@update']);
|
||||
$router->delete('/{id}', ['as' => 'destroy', 'uses' => 'PriceController@destroy']);
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue