Class: YiffSpace::Auth::DiscordInfo
- Inherits:
-
Object
- Object
- YiffSpace::Auth::DiscordInfo
- Defined in:
- lib/yiffspace/auth/discord_info.rb
Constant Summary collapse
- ATTRIBUTES =
locale, mfa_enabled, and premium_type are not present for legacy users backfilled from api data, we don’t need that data either way
%i[id flags avatar banner username global_name public_flags discriminator].freeze
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(options = {}, **kwargs) ⇒ DiscordInfo
constructor
A new instance of DiscordInfo.
- #serializable_hash ⇒ Object
- #to_session ⇒ Object
- #update_avatar ⇒ Object
- #update_banner ⇒ Object
Constructor Details
#initialize(options = {}, **kwargs) ⇒ DiscordInfo
Returns a new instance of DiscordInfo.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/yiffspace/auth/discord_info.rb', line 11 def initialize( = {}, **kwargs) @data = .merge(kwargs).with_indifferent_access ATTRIBUTES.each do |attr| instance_variable_set("@#{attr}", @data[attr]) end return unless YiffSpace.config.auth.update_discord_images last_avatar = Rails.cache.fetch("yiffspace:auth:discord_avatar_update:#{id}") = Rails.cache.fetch("yiffspace:auth:discord_banner_update:#{id}") if last_avatar != avatar Rails.cache.write("yiffspace:auth:discord_avatar_update:#{id}", avatar, expires_in: 30.days) update_avatar end return unless != Rails.cache.write("yiffspace:auth:discord_banner_update:#{id}", , expires_in: 30.days) end |
Class Method Details
.from_json(data) ⇒ Object
49 50 51 52 53 54 55 56 |
# File 'lib/yiffspace/auth/discord_info.rb', line 49 def self.from_json(data) raise(ArgumentError, "invalid data") if data.blank? data = JSON.parse(data) if data.is_a?(String) data = ::YiffSpace::Utils::OpenHash.from(data) new(data) end |
.from_session(data) ⇒ Object
58 59 60 61 62 |
# File 'lib/yiffspace/auth/discord_info.rb', line 58 def self.from_session(data) return nil if data.blank? from_json(data) end |
Instance Method Details
#serializable_hash ⇒ Object
41 42 43 |
# File 'lib/yiffspace/auth/discord_info.rb', line 41 def serializable_hash(*) ATTRIBUTES.to_h { |key| [key.to_s, instance_variable_get("@#{key}")] } end |
#to_session ⇒ Object
45 46 47 |
# File 'lib/yiffspace/auth/discord_info.rb', line 45 def to_session serializable_hash end |