pedi2/routes/api.php

75 lines
3.0 KiB
PHP

<?php
use App\Filtros\FiltroDeProducto;
use App\Filtros\FiltroDeSubpedido;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\GrupoDeCompra;
use App\Producto;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::middleware('api')->group(function () {
Route::get('/regiones', function() {
return GrupoDeCompra::all()->pluck('region')->unique()->flatten();
});
Route::prefix('grupos-de-compra')->group( function(){
Route::get('/', function() {
$atributos_a_ocultar = ['telefono', 'cantidad_de_nucleos', 'correo', 'referente_finanzas', 'created_at', 'updated_at'];
return GrupoDeCompra::all()->makeHidden($atributos_a_ocultar)->sortBy('nombre')->groupBy('region');
});
Route::get('/{gdc}/bonos-de-transporte', function($gdc) {
$grupo = GrupoDeCompra::where('id',$gdc)->first();
return ['bdt' => $grupo->calcularCantidadBDT()];
});
Route::get('/{gdc}/bonos-barriales', function($gdc) {
$grupo = GrupoDeCompra::where('id',$gdc)->first();
return ['bonos_barriales' => $grupo->totalBonosBarriales()];
});
Route::get('/{gdc}/devoluciones', function($gdc) {
$habilitadas = GrupoDeCompra::find($gdc)->devoluciones_habilitadas;
return ['devoluciones' => $habilitadas];
});
Route::post('/{gdc}/devoluciones', function($gdc) {
$habilitadas = GrupoDeCompra::find($gdc)->toggleDevoluciones();
return ['devoluciones' => $habilitadas];
});
});
Route::prefix('subpedidos')->group(function () {
Route::get('/','Api\SubpedidoController@index');
Route::get('/resources', 'Api\SubpedidoController@indexResources');
Route::get('{subpedido}','Api\SubpedidoController@show');
Route::post('/','Api\SubpedidoController@store');
Route::post('/{subpedido}/sync', 'Api\SubpedidoController@syncProductos');
Route::post('/{subpedido}/sync_devoluciones', 'Api\SubpedidoController@syncDevoluciones');
});
Route::prefix('admin')->group(function () {
Route::prefix('subpedidos')->group(function() {
Route::post('/{subpedido}/aprobacion', 'Api\SubpedidoController@toggleAprobacion');
});
});
//@TO DO -> esta ruta debe estar en middleware de auth y/o subpedido
Route::get('/categorias', function() {
return Producto::all()->pluck('categoria')->unique()->flatten();
});
//@TO DO -> esta ruta debe estar en middleware de auth y/o subpedido
Route::prefix('productos')->group(function () {
Route::get('/','Api\ProductoController@index');
Route::get('{producto}','Api\ProductoController@show');
});
});