class FlimperPoncho::Users::Queries::Find

Public Class Methods

new(jwt_token:) click to toggle source
# File lib/flimper_poncho/users/queries/find.rb, line 5
def initialize(jwt_token:)
  @jwt_token = jwt_token
end

Public Instance Methods

run() click to toggle source
# File lib/flimper_poncho/users/queries/find.rb, line 9
def run
  OpenStruct.new(id: decoded_jwt['id'], email: decoded_jwt['email'], permissions: permissions)
end

Private Instance Methods

decoded_jwt() click to toggle source
# File lib/flimper_poncho/users/queries/find.rb, line 15
def decoded_jwt
  @decoded_jwt ||= JWT.decode(@jwt_token, ENV.fetch('PONCHO_API_SIGNATURE_KEY'), true, algorithm: 'HS256')[0]
end
permissions() click to toggle source
# File lib/flimper_poncho/users/queries/find.rb, line 19
def permissions
  @permissions ||= decoded_jwt.dig('permissions').map do |perm|
    OpenStruct.new(email: perm['email'], resource_code: perm['resource_code'], level: perm['level'])
  end
end