From 9e988e92d14e3231f9647590726700b075baa1c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A2u=20Cao?= Date: Thu, 12 Jan 2023 11:44:55 +0800 Subject: [PATCH] Notify user about incoming sats via XMPP --- app/controllers/webhooks_controller.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/controllers/webhooks_controller.rb b/app/controllers/webhooks_controller.rb index ae5ac96..2efc9dc 100644 --- a/app/controllers/webhooks_controller.rb +++ b/app/controllers/webhooks_controller.rb @@ -6,15 +6,33 @@ class WebhooksController < ApplicationController def lndhub begin payload = JSON.parse(request.body.read, symbolize_names: true) + return unless payload[:type] == "incoming" rescue head :unprocessable_entity and return end + user = User.find_by(ln_account: payload[:user_login]) + + # TODO make configurable + notify_xmpp(user.address, payload[:amount], payload[:memo]) + head :ok end private + def notify_xmpp(address, amt_sats, memo) + payload = { + type: "normal", + from: "kosmos.org", # TODO domain config + # to: address, + to: "raucao@kosmos.org", + subject: "Sats received!", + body: "#{amt_sats} sats received in your wallet. Memo: \"#{memo}\"" + } + XmppSendMessageJob.perform_later(payload) + end + def authorize_request if !ENV['WEBHOOKS_ALLOWED_IPS'].split(',').include?(request.remote_ip) head :forbidden and return