Sha256: b81148073db9531efd0a0b8efc0bc9b4203a0ff5f8824a17ef5a96e033bb47c3
Contents?: true
Size: 1020 Bytes
Versions: 1
Compression:
Stored size: 1020 Bytes
Contents
# frozen_string_literal: true module CurrentSession # # Interface for manipulating http request objects # module Interface extend ActiveSupport::Concern class_methods do def call(request) update(request).current_user.present? end def update(request) session_repository(request).find_by_token { |user| self.current_user = user } self end def create(request) auth = @auth_class.new(request) auth.call do |user| auth.update(user) session_repository(request).update_session_token(user) end end def destroy(request) self.current_user = nil session_repository(request).delete_session_token end private def session_repository(request) @session_class.new( request: request, user_class: user_class, session_token_class: session_token_class, current_time: current_time(request) ) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
current_session-0.1.6 | lib/current_session/interface.rb |