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