mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-08-05 21:45:23 +02:00
Data provider simplification, tests, and documentation (#1997)
* Ignore env.test from source control * Simplification of providers interface * Synth tests * Update money to use new find rates method * Remove unused issues code * Additional issue feature removals * Update price data fetching and tests * Update documentation for providers * Security test fixes * Fix self host test * Update synth usage data access * Remove AI pr schema changes
This commit is contained in:
parent
dd75cadebc
commit
f65b93a352
95 changed files with 2014 additions and 1638 deletions
|
@ -37,7 +37,7 @@
|
|||
required: true %>
|
||||
</div>
|
||||
<% else %>
|
||||
<%= form.text_field :manual_ticker, label: "Ticker", placeholder: "AAPL", required: true %>
|
||||
<%= form.text_field :manual_ticker, label: "Ticker symbol", placeholder: "AAPL", required: true %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
|
|
|
@ -17,13 +17,6 @@
|
|||
</p>
|
||||
<% else %>
|
||||
<%= link_to account.name, account, class: [(account.is_active ? "text-primary" : "text-subdued"), "text-sm font-medium hover:underline"], data: { turbo_frame: "_top" } %>
|
||||
<% if account.has_issues? %>
|
||||
<div class="text-sm flex items-center gap-1 text-error">
|
||||
<%= lucide_icon "alert-octagon", class: "shrink-0 w-4 h-4" %>
|
||||
<%= tag.span t(".has_issues") %>
|
||||
<%= link_to t(".troubleshoot"), issue_path(account.issues.first), class: "underline", data: { turbo_frame: :drawer } %>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<%# locals: (family:) %>
|
||||
|
||||
<% if family.requires_data_provider? && family.synth_client.nil? %>
|
||||
<% if family.requires_data_provider? && Providers.synth.nil? %>
|
||||
<details class="group bg-yellow-tint-10 rounded-lg p-2 text-yellow-600 mb-3 text-xs">
|
||||
<summary class="flex items-center justify-between gap-2">
|
||||
<div class="flex items-center gap-2">
|
||||
|
|
|
@ -35,8 +35,4 @@
|
|||
<%= render "accounts/show/menu", account: account %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% if account.highest_priority_issue %>
|
||||
<%= render partial: "issues/issue", locals: { issue: account.highest_priority_issue } %>
|
||||
<% end %>
|
||||
</header>
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
<p>The Synth data provider could not find the requested data.</p>
|
||||
|
||||
<p>We are actively developing Synth to be a low cost and easy to use data provider. You can help us improve Synth by
|
||||
requesting the data you need.</p>
|
||||
|
||||
<p>Please post in our <%= link_to "Discord server", "https://link.maybe.co/discord", target: "_blank" %> with the
|
||||
following information:</p>
|
||||
|
||||
<ul>
|
||||
<li>What type of data is missing?</li>
|
||||
<li>Any other information you think might be helpful</li>
|
||||
</ul>
|
|
@ -1,28 +0,0 @@
|
|||
<%= content_for :title, @issue.title %>
|
||||
|
||||
<%= content_for :description do %>
|
||||
<p>You have set your family currency preference to <%= Current.family.currency %>. <%= @issue.issuable.name %> has
|
||||
entries in another currency, which means we have to fetch exchange rates from a data provider to accurately show
|
||||
historical results.</p>
|
||||
|
||||
<p>We have detected that your exchange rates provider is not configured yet.</p>
|
||||
<% end %>
|
||||
|
||||
<%= content_for :action do %>
|
||||
<% if self_hosted? %>
|
||||
<p>To fix this issue, you need to provide an API key for your exchange rate provider.</p>
|
||||
|
||||
<p>Currently, we support <%= link_to "Synth Finance", "https://synthfinance.com", target: "_blank" %>, so you need
|
||||
to
|
||||
get a free API key from the link provided.</p>
|
||||
|
||||
<p>Once you have your API key, paste it below to configure it.</p>
|
||||
|
||||
<%= styled_form_with model: @issue, url: issue_exchange_rate_provider_missing_path(@issue), method: :patch, class: "space-y-3" do |form| %>
|
||||
<%= form.text_field :synth_api_key, label: "Synth API Key", placeholder: "Synth API Key", type: "password", class: "w-full", value: Setting.synth_api_key %>
|
||||
<%= form.submit "Save and Re-Sync Account", class: "btn-primary" %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<p>Please contact the Maybe team.</p>
|
||||
<% end %>
|
||||
<% end %>
|
|
@ -1,11 +0,0 @@
|
|||
<%= content_for :title, @issue.title %>
|
||||
|
||||
<%= content_for :description do %>
|
||||
<p>Some exchange rates are missing for this account.</p>
|
||||
|
||||
<pre><code><%= JSON.pretty_generate(@issue.data) %></code></pre>
|
||||
<% end %>
|
||||
|
||||
<%= content_for :action do %>
|
||||
<%= render "issue/request_synth_data_action" %>
|
||||
<% end %>
|
|
@ -1,11 +0,0 @@
|
|||
<%= content_for :title, @issue.title %>
|
||||
|
||||
<%= content_for :description do %>
|
||||
<p>Some stock prices are missing for this account.</p>
|
||||
|
||||
<pre><code><%= JSON.pretty_generate(@issue.data) %></code></pre>
|
||||
<% end %>
|
||||
|
||||
<%= content_for :action do %>
|
||||
<%= render "issue/request_synth_data_action" %>
|
||||
<% end %>
|
|
@ -1,23 +0,0 @@
|
|||
<%= content_for :title, @issue.title %>
|
||||
|
||||
<%= content_for :description do %>
|
||||
<p>An unknown issue has occurred.</p>
|
||||
|
||||
<pre><code><%= JSON.pretty_generate(@issue.data || "No data provided for this issue") %></code></pre>
|
||||
<% end %>
|
||||
|
||||
<%= content_for :action do %>
|
||||
<p>There is no fix for this issue yet.</p>
|
||||
|
||||
<p>Maybe is in active development and we value your feedback. There are a couple ways you can report this issue to
|
||||
help us make Maybe better:</p>
|
||||
|
||||
<ul>
|
||||
<li>Post in our <%= link_to "Discord server", "https://link.maybe.co/discord", target: "_blank" %></li>
|
||||
<li>Open an issue on
|
||||
our <%= link_to "Github repository", "https://github.com/maybe-finance/maybe/issues", target: "_blank" %></li>
|
||||
</ul>
|
||||
|
||||
<p>If there is data shown in the code block above that you think might be helpful, please include it in your
|
||||
report.</p>
|
||||
<% end %>
|
|
@ -1,15 +0,0 @@
|
|||
<%# locals: (issue:) %>
|
||||
|
||||
<% priority_class = issue.critical? || issue.error? ? "bg-error/5" : "bg-warning/5" %>
|
||||
<% text_class = issue.critical? || issue.error? ? "text-error" : "text-warning" %>
|
||||
|
||||
<%= tag.div class: "flex gap-6 items-center rounded-xl px-4 py-3 #{priority_class}" do %>
|
||||
<div class="flex gap-3 items-center grow <%= text_class %>">
|
||||
<%= lucide_icon("alert-octagon", class: "w-5 h-5 shrink-0") %>
|
||||
<p class="text-sm break-words"><%= issue.title %></p>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center gap-4 ml-auto">
|
||||
<%= link_to "Troubleshoot", issue_path(issue), class: "#{text_class} font-medium hover:underline", data: { turbo_frame: :drawer } %>
|
||||
</div>
|
||||
<% end %>
|
|
@ -1,15 +0,0 @@
|
|||
<%= render "layouts/shared/htmldoc" do %>
|
||||
<%= drawer do %>
|
||||
<article class="prose">
|
||||
<%= tag.h2 do %>
|
||||
<%= yield :title %>
|
||||
<% end %>
|
||||
|
||||
<%= tag.h3 "Issue Description" %>
|
||||
<%= yield :description %>
|
||||
|
||||
<%= tag.h3 "How to fix this issue" %>
|
||||
<%= yield :action %>
|
||||
</article>
|
||||
<% end %>
|
||||
<% end %>
|
|
@ -30,18 +30,18 @@
|
|||
<div class="space-y-2">
|
||||
<p class="text-sm text-secondary">
|
||||
<%= t(".api_calls_used",
|
||||
used: number_with_delimiter(@synth_usage.used),
|
||||
limit: number_with_delimiter(@synth_usage.limit),
|
||||
percentage: number_to_percentage(@synth_usage.utilization, precision: 1)) %>
|
||||
used: number_with_delimiter(@synth_usage.data.used),
|
||||
limit: number_with_delimiter(@synth_usage.data.limit),
|
||||
percentage: number_to_percentage(@synth_usage.data.utilization, precision: 1)) %>
|
||||
</p>
|
||||
<div class="w-52 h-1.5 bg-gray-100 rounded-2xl">
|
||||
<div class="h-full bg-green-500 rounded-2xl"
|
||||
style="width: <%= [@synth_usage.utilization, 2].max %>%;"></div>
|
||||
style="width: <%= [@synth_usage.data.utilization, 2].max %>%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bg-gray-100 rounded-md px-1.5 py-0.5 w-fit">
|
||||
<p class="text-xs font-medium text-secondary uppercase">
|
||||
<%= t(".plan", plan: @synth_usage.plan) %>
|
||||
<%= t(".plan", plan: @synth_usage.data.plan) %>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue