json([ 'status' => 'success', 'message' => 'All currency, crypto and gold rates have been successfully updated' ]); } catch (\Exception $e) { return response()->json([ 'status' => 'error', 'message' => 'Kurlar güncellenirken bir hata oluştu: ' . $e->getMessage() ], 429); } } /** * Get all currency, crypto and gold rates. * @group All Rates * @subgroup Fetch Rates * * @return \Illuminate\Http\JsonResponse */ public function getAllRates() { $jsonFile = 'merged/rates.json'; if (Storage::exists($jsonFile)) { $data = json_decode(Storage::get($jsonFile), true); $currentDate = now(); $updateDate = isset($data['Update_Date']) ? \Carbon\Carbon::parse($data['Update_Date']) : null; if ($updateDate) { $minutesAgo = round($currentDate->diffInMinutes($updateDate), 2); $metaData = [ 'Minutes_Ago' => $minutesAgo, 'Current_Date' => $currentDate->toDateTimeString(), 'Update_Date' => $updateDate->toDateTimeString(), ]; unset($data['Update_Date']); $data = [ 'Meta_Data' => $metaData, 'Rates' => $data ]; return response()->json($data); } } return response()->json(['error' => 'Data not found'], 404); } /** * Get current currency rates. * @group 💵 Currency * @subgroup Fetch Rates * * @return \Illuminate\Http\JsonResponse */ public function getCurrentRates() { // JSON dosyasından oku $jsonFile = 'currency/today.json'; if (Storage::exists($jsonFile)) { $data = 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' => 'Data not found'], 404); } /** * Get current gold rates. * @group 🪙 Gold * @subgroup Fetch Rates * * @return \Illuminate\Http\JsonResponse */ public function getGoldRates() { // JSON dosyasından oku $jsonFile = 'gold/today.json'; if (Storage::exists($jsonFile)) { $data = 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' => 'Data not found'], 404); } /** * Get current crypto rates. * @group ₿ Crypto * @subgroup Fetch Rates * * @return \Illuminate\Http\JsonResponse */ public function getCryptoCurrencyRates() { $jsonFile = 'crypto/today.json'; if (Storage::exists($jsonFile)) { $data = json_decode(Storage::get($jsonFile), true); $currentDate = now(); $updateDate = isset($data['Update_Date']) ? \Carbon\Carbon::parse($data['Update_Date']) : null; if ($updateDate) { $minutesAgo = round($currentDate->diffInMinutes($updateDate), 2); $metaData = [ 'Minutes_Ago' => $minutesAgo, 'Current_Date' => $currentDate->toDateTimeString(), 'Update_Date' => $updateDate->toDateTimeString(), ]; unset($data['Update_Date']); $data = [ 'Meta_Data' => $metaData, 'Rates' => $data, ]; } return response()->json($data); } return response()->json(['error' => 'Data not found'], 404); } /** * Get currency rate by name. * @group 💵 Currency * @subgroup Fetch Rates * * @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); } /** * Get gold rate by name. * @group 🪙 Gold * @subgroup Fetch Rates * * @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); } /** * Get crypto rate by name. * @group ₿ Crypto * @subgroup Fetch Rates * * @param string $cryptoCurrencyName * @return \Illuminate\Http\JsonResponse */ public function getCryptoCurrencyRateByName($cryptoCurrencyName) { $jsonFile = 'crypto/today.json'; if (Storage::exists($jsonFile)) { $data = json_decode(Storage::get($jsonFile), true); if (isset($data[$cryptoCurrencyName])) { return response()->json([$cryptoCurrencyName => $data[$cryptoCurrencyName]]); } return response()->json(['error' => 'Cryptocurrency not found'], 404); } return response()->json(['error' => 'Data not found'], 404); } }