Class: ZendeskGuidePermissionGroup

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/generators/guidepost/templates/zendesk_guide_permission_group.rb

Class Method Summary collapse

Class Method Details

.find_or_create_permission_groups(options = {}) ⇒ Object



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
# File 'lib/generators/guidepost/templates/zendesk_guide_permission_group.rb', line 4

def self.find_or_create_permission_groups(options={})
    permission_groups = options[:permission_groups]
    permission_group_objects = options[:permission_group_objects]
    allowed_attributes = [
        :permission_group_id,
        :name,
        :edit, 
        :publish,
        :permission_group_created_at,
        :permission_group_updated_at,
        :built_in
    ]

    permission_groups.each do |p|
        permission_group_hash = p.clone

        permission_group_hash[:permission_group_id] = permission_group_hash["id"]
        permission_group_hash.delete("id")

        permission_group_hash[:permission_group_created_at] = permission_group_hash["created_at"]
        permission_group_hash.delete("created_at")

        permission_group_hash[:permission_group_updated_at] = permission_group_hash["updated_at"]
        permission_group_hash.delete("updated_at")

        permission_group_hash.symbolize_keys!

        permission_group_hash.each_key do |k|
            permission_group_hash.delete(k) if !allowed_attributes.include?(k)
        end

        permission_group = ZendeskGuidePermissionGroup.where(permission_group_id: permission_group_hash[:permission_group_id]).first
        permission_group.update(permission_group_hash) if !permission_group.nil?
        permission_group = ZendeskGuidePermissionGroup.create(permission_group_hash) if permission_group.nil?

        permission_group_objects << permission_group
    end
end