period_working_minutes.rb 507 B

123456789101112131415161718192021222324
  1. class Escalation
  2. class PeriodWorkingMinutes
  3. def initialize(start_time, end_time, ticket, biz)
  4. @start_time = start_time
  5. @end_time = end_time
  6. @ticket = ticket
  7. @biz = biz
  8. end
  9. def period_working_minutes
  10. @biz.within(timeframe_start, timeframe_end).in_minutes
  11. end
  12. private
  13. def timeframe_start
  14. [@ticket.created_at, @start_time].compact.max
  15. end
  16. def timeframe_end
  17. [@ticket.close_at, @end_time].compact.min
  18. end
  19. end
  20. end