1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-19 05:09:38 +02:00

Add country_code attribute to Security model and related classes
Some checks are pending
Publish Docker image / ci (push) Waiting to run
Publish Docker image / Build docker image (push) Blocked by required conditions

* Update Security model to include country_code in the data definition.
* Modify Provider::SecurityConcept to define country_code for security.
* Enhance Provider::Synth to extract country_code from security data.
* Update Security::Provided to include country_code when creating security instances.
* Adjust Security::SynthComboboxOption to add country_code as an attribute.
* Revise combobox_security partial to conditionally display country flag and code.
This commit is contained in:
Josh Pigford 2025-05-22 09:45:08 -05:00
parent fd3b583737
commit a7438e5c78
6 changed files with 25 additions and 9 deletions

View file

@ -1,7 +1,7 @@
module Provider::SecurityConcept
extend ActiveSupport::Concern
Security = Data.define(:symbol, :name, :logo_url, :exchange_operating_mic)
Security = Data.define(:symbol, :name, :logo_url, :exchange_operating_mic, :country_code)
SecurityInfo = Data.define(:symbol, :name, :links, :logo_url, :description, :kind, :exchange_operating_mic)
Price = Data.define(:symbol, :date, :price, :currency, :exchange_operating_mic)

View file

@ -106,6 +106,7 @@ class Provider::Synth < Provider
name: security.dig("name"),
logo_url: security.dig("logo_url"),
exchange_operating_mic: security.dig("exchange", "operating_mic_code"),
country_code: security.dig("exchange", "country_code")
)
end
end

View file

@ -21,6 +21,7 @@ class Security < ApplicationRecord
name: name,
logo_url: logo_url,
exchange_operating_mic: exchange_operating_mic,
country_code: country_code
)
end

View file

@ -22,6 +22,7 @@ module Security::Provided
name: provider_security.name,
logo_url: provider_security.logo_url,
exchange_operating_mic: provider_security.exchange_operating_mic,
country_code: provider_security.country_code
)
end
else

View file

@ -1,7 +1,7 @@
class Security::SynthComboboxOption
include ActiveModel::Model
attr_accessor :symbol, :name, :logo_url, :exchange_operating_mic
attr_accessor :symbol, :name, :logo_url, :exchange_operating_mic, :country_code
def id
"#{symbol}|#{exchange_operating_mic}" # submitted by combobox as value

View file

@ -1,5 +1,6 @@
<div class="flex items-center">
<%= image_tag(combobox_security.logo_url, class: "rounded-full h-8 w-8 inline-block mr-2" ) %>
<div class="flex items-center justify-between w-full">
<div class="flex flex-col">
<span class="text-sm font-medium">
<%= combobox_security.name.presence || combobox_security.symbol %>
@ -8,4 +9,16 @@
<%= "#{combobox_security.symbol} (#{combobox_security.exchange_operating_mic})" %>
</span>
</div>
<% if combobox_security.country_code.present? %>
<div class="flex items-center bg-container-inset rounded-sm px-1.5 py-1 gap-1">
<%= image_tag("https://hatscripts.github.io/circle-flags/flags/#{combobox_security.country_code.downcase}.svg",
class: "h-4 rounded-sm", # h-3 (12px) matches text-xs, w-5 for 3:5 aspect ratio
alt: "#{combobox_security.country_code.upcase} flag",
title: combobox_security.country_code.upcase) %>
<span class="text-xs text-secondary">
<%= combobox_security.country_code.upcase %>
</span>
</div>
<% end %>
</div>
</div>