Files
Horux_back/routes/api.php
consultoria-as 61320b44d8 Initial commit: Horux Backend API
- API REST para gestion de facturas electronicas mexicanas (CFDI)
- Laravel 9 con autenticacion OAuth 2.0 (Passport)
- Integracion con Syntage, Clerk y Facturama
- 30 modelos Eloquent, 39 controladores
- Documentacion completa en /docs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 07:44:29 +00:00

143 lines
7.7 KiB
PHP

<?php
use App\Http\Controllers\controladorPrueba;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Laravel\Socialite\Facades\Socialite;
use App\Http\Controllers;
/*
|--------------------------------------------------------------------------
| 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::post('/auth', function (Request $request) {
// Realizar una petición POST con encabezados
$response = Http::withHeaders([
'Content-Type' => 'application/x-www-form-urlencoded',
'Authorization' => 'Basic RXlhZlNidnIyZWNYQTh5azpza190ZXN0X1ZpVng2T3hxQ2RkTkZOckdhaDQyTTM5dDhCTVFIY2l4RWxWRDYwNGRXTw=='
])->asForm()->post('https://exact-trout-82.clerk.accounts.dev/oauth/token', [
'grant_type' => 'authorization_code',
'code' => $request->code,
'redirect_uri' => 'https://horuxfin.com/callback'
]);
// Verificar si la petición fue exitosa
if ($response->successful()) {
// Manejar la respuesta exitosa
$requestToken = Request::create("/oauth/token", "POST", [
'grant_type' => 'social',
'client_id' => config('app.client_id'),
'client_secret' => config('app.client_secret'),
'provider' => 'clerk',
'access_token' => $response['access_token']
]);
$oauth = app()->handle($requestToken);
return $oauth;
} else {
$response = Http::withHeaders([
'Content-Type' => 'application/x-www-form-urlencoded',
'Authorization' => 'Basic T0JlRk1lRzYwVVJHenFjVTpza190ZXN0X1ZpVng2T3hxQ2RkTkZOckdhaDQyTTM5dDhCTVFIY2l4RWxWRDYwNGRXTw=='
])->asForm()->post('https://exact-trout-82.clerk.accounts.dev/oauth/token', [
'grant_type' => 'authorization_code',
'code' => $request->code,
'redirect_uri' => 'http://localhost:3000/callback'
]);
// Verificar si la petición fue exitosa
if ($response->successful()) {
// Manejar la respuesta exitosa
$requestToken = Request::create("/oauth/token", "POST", [
'grant_type' => 'social',
'client_id' => config('app.client_id'),
'client_secret' => config('app.client_secret'),
'provider' => 'clerk',
'access_token' => $response['access_token']
]);
$oauth = app()->handle($requestToken);
return $oauth;
} else {
// Manejar la respuesta fallida
return response()->json();
}
}
});
Route::get('/retenciones', [Controllers\InvoiceController::class, 'retenciones']);
Route::group([
'middleware' => 'throttle:custom-origin'
], function() {
Route::post('/invoice-endpoint', [Controllers\InvoiceController::class, 'invoiceEndpoint']);
});
Route::group([
'middleware' => 'auth:api'
], function() {
Route::post('/insertar-rfc', [Controllers\RfcController::class, 'insertarRfc']);
Route::get('/obtener-rfcs', [Controllers\RfcController::class, 'obtenerRfcs']);
Route::get('/tipos-factura', [Controllers\InvoiceTypeController::class, 'get']);
Route::get('/uso-factura', [Controllers\UsageController::class, 'get']);
Route::get('/tipos-pago', [Controllers\PaymentTypeController::class, 'get']);
Route::get('/metodos-pago', [Controllers\PaymentMethodController::class, 'get']);
Route::get('/monedas', [Controllers\CurrencyController::class, 'get']);
Route::get('/regimenes-fiscales', [Controllers\TaxRegimeController::class, 'get']);
Route::get('/codigos-prod-serv', [Controllers\ProdServCodeController::class, 'get']);
Route::get('/codigos-unidad', [Controllers\UnitCodeController::class, 'get']);
Route::get('/impuestos', [Controllers\TaxController::class, 'get']);
Route::get('/tasas-impuesto', [Controllers\TaxRateController::class, 'get']);
Route::get('/obtener-facturas', [Controllers\InvoiceController::class, 'obtenerFacturas']);
Route::get('/endpoint-facturas', [Controllers\InvoiceController::class, 'endpointObtenerFacturas']);
Route::get('/facturas-emitidas', [Controllers\InvoiceController::class, 'facturasEmitidas']);
Route::get('/facturas-emitidas-conciliadas', [Controllers\InvoiceController::class, 'facturasEmitidasConciliadas']);
Route::get('/facturas-recibidas', [Controllers\InvoiceController::class, 'facturasRecibidas']);
Route::get('/facturas-recibidas-conciliadas', [Controllers\InvoiceController::class, 'facturasRecibidasConciliadas']);
Route::post('/conciliar-facturas', [Controllers\InvoiceController::class, 'conciliarFacturas']);
Route::get('/descargar-factura', [Controllers\InvoiceController::class, 'descargarFactura']);
Route::get('/obtener-complementos-pago', [Controllers\InvoicePaymentController::class, 'obtenerComplementosPago']);
Route::get('/obtener-contribuyente', [Controllers\TaxpayerController::class, 'obtenerContribuyente']);
Route::get('/obtener-lineas-facturas', [Controllers\InvoiceLineController::class, 'obtenerLineasFacturas']);
Route::get('/obtener-facturas-conceptos', [Controllers\InvoiceLineController::class, 'obtenerFacturasConceptos']);
Route::get('/ingreso-tipo-i', [Controllers\InvoiceController::class, 'ingresoTipoI']);
Route::get('/gasto-tipo-i', [Controllers\InvoiceController::class, 'gastoTipoI']);
Route::get('/ingreso-tipo-e', [Controllers\InvoiceController::class, 'ingresoTipoE']);
Route::get('/gasto-tipo-e', [Controllers\InvoiceController::class, 'gastoTipoE']);
Route::get('/gasto-tipo-n', [Controllers\InvoiceController::class, 'gastoTipoN']);
Route::get('/ingreso-ppd', [Controllers\InvoicePaymentController::class, 'ingresoPpd']);
Route::get('/gasto-ppd', [Controllers\InvoicePaymentController::class, 'gastoPpd']);
Route::get('/adquisicion-pue', [Controllers\InvoiceController::class, 'adquisicionPue']);
Route::get('/adquisicion-ppd', [Controllers\InvoicePaymentController::class, 'adquisicionPpd']);
Route::get('/obtener-metricas', [Controllers\InvoiceController::class, 'obtenerMetricas']);
Route::get('/obtener-metricas-mensuales', [Controllers\InvoiceController::class, 'obtenerMetricasMensuales']);
Route::post('/importar-facturas', [Controllers\InvoiceController::class, 'importarFacturas']);
Route::post('/importar-lineas-facturas', [Controllers\InvoiceLineController::class, 'importarLineasFacturas']);
Route::post('/importar-codigos-prod-serv', [Controllers\ProdServCodeController::class, 'importarCodigosProdServ']);
Route::post('/importar-codigos-unidad', [Controllers\UnitCodeController::class, 'importarCodigosUnidad']);
});
Route::post('/consultarmetrica', [Controllers\MetricasController::class, 'consultarMetricas']);
Route::post('/insertmetrica', [Controllers\MetricasController::class, 'store']);
Route::post('/consultarcomparativo', [Controllers\ComparativomensualController::class, 'consultarComparativo']);
Route::post('/insertcomparativo', [Controllers\ComparativomensualController::class, 'store']);
Route::get('/obtener-ingresos', [Controllers\InvoiceController::class, 'ingresos']);
Route::post('/obtener-egresos', [Controllers\InvoiceController::class, 'egresos']);
Route::get('/ivaAFavor', [Controllers\InvoiceController::class, 'ivaAFavor']);
Route::get('/utilidadBrutaVsIndustria', [Controllers\TaxpayerController::class, 'utilidadBrutaVsIndustria']);
Route::post('/usuariosat', [Controllers\usuariossatController::class, 'store']);
Route::get('/risk', [Controllers\RiskController::class, 'consultarRisk']);