4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/generators/guidepost/templates/zendesk_guide_user_segment.rb', line 4
def self.find_or_create_user_segments(options={})
user_segments = options[:user_segments]
user_segment_objects = options[:user_segment_objects]
allowed_attributes = [
:user_segment_id,
:name,
:user_type,
:group_ids,
:organization_ids,
:tags,
:user_segment_created_at,
:user_segment_updated_at
]
user_segments.each do |s|
user_segment_hash = s.clone
user_segment_hash[:user_segment_id] = user_segment_hash["id"]
user_segment_hash.delete("id")
user_segment_hash[:user_segment_created_at] = user_segment_hash["created_at"]
user_segment_hash.delete("created_at")
user_segment_hash[:user_segment_updated_at] = user_segment_hash["updated_at"]
user_segment_hash.delete("updated_at")
user_segment_hash.symbolize_keys!
user_segment_hash.each_key do |k|
user_segment_hash.delete(k) if !allowed_attributes.include?(k)
end
user_segment = ZendeskGuideUserSegment.where(user_segment_id: user_segment_hash[:user_segment_id]).first
user_segment.update(user_segment_hash) if !user_segment.nil?
user_segment = ZendeskGuideUserSegment.create(user_segment_hash) if user_segment.nil?
user_segment_objects << user_segment
end
end
|