mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 13:19:39 +02:00
Make transaction enrichment opt-in for all users (#1552)
This commit is contained in:
parent
ba878c3d8b
commit
68617514b0
12 changed files with 46 additions and 35 deletions
|
@ -26,10 +26,6 @@ class Settings::HostingsController < SettingsController
|
||||||
Setting.synth_api_key = hosting_params[:synth_api_key]
|
Setting.synth_api_key = hosting_params[:synth_api_key]
|
||||||
end
|
end
|
||||||
|
|
||||||
if hosting_params.key?(:data_enrichment_enabled)
|
|
||||||
Setting.data_enrichment_enabled = hosting_params[:data_enrichment_enabled]
|
|
||||||
end
|
|
||||||
|
|
||||||
redirect_to settings_hosting_path, notice: t(".success")
|
redirect_to settings_hosting_path, notice: t(".success")
|
||||||
rescue ActiveRecord::RecordInvalid => error
|
rescue ActiveRecord::RecordInvalid => error
|
||||||
flash.now[:alert] = t(".failure")
|
flash.now[:alert] = t(".failure")
|
||||||
|
@ -38,7 +34,7 @@ class Settings::HostingsController < SettingsController
|
||||||
|
|
||||||
private
|
private
|
||||||
def hosting_params
|
def hosting_params
|
||||||
params.require(:setting).permit(:render_deploy_hook, :upgrades_setting, :require_invite_for_signup, :synth_api_key, :data_enrichment_enabled)
|
params.require(:setting).permit(:render_deploy_hook, :upgrades_setting, :require_invite_for_signup, :synth_api_key)
|
||||||
end
|
end
|
||||||
|
|
||||||
def raise_if_not_self_hosted
|
def raise_if_not_self_hosted
|
||||||
|
|
|
@ -41,7 +41,7 @@ class UsersController < ApplicationController
|
||||||
def user_params
|
def user_params
|
||||||
params.require(:user).permit(
|
params.require(:user).permit(
|
||||||
:first_name, :last_name, :profile_image, :redirect_to, :delete_profile_image, :onboarded_at,
|
:first_name, :last_name, :profile_image, :redirect_to, :delete_profile_image, :onboarded_at,
|
||||||
family_attributes: [ :name, :currency, :country, :locale, :date_format, :timezone, :id ]
|
family_attributes: [ :name, :currency, :country, :locale, :date_format, :timezone, :id, :data_enrichment_enabled ]
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ class Account::Syncer
|
||||||
update_account_info(balances, holdings) unless account.plaid_account_id.present?
|
update_account_info(balances, holdings) unless account.plaid_account_id.present?
|
||||||
convert_records_to_family_currency(balances, holdings) unless account.currency == account.family.currency
|
convert_records_to_family_currency(balances, holdings) unless account.currency == account.family.currency
|
||||||
|
|
||||||
if Setting.data_enrichment_enabled || Rails.configuration.app_mode.managed?
|
if account.family.data_enrichment_enabled?
|
||||||
account.enrich_data_later
|
account.enrich_data_later
|
||||||
else
|
else
|
||||||
Rails.logger.info("Data enrichment is disabled, skipping enrichment for account #{account.id}")
|
Rails.logger.info("Data enrichment is disabled, skipping enrichment for account #{account.id}")
|
||||||
|
|
|
@ -17,10 +17,6 @@ class Setting < RailsSettings::Base
|
||||||
default: ENV.fetch("UPGRADES_TARGET", "release"),
|
default: ENV.fetch("UPGRADES_TARGET", "release"),
|
||||||
validates: { inclusion: { in: %w[release commit] } }
|
validates: { inclusion: { in: %w[release commit] } }
|
||||||
|
|
||||||
field :data_enrichment_enabled,
|
|
||||||
type: :boolean,
|
|
||||||
default: false
|
|
||||||
|
|
||||||
field :synth_api_key, type: :string, default: ENV["SYNTH_API_KEY"]
|
field :synth_api_key, type: :string, default: ENV["SYNTH_API_KEY"]
|
||||||
|
|
||||||
field :require_invite_for_signup, type: :boolean, default: false
|
field :require_invite_for_signup, type: :boolean, default: false
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
<div class="space-y-4">
|
|
||||||
<div class="flex items-center justify-between">
|
|
||||||
<div class="space-y-1">
|
|
||||||
<p class="text-sm"><%= t(".title") %></p>
|
|
||||||
<p class="text-gray-500 text-sm"><%= t(".description") %></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<%= styled_form_with model: Setting.new,
|
|
||||||
url: settings_hosting_path,
|
|
||||||
method: :patch,
|
|
||||||
data: { controller: "auto-submit-form", "auto-submit-form-trigger-event-value": "blur" } do |form| %>
|
|
||||||
<div class="relative inline-block select-none">
|
|
||||||
<%= form.check_box :data_enrichment_enabled, class: "sr-only peer", "data-auto-submit-form-target": "auto", "data-autosubmit-trigger-event": "input" %>
|
|
||||||
<%= form.label :data_enrichment_enabled, " ".html_safe, class: "maybe-switch" %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -10,7 +10,6 @@
|
||||||
<%= render "settings/hostings/upgrade_settings" %>
|
<%= render "settings/hostings/upgrade_settings" %>
|
||||||
<%= render "settings/hostings/provider_settings" %>
|
<%= render "settings/hostings/provider_settings" %>
|
||||||
<%= render "settings/hostings/synth_settings" %>
|
<%= render "settings/hostings/synth_settings" %>
|
||||||
<%= render "settings/hostings/data_enrichment_settings" %>
|
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
<%# locals: (user:) %>
|
||||||
|
|
||||||
|
<div class="space-y-4">
|
||||||
|
<div class="flex items-center justify-between">
|
||||||
|
<div class="space-y-1">
|
||||||
|
<p class="text-sm"><%= t(".title") %></p>
|
||||||
|
<p class="text-gray-500 text-sm"><%= t(".description") %></p>
|
||||||
|
<% if self_hosted? %>
|
||||||
|
<p class="text-xs italic text-gray-500"><%= t(".self_host_disclaimer") %></p>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= styled_form_with model: user,
|
||||||
|
data: { controller: "auto-submit-form", "auto-submit-form-trigger-event-value": "blur" } do |form| %>
|
||||||
|
<div class="relative inline-block select-none">
|
||||||
|
<%= form.hidden_field :redirect_to, value: "preferences" %>
|
||||||
|
<%= form.fields_for :family do |family_form| %>
|
||||||
|
<%= family_form.check_box :data_enrichment_enabled, class: "sr-only peer", "data-auto-submit-form-target": "auto", "data-autosubmit-trigger-event": "input" %>
|
||||||
|
<%= family_form.label :data_enrichment_enabled, " ".html_safe, class: "maybe-switch" %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -40,6 +40,11 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
<%= settings_section title: t(".data"), subtitle: t(".data_subtitle") do %>
|
||||||
|
<%= render "settings/preferences/data_enrichment_settings", user: @user %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<%= settings_section title: t(".theme_title"), subtitle: t(".theme_subtitle") do %>
|
<%= settings_section title: t(".theme_title"), subtitle: t(".theme_subtitle") do %>
|
||||||
<div>
|
<div>
|
||||||
<%= styled_form_with model: @user, class: "flex justify-between items-center" do |form| %>
|
<%= styled_form_with model: @user, class: "flex justify-between items-center" do |form| %>
|
||||||
|
|
|
@ -26,9 +26,16 @@ en:
|
||||||
next: Next
|
next: Next
|
||||||
previous: Back
|
previous: Back
|
||||||
preferences:
|
preferences:
|
||||||
|
data_enrichment_settings:
|
||||||
|
description: Let Maybe auto-categorize, name, and add merchant data to your
|
||||||
|
transactions on each sync. All enrichment is done in English.
|
||||||
|
self_host_disclaimer: This will incur Synth API credits.
|
||||||
|
title: Transaction enrichment (English only)
|
||||||
show:
|
show:
|
||||||
country: Country
|
country: Country
|
||||||
currency: Currency
|
currency: Currency
|
||||||
|
data: Data enrichment
|
||||||
|
data_subtitle: Enable data enrichment for your accounts
|
||||||
date_format: Date format
|
date_format: Date format
|
||||||
general_subtitle: Configure your preferences
|
general_subtitle: Configure your preferences
|
||||||
general_title: General
|
general_title: General
|
||||||
|
|
|
@ -2,10 +2,6 @@
|
||||||
en:
|
en:
|
||||||
settings:
|
settings:
|
||||||
hostings:
|
hostings:
|
||||||
data_enrichment_settings:
|
|
||||||
description: Enable data enrichment for your account transactions. This will
|
|
||||||
incur additional Synth credits.
|
|
||||||
title: Data Enrichment
|
|
||||||
invite_code_settings:
|
invite_code_settings:
|
||||||
description: Every new user that joins your instance of Maybe can only do
|
description: Every new user that joins your instance of Maybe can only do
|
||||||
so via an invite code
|
so via an invite code
|
||||||
|
|
5
db/migrate/20241217141716_add_enrichment_setting.rb
Normal file
5
db/migrate/20241217141716_add_enrichment_setting.rb
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
class AddEnrichmentSetting < ActiveRecord::Migration[7.2]
|
||||||
|
def change
|
||||||
|
add_column :families, :data_enrichment_enabled, :boolean, default: false
|
||||||
|
end
|
||||||
|
end
|
3
db/schema.rb
generated
3
db/schema.rb
generated
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema[7.2].define(version: 2024_12_12_141453) do
|
ActiveRecord::Schema[7.2].define(version: 2024_12_17_141716) do
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "pgcrypto"
|
enable_extension "pgcrypto"
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
@ -222,6 +222,7 @@ ActiveRecord::Schema[7.2].define(version: 2024_12_12_141453) do
|
||||||
t.string "country", default: "US"
|
t.string "country", default: "US"
|
||||||
t.datetime "last_synced_at"
|
t.datetime "last_synced_at"
|
||||||
t.string "timezone"
|
t.string "timezone"
|
||||||
|
t.boolean "data_enrichment_enabled", default: false
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "good_job_batches", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
create_table "good_job_batches", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue