no destroy

This commit is contained in:
24c02 2025-12-18 15:13:21 -05:00
parent 0f8b36f7de
commit b375b265b9
6 changed files with 37 additions and 20 deletions

View file

@ -1,5 +1,5 @@
class HCB::OauthConnectionsController < ApplicationController class HCB::OauthConnectionsController < ApplicationController
skip_after_action :verify_authorized, only: [:new, :callback, :destroy] skip_after_action :verify_authorized, only: [:new, :callback]
def new def new
redirect_to hcb_oauth_authorize_url, allow_other_host: true redirect_to hcb_oauth_authorize_url, allow_other_host: true
@ -27,11 +27,6 @@ class HCB::OauthConnectionsController < ApplicationController
redirect_to hcb_payment_accounts_path, notice: "HCB account linked! Now create a payment account." redirect_to hcb_payment_accounts_path, notice: "HCB account linked! Now create a payment account."
end end
def destroy
current_user.hcb_oauth_connection&.destroy
redirect_to root_path, notice: "HCB account unlinked"
end
private private
def hcb_oauth_client def hcb_oauth_client

View file

@ -2,7 +2,7 @@ class HCB::PaymentAccountsController < ApplicationController
skip_after_action :verify_authorized skip_after_action :verify_authorized
before_action :require_hcb_connection, except: [:index] before_action :require_hcb_connection, except: [:index]
before_action :set_payment_account, only: [:show, :destroy] before_action :set_payment_account, only: [:show]
def index def index
@payment_accounts = current_user.hcb_payment_accounts @payment_accounts = current_user.hcb_payment_accounts
@ -38,11 +38,6 @@ class HCB::PaymentAccountsController < ApplicationController
def show def show
end end
def destroy
@payment_account.destroy
redirect_to hcb_payment_accounts_path, notice: "Payment account removed"
end
private private
def require_hcb_connection def require_hcb_connection

View file

@ -0,0 +1,33 @@
class HCB::TransferService
attr_reader :hcb_payment_account, :amount_cents, :memo, :errors
def initialize(hcb_payment_account:, amount_cents:, memo:)
@hcb_payment_account = hcb_payment_account
@amount_cents = amount_cents
@memo = memo
@errors = []
end
def call
return failure("No HCB payment account provided") unless hcb_payment_account
return failure("Amount must be positive") unless amount_cents.positive?
transfer = hcb_payment_account.create_disbursement!(
amount_cents: amount_cents,
memo: memo,
)
transfer
rescue HCBV4::APIError => e
failure("HCB disbursement failed: #{e.message}")
rescue => e
failure("Transfer failed: #{e.message}")
end
private
def failure(message)
@errors << message
false
end
end

View file

@ -7,7 +7,6 @@
<% if current_user.hcb_connected? %> <% if current_user.hcb_connected? %>
<div class="notice success"> <div class="notice success">
✓ HCB account linked ✓ HCB account linked
<%= link_to "Unlink", hcb_oauth_connection_path, method: :delete, data: { confirm: "Are you sure? This will remove all payment accounts." }, class: "btn btn-small danger" %>
</div> </div>
<div class="actions"> <div class="actions">
@ -20,7 +19,6 @@
<tr> <tr>
<th>Organization</th> <th>Organization</th>
<th>Created</th> <th>Created</th>
<th>Actions</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -28,9 +26,6 @@
<tr> <tr>
<td><%= account.organization_name %></td> <td><%= account.organization_name %></td>
<td><%= account.created_at.strftime("%Y-%m-%d") %></td> <td><%= account.created_at.strftime("%Y-%m-%d") %></td>
<td>
<%= link_to "Remove", hcb_payment_account_path(account), method: :delete, data: { confirm: "Remove this payment account?" }, class: "btn btn-small danger" %>
</td>
</tr> </tr>
<% end %> <% end %>
</tbody> </tbody>

View file

@ -14,5 +14,4 @@
<div class="actions"> <div class="actions">
<%= link_to "Back to Payment Accounts", hcb_payment_accounts_path, class: "btn btn-small" %> <%= link_to "Back to Payment Accounts", hcb_payment_accounts_path, class: "btn btn-small" %>
<%= link_to "Remove", hcb_payment_account_path(@payment_account), method: :delete, data: { confirm: "Remove this payment account?" }, class: "btn btn-small danger" %>
</div> </div>

View file

@ -531,10 +531,10 @@ Rails.application.routes.draw do
end end
namespace :hcb do namespace :hcb do
resource :oauth_connection, only: [:new, :destroy] do resource :oauth_connection, only: [:new] do
get :callback, on: :collection get :callback, on: :collection
end end
resources :payment_accounts, only: [:index, :new, :create, :show, :destroy] resources :payment_accounts, only: [:index, :new, :create, :show]
end end
resources :source_tags resources :source_tags
namespace :warehouse do namespace :warehouse do