#
# Monitor status of board minutes
#

=begin
The code checks the collate_minutes log file and the file
    www/board/minutes/index.html

Possible status level responses:
Danger - log contains an Exception message
Info - Log contains some other content
Success - Log is present, but empty
Fatal - log or index are not present/readable (status level is generated by caller)

=end

require 'time'

def StatusMonitor.board_minutes(previous_status)
  index = File.expand_path('../../www/board/minutes/index.html')
  log = File.read(File.expand_path('../../www/logs/collate_minutes'))

  if log =~ /\*\*\* (Exception.*) \*\*\*/
    {
      level: 'danger',
      data: $1,
      href: '../logs/collate_minutes'
    }
  elsif log.length > 0
    {
      level: 'info',
      data: "Last updated: #{File.mtime(index)}",
      href: '../logs/collate_minutes'
    }
  else
    {mtime: File.mtime(index).gmtime.iso8601, level: 'success'} # to agree with normalise
  end
end

# for debugging purposes
if __FILE__ == $0
  require_relative 'unit_test'
  runtest('board_minutes') # must agree with method name above
end
