Managing loaner chromebooks for students and teachers in the HUUSD school district.
at main 69 lines 1.6 kB view raw
1# == Schema Information 2# 3# Table name: authentications 4# 5# id :integer not null, primary key 6# created_at :datetime not null 7# updated_at :datetime not null 8# 9class Authentication < ApplicationRecord 10 include AASM 11 12 # Track creation of an Authentication instance 13 after_create :measure_creation 14 15 # Track destruction of an Authentication instance 16 after_destroy :measure_destruction 17 18 def initialize(session, user) 19 StatsD.increment("authentication.initialized") 20 StatsD.measure("authentication.initialization_time") do 21 session[:current_authentication] = self 22 @user_id = user.id 23 end 24 end 25 26 def destroy(session) 27 StatsD.increment("authentication.destroyed") 28 StatsD.measure("authentication.destruction_time") do 29 session[:current_authentication] = nil 30 @user_id = nil 31 end 32 end 33 34 def user 35 StatsD.increment("authentication.user_lookup") 36 StatsD.measure("authentication.user_lookup_time") do 37 User.find_by(id: @user_id) 38 end 39 end 40 41 def user=(user) 42 StatsD.increment("authentication.user_set") 43 StatsD.measure("authentication.user_set_time") do 44 @user_id = user.id 45 end 46 end 47 48 private 49 50 def measure_creation 51 StatsD.measure("authentication.creation_time") do 52 track_creation 53 end 54 end 55 56 def track_creation 57 StatsD.increment("authentication.created") 58 end 59 60 def measure_destruction 61 StatsD.measure("authentication.destruction_time") do 62 track_destruction 63 end 64 end 65 66 def track_destruction 67 StatsD.increment("authentication.deleted") 68 end 69end