/** * @param Carbon $now * @param string $externalApiName * @param int $externalApiLimit * @param string $externalApiLimitInterval * * @return mixed */ public function addExternalAPILimitCounter(Carbon $now, $externalApiName = 'test', $externalApiLimit = 100000, $externalApiLimitInterval = 'Day') { $ExternalApiLimit = ExternalApiLimit::where('external_api_name', $externalApiName)->where('external_api_limit_interval', $externalApiLimitInterval)->where('limit_interval_start', '<=', $now->toDateTimeString())->where('limit_interval_end', '>=', $now->toDateTimeString())->first(); if (empty($ExternalApiLimit)) { $ExternalApiLimit = new ExternalApiLimit(); $ExternalApiLimit->external_api_name = $externalApiName; $ExternalApiLimit->external_api_limit_interval = $externalApiLimitInterval; $ExternalApiLimit->external_api_limit = $externalApiLimit; $StartEnd = ExternalApiLimit::convertIntervalStringToStartEnd($externalApiLimitInterval, $now); $ExternalApiLimit->limit_interval_start = $StartEnd['limit_interval_start']; $ExternalApiLimit->limit_interval_end = $StartEnd['limit_interval_end']; } $ExternalApiLimit->external_api_count = $ExternalApiLimit->external_api_count + 1; $ExternalApiLimit->save(); return $ExternalApiLimit->external_api_limit_left; }
/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $title = 'External Api Limits'; $externalApiLimits = ExternalApiLimit::where('limit_interval_start', '>', Carbon::now()->subDays(31))->orderBy('limit_interval_start', 'desc')->get(); return view('admin.dashboard.ExternalApiLimit.ExternalApiLimitList', compact('title', 'externalApiLimits')); }