From 1f7d40c06103da5f0a79fd31ce522fd82bd23bbf Mon Sep 17 00:00:00 2001 From: = Date: Fri, 12 Sep 2025 03:03:56 +0200 Subject: [PATCH] Add: tokens api endpoint --- .../Controllers/Api/ExecutionController.php | 26 ++++++++++++++++++- routes/api.php | 1 + 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/ExecutionController.php b/app/Http/Controllers/Api/ExecutionController.php index 0770c35..bbab7d4 100644 --- a/app/Http/Controllers/Api/ExecutionController.php +++ b/app/Http/Controllers/Api/ExecutionController.php @@ -17,7 +17,6 @@ class ExecutionController extends Controller 'project_id' => 'required|exists:projects,id', 'input' => 'required|string', 'output' => 'required|string', - 'cost' => 'required|string', ]); $project = Project::find($request->project_id); @@ -41,4 +40,29 @@ class ExecutionController extends Controller 'execution' => $execution, ], 201); } + + public function tokens(Request $request) + { + $request->validate([ + 'id' => 'required|exists:executions,id', + 'tokens' => 'required|string', + ]); + + $execution = Execution::find($request->id); + + // Validar que el usuario pueda crear la ejecución + if (!$execution) { // || (!$request->user()->is_admin && $project->user_id !== $request->user()->id)) { + throw ValidationException::withMessages([ + 'project_id' => ['No tienes permisos para crear una ejecución en este proyecto.'], + ]); + } + + $execution->cost = $request->tokens; + $execution->save(); + + return response()->json([ + 'success' => true, + 'execution' => $execution, + ], 201); + } } diff --git a/routes/api.php b/routes/api.php index e201683..f00ea5c 100644 --- a/routes/api.php +++ b/routes/api.php @@ -20,3 +20,4 @@ Route::middleware('auth:sanctum')->get('/user', function (Request $request) { }); Route::post('/executions', [ExecutionController::class, 'store']); +Route::post('/execution/tokens', [ExecutionController::class, 'tokens']);