Skip to content

Commit 4481a73

Browse files
committed
add pay resources to avo
1 parent 6e8eb46 commit 4481a73

6 files changed

Lines changed: 144 additions & 0 deletions

File tree

app/avo/resources/pay_charge.rb

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# frozen_string_literal: true
2+
3+
class Avo::Resources::PayCharge < Avo::BaseResource
4+
self.title = :processor_id
5+
self.includes = %i[customer subscription]
6+
self.model_class = ::Pay::Charge
7+
8+
self.search = {
9+
query: -> { query.ransack(id_eq: params[:q], processor_id_cont: params[:q], m: "or").result(distinct: false) },
10+
item: lambda {
11+
{
12+
title: record.processor_id
13+
}
14+
}
15+
}
16+
17+
def fields
18+
main_panel do
19+
field :id, as: :id
20+
field :processor_id, as: :text, disabled: true
21+
field :customer, as: :belongs_to, disabled: true
22+
field :subscription, as: :belongs_to, disabled: true
23+
# number to currency field
24+
field :amount, as: :text, sortable: true do
25+
number_to_currency(record.amount / 100.0, unit: helpers.currency_symbol(record.currency)) if record&.amount
26+
end
27+
field :amount_refunded, as: :text, sortable: true do
28+
number_to_currency(record.amount_refunded / 100.0, unit: helpers.currency_symbol(record.currency)) if record&.amount_refunded
29+
end
30+
sidebar do
31+
field :created_at, as: :date_time, disabled: true, sortable: true
32+
field :updated_at, as: :date_time, disabled: true, sortable: true
33+
end
34+
end
35+
36+
with_options only_on: :show do
37+
field :metadata, as: :text
38+
field :data, as: :text
39+
end
40+
end
41+
end

app/avo/resources/pay_customer.rb

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# frozen_string_literal: true
2+
3+
class Avo::Resources::PayCustomer < Avo::BaseResource
4+
self.title = :processor_id
5+
self.includes = [ :owner ]
6+
self.model_class = ::Pay::Customer
7+
8+
self.search = {
9+
query: -> { query.ransack(id_eq: params[:q], processor_id_cont: params[:q], m: "or").result(distinct: false) },
10+
item: lambda {
11+
{
12+
title: record.processor_id
13+
}
14+
}
15+
}
16+
17+
def fields
18+
main_panel do
19+
field :id, as: :id
20+
field :processor_id, as: :text, disabled: true
21+
field :owner, as: :belongs_to, polymorphic_as: :owner, types: [ ::User ], disabled: true
22+
# Pay::Subscription
23+
# field :charges, as: :has_many
24+
# field :charges, as: :has_many, use_resource: Avo::Resources::PayCharge
25+
# field :subscriptions, as: :has_many
26+
27+
sidebar do
28+
field :created_at, as: :date_time, disabled: true, sortable: true
29+
field :updated_at, as: :date_time, disabled: true, sortable: true
30+
end
31+
end
32+
with_options only_on: :show do
33+
field :data, as: :text
34+
end
35+
end
36+
end
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# frozen_string_literal: true
2+
3+
class Avo::Resources::PaySubscription < Avo::BaseResource
4+
self.title = :processor_id
5+
self.includes = [ :customer ]
6+
self.model_class = ::Pay::Subscription
7+
8+
self.search = {
9+
query: -> { query.ransack(id_eq: params[:q], processor_id_cont: params[:q], m: "or").result(distinct: false) },
10+
item: lambda {
11+
{
12+
title: record.processor_id
13+
}
14+
}
15+
}
16+
17+
def fields
18+
main_panel do
19+
field :id, as: :id
20+
field :name, as: :text, disabled: true
21+
field :processor_id, as: :text, disabled: true
22+
field :customer, as: :belongs_to, disabled: true
23+
field :processor_plan, as: :text, disabled: true
24+
field :quantity, as: :number, disabled: true
25+
field :status, as: :text, sortable: true, disabled: true
26+
field :current_period_start, as: :date_time, disabled: true
27+
field :current_period_end, as: :date_time, disabled: true
28+
29+
# field :trial_ends_at, as: :date_time
30+
# field :ends_at, as: :date_time
31+
# field :metered, as: :boolean
32+
# field :pause_behavior, as: :text
33+
# field :pause_starts_at, as: :date_time
34+
# field :pause_resumes_at, as: :date_time
35+
36+
sidebar do
37+
field :created_at, as: :date_time, disabled: true, sortable: true
38+
field :updated_at, as: :date_time, disabled: true, sortable: true
39+
end
40+
end
41+
42+
with_options only_on: :show do
43+
field :metadata, as: :text
44+
field :data, as: :text
45+
end
46+
47+
field :charges, as: :has_many
48+
end
49+
end
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# frozen_string_literal: true
2+
3+
# This controller has been generated to enable Rails' resource routes.
4+
# More information on https://docs.avohq.io/3.0/controllers.html
5+
class Avo::PayChargesController < Avo::ResourcesController
6+
end
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# frozen_string_literal: true
2+
3+
# This controller has been generated to enable Rails' resource routes.
4+
# More information on https://docs.avohq.io/3.0/controllers.html
5+
class Avo::PayCustomersController < Avo::ResourcesController
6+
end
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# frozen_string_literal: true
2+
3+
# This controller has been generated to enable Rails' resource routes.
4+
# More information on https://docs.avohq.io/3.0/controllers.html
5+
class Avo::PaySubscriptionsController < Avo::ResourcesController
6+
end

0 commit comments

Comments
 (0)