Class: YiffSpace::Auth::DiscordInfo
- Inherits:
-
Object
- Object
- YiffSpace::Auth::DiscordInfo
- Defined in:
- lib/yiffspace/auth/discord_info.rb
Constant Summary collapse
- ATTRIBUTES =
%i[id flags avatar banner locale username avatar_url banner_url global_name mfa_enabled 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.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/yiffspace/auth/discord_info.rb', line 9 def initialize( = {}, **kwargs) = .merge(kwargs).with_indifferent_access ATTRIBUTES.each do |attr| instance_variable_set("@#{attr}", [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
47 48 49 50 51 52 53 54 |
# File 'lib/yiffspace/auth/discord_info.rb', line 47 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
56 57 58 59 60 |
# File 'lib/yiffspace/auth/discord_info.rb', line 56 def self.from_session(data) return nil if data.blank? from_json(data) end |
Instance Method Details
#serializable_hash ⇒ Object
39 40 41 |
# File 'lib/yiffspace/auth/discord_info.rb', line 39 def serializable_hash ATTRIBUTES.to_h { |key| [key.to_s, instance_variable_get("@#{key}")] } end |
#to_session ⇒ Object
43 44 45 |
# File 'lib/yiffspace/auth/discord_info.rb', line 43 def to_session serializable_hash end |