3217d8693e
- Added comprehensive PHPDoc comments to all methods in the CurrencyController for better code clarity and maintainability. - Introduced new methods: `getAllRates`, `getCurrentRates`, `getGoldRates`, `getCurrencyRateByName`, and `getGoldRateByName` to improve data retrieval from JSON files. - Ensured all methods return appropriate JSON responses, enhancing the API's usability. These changes improve the overall documentation and functionality of the CurrencyController, facilitating better management of financial data.
128 lines
3.6 KiB
PHP
128 lines
3.6 KiB
PHP
<?php
|
||
|
||
namespace App\Http\Controllers;
|
||
|
||
use App\Jobs\FetchCurrencyRates;
|
||
use App\Jobs\FetchGoldRates;
|
||
use App\Jobs\MergeCurrencyAndGoldRates;
|
||
use Illuminate\Support\Facades\Storage;
|
||
|
||
/**
|
||
* Class CurrencyController
|
||
*
|
||
* This controller handles the fetching and returning of currency and gold rates.
|
||
*/
|
||
class CurrencyController extends Controller
|
||
{
|
||
/**
|
||
* Dispatches all jobs to fetch currency and gold rates synchronously.
|
||
*/
|
||
public function runAllFetchs()
|
||
{
|
||
FetchCurrencyRates::dispatchSync();
|
||
FetchGoldRates::dispatchSync();
|
||
MergeCurrencyAndGoldRates::dispatchSync();
|
||
}
|
||
|
||
/**
|
||
* Retrieves all merged currency rates from a JSON file.
|
||
*
|
||
* @return \Illuminate\Http\JsonResponse
|
||
*/
|
||
public function getAllRates()
|
||
{
|
||
// Job'ı çalıştır
|
||
/*
|
||
FetchCurrencyRates::dispatchSync();
|
||
FetchGoldRates::dispatchSync();
|
||
MergeCurrencyAndGoldRates::dispatchSync();
|
||
*/
|
||
// JSON dosyasından oku
|
||
$jsonFile = 'merged/rates.json';
|
||
if (Storage::exists($jsonFile)) {
|
||
return response()->json(
|
||
json_decode(Storage::get($jsonFile), true)
|
||
);
|
||
}
|
||
|
||
return response()->json(['error' => 'Veri bulunamadı'], 404);
|
||
}
|
||
|
||
/**
|
||
* Retrieves the current currency rates from a JSON file.
|
||
*
|
||
* @return \Illuminate\Http\JsonResponse
|
||
*/
|
||
public function getCurrentRates()
|
||
{
|
||
// JSON dosyasından oku
|
||
$jsonFile = 'currency/today.json';
|
||
if (Storage::exists($jsonFile)) {
|
||
return response()->json(
|
||
json_decode(Storage::get($jsonFile), true)
|
||
);
|
||
}
|
||
|
||
return response()->json(['error' => 'Veri bulunamadı'], 404);
|
||
}
|
||
|
||
/**
|
||
* Retrieves the current gold rates from a JSON file.
|
||
*
|
||
* @return \Illuminate\Http\JsonResponse
|
||
*/
|
||
public function getGoldRates()
|
||
{
|
||
// JSON dosyasından oku
|
||
$jsonFile = 'gold/today.json';
|
||
if (Storage::exists($jsonFile)) {
|
||
return response()->json(
|
||
json_decode(Storage::get($jsonFile), true)
|
||
);
|
||
}
|
||
|
||
return response()->json(['error' => 'Veri bulunamadı'], 404);
|
||
}
|
||
|
||
/**
|
||
* Retrieves the currency rate by its name from a JSON file.
|
||
*
|
||
* @param string $currencyName
|
||
* @return \Illuminate\Http\JsonResponse
|
||
*/
|
||
public function getCurrencyRateByName($currencyName)
|
||
{
|
||
// JSON dosyasından oku
|
||
$jsonFile = 'currency/today.json';
|
||
if (Storage::exists($jsonFile)) {
|
||
$data = json_decode(Storage::get($jsonFile), true);
|
||
if (isset($data[$currencyName])) {
|
||
return response()->json([$currencyName => $data[$currencyName]]);
|
||
}
|
||
return response()->json(['error' => 'Currency not found'], 404);
|
||
}
|
||
|
||
return response()->json(['error' => 'Data not found'], 404);
|
||
}
|
||
|
||
/**
|
||
* Retrieves the gold rate by its name from a JSON file.
|
||
*
|
||
* @param string $goldName
|
||
* @return \Illuminate\Http\JsonResponse
|
||
*/
|
||
public function getGoldRateByName($goldName)
|
||
{
|
||
// JSON dosyasından oku
|
||
$jsonFile = 'gold/today.json';
|
||
if (Storage::exists($jsonFile)) {
|
||
$data = json_decode(Storage::get($jsonFile), true);
|
||
if (isset($data[$goldName])) {
|
||
return response()->json([$goldName => $data[$goldName]]);
|
||
}
|
||
return response()->json(['error' => 'Currency not found'], 404);
|
||
}
|
||
|
||
return response()->json(['error' => 'Data not found'], 404);
|
||
}
|
||
} |