From f684b6ad642a9d2dd52cd69bc1053dfee9c8b083 Mon Sep 17 00:00:00 2001 From: AlexandreTedesco Date: Sun, 11 May 2025 16:33:15 +0200 Subject: [PATCH] set time out fetch data token to 5 min and fix webhooks --- app/controllers/api/v1/webhook_controller.rb | 11 +++++------ app/jobs/update_crypto_prices_job.rb | 2 +- config/initializers/coinmarketcap.rb | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/app/controllers/api/v1/webhook_controller.rb b/app/controllers/api/v1/webhook_controller.rb index 8652cb6..80852b9 100644 --- a/app/controllers/api/v1/webhook_controller.rb +++ b/app/controllers/api/v1/webhook_controller.rb @@ -7,13 +7,12 @@ def webhook puts "🔵 Webhook Stripe reçu !" payload = request.body.read - # sig_header = request.env['HTTP_STRIPE_SIGNATURE'] + sig_header = request.env["HTTP_STRIPE_SIGNATURE"] begin - # event = Stripe::Webhook.construct_event( - # payload, sig_header, ENV['STRIPE_WEBHOOK_SECRET'] - # ) - event = JSON.parse(payload, symbolize_names: true) + event = Stripe::Webhook.construct_event( + payload, sig_header, ENV["STRIPE_WEBHOOK_SECRET"] + ) puts "🟢 Event Stripe détecté : #{event[:type]}" @@ -40,7 +39,7 @@ def webhook puts "⚠️ Webhook ignoré : #{event[:type]}" end - render json: { received: true } + render json: { received: true }, status: :ok rescue JSON::ParserError => e puts "❌ Erreur JSON : #{e.message}" render json: { error: e.message }, status: :bad_request diff --git a/app/jobs/update_crypto_prices_job.rb b/app/jobs/update_crypto_prices_job.rb index f424038..fec92a2 100644 --- a/app/jobs/update_crypto_prices_job.rb +++ b/app/jobs/update_crypto_prices_job.rb @@ -6,7 +6,7 @@ def perform DataLab::CoinmarketcapService.update_crypto_prices # Replanifier le job pour la prochaine exécution - interval = Rails.application.config.coinmarketcap.fetch(:update_interval, 20.minutes) + interval = Rails.application.config.coinmarketcap.fetch(:update_interval, 5.minutes) self.class.set(wait: interval).perform_later end end diff --git a/config/initializers/coinmarketcap.rb b/config/initializers/coinmarketcap.rb index a6d59fd..a6e025c 100644 --- a/config/initializers/coinmarketcap.rb +++ b/config/initializers/coinmarketcap.rb @@ -1,7 +1,7 @@ Rails.application.config.coinmarketcap = { api_key: ENV["COINMARKETCAP_API_KEY"], base_url: "https://pro-api.coinmarketcap.com/v1", - update_interval: 20.minutes, + update_interval: 5.minutes, symbols_map: { "$BFT" => "BFTOKEN" # Mapping du nom dans notre DB vers le symbole sur CoinMarketCap # Ajoutez d'autres mappings si nécessaire