main
1# frozen_string_literal: true
2
3module Saml
4 module Kit
5 class Conditions
6 include XmlParseable
7
8 attr_reader :content
9
10 def initialize(node)
11 @to_nokogiri = node
12 @content = node.to_s
13 end
14
15 def started_at
16 parse_iso8601(at_xpath('./@NotBefore').try(:value))
17 end
18
19 def expired_at
20 parse_iso8601(at_xpath('./@NotOnOrAfter').try(:value))
21 end
22
23 def audiences
24 search('./saml:AudienceRestriction/saml:Audience').map(&:text)
25 end
26
27 private
28
29 def parse_iso8601(value)
30 DateTime.parse(value)
31 rescue StandardError => error
32 Saml::Kit.logger.error(error)
33 Time.at(0).to_datetime
34 end
35 end
36 end
37end