main
 1# frozen_string_literal: true
 2
 3module Scim
 4  module Kit
 5    module V2
 6      # Represents a meta section
 7      class Meta
 8        include Templatable
 9
10        attr_accessor :created, :last_modified, :version
11        attr_reader :location
12        attr_reader :resource_type
13
14        def initialize(resource_type, location)
15          @resource_type = resource_type || 'Unknown'
16          @location = location
17          @created = @last_modified = Time.now
18          @version = @created.to_i
19        end
20
21        def disable_timestamps
22          @version = @created = @last_modified = nil
23        end
24
25        def self.from(hash)
26          meta = Meta.new(hash[:resourceType], hash[:location])
27          meta.created = parse_date(hash[:created])
28          meta.last_modified = parse_date(hash[:lastModified])
29          meta.version = hash[:version]
30          meta
31        end
32
33        def self.parse_date(date)
34          DateTime.parse(date).to_time
35        rescue StandardError
36          nil
37        end
38      end
39    end
40  end
41end