- Updated CurrencyController to enhance API responses for currency and gold rates.
- Added metadata to the responses, including timestamps and the time since the last update, improving data context for users. - Enhanced method descriptions with relevant emojis for better readability and understanding. - Refactored response handling to ensure consistent JSON structure across all rate retrieval methods. - These changes improve the clarity and usability of the API, providing users with more informative responses.
This commit is contained in:
Regular → Executable
+63
-16
@@ -15,7 +15,7 @@ use Illuminate\Support\Facades\Storage;
|
|||||||
class CurrencyController extends Controller
|
class CurrencyController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Dispatches all jobs to fetch currency and gold rates synchronously.
|
* ⚙️ Dispatches all jobs to fetch currency and gold rates synchronously.
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\JsonResponse
|
* @return \Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
@@ -39,26 +39,41 @@ class CurrencyController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves all gold and currency rates
|
* 🪙 💵 Retrieves all gold and currency rates
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\JsonResponse
|
* @return \Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
public function getAllRates()
|
public function getAllRates()
|
||||||
{
|
{
|
||||||
|
|
||||||
// JSON dosyasından oku
|
// JSON dosyasından oku
|
||||||
$jsonFile = 'merged/rates.json';
|
$jsonFile = 'merged/rates.json';
|
||||||
if (Storage::exists($jsonFile)) {
|
if (Storage::exists($jsonFile)) {
|
||||||
return response()->json(
|
$data = json_decode(Storage::get($jsonFile), true);
|
||||||
json_decode(Storage::get($jsonFile), true)
|
$currentDate = now(); // Şu anki tarih
|
||||||
);
|
$updateDate = isset($data['Update_Date']) ? \Carbon\Carbon::parse($data['Update_Date']) : null;
|
||||||
|
|
||||||
|
if ($updateDate) {
|
||||||
|
$minutesAgo = round($currentDate->diffInMinutes($updateDate), 2); // Kaç dakika önce alındığı
|
||||||
|
$metaData = [ // Tarih bilgileri için alt dizi
|
||||||
|
'Minutes_Ago' => $minutesAgo,
|
||||||
|
'Current_Date' => $currentDate->toDateTimeString(),
|
||||||
|
'Update_Date' => $updateDate->toDateTimeString(), // Update_Date burada kalacak
|
||||||
|
];
|
||||||
|
unset($data['Update_Date']); // Rates içerisindeki Update_Date elemanını kaldır
|
||||||
|
$data = [
|
||||||
|
'Meta_Data' => $metaData, // Tarih bilgileri alt dizisi
|
||||||
|
'Rates' => $data, // Kur bilgileri alt dizisi
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
return response()->json(['error' => 'Veri bulunamadı'], 404);
|
return response()->json(['error' => 'Veri bulunamadı'], 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the current currency rates
|
* 💵 Retrieves the current currency rates
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\JsonResponse
|
* @return \Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
@@ -67,16 +82,32 @@ class CurrencyController extends Controller
|
|||||||
// JSON dosyasından oku
|
// JSON dosyasından oku
|
||||||
$jsonFile = 'currency/today.json';
|
$jsonFile = 'currency/today.json';
|
||||||
if (Storage::exists($jsonFile)) {
|
if (Storage::exists($jsonFile)) {
|
||||||
return response()->json(
|
$data = json_decode(Storage::get($jsonFile), true);
|
||||||
json_decode(Storage::get($jsonFile), true)
|
$currentDate = now(); // Şu anki tarih
|
||||||
);
|
$updateDate = isset($data['Update_Date']) ? \Carbon\Carbon::parse($data['Update_Date']) : null;
|
||||||
|
|
||||||
|
if ($updateDate) {
|
||||||
|
$minutesAgo = round($currentDate->diffInMinutes($updateDate), 2); // Kaç dakika önce alındığı
|
||||||
|
$metaData = [ // Tarih bilgileri için alt dizi
|
||||||
|
'Minutes_Ago' => $minutesAgo,
|
||||||
|
'Current_Date' => $currentDate->toDateTimeString(),
|
||||||
|
'Update_Date' => $updateDate->toDateTimeString(), // Update_Date burada kalacak
|
||||||
|
];
|
||||||
|
unset($data['Update_Date']); // Rates içerisindeki Update_Date elemanını kaldır
|
||||||
|
$data = [
|
||||||
|
'Meta_Data' => $metaData, // Tarih bilgileri alt dizisi
|
||||||
|
'Rates' => $data, // Kur bilgileri alt dizisi
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
return response()->json(['error' => 'Veri bulunamadı'], 404);
|
return response()->json(['error' => 'Veri bulunamadı'], 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the current gold rates
|
* 🪙 Retrieves the current gold rates
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\JsonResponse
|
* @return \Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
@@ -85,16 +116,32 @@ class CurrencyController extends Controller
|
|||||||
// JSON dosyasından oku
|
// JSON dosyasından oku
|
||||||
$jsonFile = 'gold/today.json';
|
$jsonFile = 'gold/today.json';
|
||||||
if (Storage::exists($jsonFile)) {
|
if (Storage::exists($jsonFile)) {
|
||||||
return response()->json(
|
$data = json_decode(Storage::get($jsonFile), true);
|
||||||
json_decode(Storage::get($jsonFile), true)
|
$currentDate = now(); // Şu anki tarih
|
||||||
);
|
$updateDate = isset($data['Update_Date']) ? \Carbon\Carbon::parse($data['Update_Date']) : null;
|
||||||
|
|
||||||
|
if ($updateDate) {
|
||||||
|
$minutesAgo = round($currentDate->diffInMinutes($updateDate), 2); // Kaç dakika önce alındığı
|
||||||
|
$metaData = [ // Tarih bilgileri için alt dizi
|
||||||
|
'Minutes_Ago' => $minutesAgo,
|
||||||
|
'Current_Date' => $currentDate->toDateTimeString(),
|
||||||
|
'Update_Date' => $updateDate->toDateTimeString(), // Update_Date burada kalacak
|
||||||
|
];
|
||||||
|
unset($data['Update_Date']); // Rates içerisindeki Update_Date elemanını kaldır
|
||||||
|
$data = [
|
||||||
|
'Meta_Data' => $metaData, // Tarih bilgileri alt dizisi
|
||||||
|
'Rates' => $data, // Kur bilgileri alt dizisi
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
return response()->json(['error' => 'Veri bulunamadı'], 404);
|
return response()->json(['error' => 'Veri bulunamadı'], 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the currency rate by its name
|
* 🟰 💵 Retrieves the currency rate by its name
|
||||||
*
|
*
|
||||||
* @param string $currencyName
|
* @param string $currencyName
|
||||||
* @return \Illuminate\Http\JsonResponse
|
* @return \Illuminate\Http\JsonResponse
|
||||||
@@ -115,7 +162,7 @@ class CurrencyController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the gold rate by its name
|
* 🟰 🪙 Retrieves the gold rate by its name
|
||||||
*
|
*
|
||||||
* @param string $goldName
|
* @param string $goldName
|
||||||
* @return \Illuminate\Http\JsonResponse
|
* @return \Illuminate\Http\JsonResponse
|
||||||
|
|||||||
Reference in New Issue
Block a user