module GovFakeNotify::CurrentService

Public Instance Methods

current_service(store: Store.instance) click to toggle source
# File lib/gov_fake_notify/current_service.rb, line 3
def current_service(store: Store.instance)
  header = request.headers['Authorization'].gsub(/^Bearer /, '')
  store.transaction do
    store.roots.each do |root|
      next unless root.start_with?('apikey')

      return store[root].dup if validate_jwt(header, store[root]['secret_token'])
    end
  end
  nil
end
validate_jwt(token, secret) click to toggle source
# File lib/gov_fake_notify/current_service.rb, line 15
def validate_jwt(token, secret)
  JWT.decode token, secret, 'HS256'
  true
rescue JWT::DecodeError
  false
end