Fix API controllers to use correct database column names
- Fix model_pricing table references (model_id -> model, display_name -> model)
- Fix price columns (output_price_per_1k -> output_price_per_million)
- Add price conversion (per_million / 1000 = per_1k) in all API responses
- Add whereNotNull('model') filters to exclude invalid entries
- Add getModelDisplayName() helper method to all controllers
- Fix AccountController to use gateway_users budget fields directly
- Remove Budget model dependencies from AccountController
- Add custom Scramble server URL configuration for API docs
- Create ScrambleServiceProvider to set correct /api prefix
- Add migration to rename user_id to gateway_user_id in llm_requests
- Add custom ApiGuard for gateway_users authentication
- Update all API controllers: AccountController, ModelController, PricingController, ProviderController
All API endpoints now working correctly:
- GET /api/account
- GET /api/models
- GET /api/pricing
- GET /api/providers/{provider}
This commit is contained in:
@@ -1,95 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\User;
|
||||
use App\Models\UserBudget;
|
||||
use App\Services\Budget\BudgetChecker;
|
||||
use App\Services\RateLimit\RateLimitChecker;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UserBudgetController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
private BudgetChecker $budgetChecker,
|
||||
private RateLimitChecker $rateLimitChecker
|
||||
) {}
|
||||
|
||||
/**
|
||||
* Display budget and rate limit status for a user
|
||||
*/
|
||||
public function show(User $user)
|
||||
{
|
||||
$budgetStatus = $this->budgetChecker->getBudgetStatus($user);
|
||||
$rateLimitStatus = $this->rateLimitChecker->getRateLimitStatus($user);
|
||||
|
||||
return view('admin.user-budget.show', compact('user', 'budgetStatus', 'rateLimitStatus'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update budget limits for a user
|
||||
*/
|
||||
public function updateBudget(Request $request, User $user)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'monthly_limit' => 'required|numeric|min:0',
|
||||
'daily_limit' => 'nullable|numeric|min:0',
|
||||
'alert_threshold_percentage' => 'required|integer|min:0|max:100',
|
||||
]);
|
||||
|
||||
$budget = $user->budget ?? new UserBudget(['user_id' => $user->id]);
|
||||
$budget->fill($validated);
|
||||
$budget->save();
|
||||
|
||||
return back()->with('success', 'Budget limits updated successfully!');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update rate limits for a user
|
||||
*/
|
||||
public function updateRateLimit(Request $request, User $user)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'requests_per_minute' => 'required|integer|min:0',
|
||||
'requests_per_hour' => 'required|integer|min:0',
|
||||
'requests_per_day' => 'required|integer|min:0',
|
||||
]);
|
||||
|
||||
$rateLimit = $user->rateLimit ?? new \App\Models\RateLimit(['user_id' => $user->id]);
|
||||
$rateLimit->fill($validated);
|
||||
$rateLimit->save();
|
||||
|
||||
return back()->with('success', 'Rate limits updated successfully!');
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset rate limit for a user
|
||||
*/
|
||||
public function resetRateLimit(User $user)
|
||||
{
|
||||
$this->rateLimitChecker->resetRateLimit($user);
|
||||
|
||||
return back()->with('success', 'Rate limit reset successfully!');
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset budget for a user (admin action)
|
||||
*/
|
||||
public function resetBudget(User $user)
|
||||
{
|
||||
$budget = $user->budget;
|
||||
|
||||
if ($budget) {
|
||||
$budget->current_month_spending = 0.0;
|
||||
$budget->current_day_spending = 0.0;
|
||||
$budget->is_budget_exceeded = false;
|
||||
$budget->last_alert_sent_at = null;
|
||||
$budget->month_started_at = now()->startOfMonth();
|
||||
$budget->day_started_at = now()->startOfDay();
|
||||
$budget->save();
|
||||
}
|
||||
|
||||
return back()->with('success', 'Budget reset successfully!');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user