Sha256: 7738abe084f93450707f504ce9a8ad0e044457c9b72bd5c4b2b412abde7cecf2

Contents?: true

Size: 1.18 KB

Versions: 42

Compression:

Stored size: 1.18 KB

Contents

class Zendesk2::Client::Group < Zendesk2::Model
  extend Zendesk2::Attributes

  PARAMS = %w[name]

  # @return [Integer] Automatically assigned when creating groups
  identity :id, type: :integer

  # @return [Time] The time the group was created
  attribute :created_at, type: :time
  # @return [Boolean] Deleted groups get marked as such
  attribute :deleted, type: :boolean
  # @return [String] The name of the group
  attribute :name, type: :string
  # @return [Time] The time of the last update of the group
  attribute :updated_at, type: :time
  # @return [String] The API url of this group
  attribute :url, type: :string

  def save!
    data = if new_record?
             requires :name
             connection.create_group(params).body["group"]
           else
             requires :identity
             connection.update_group(params.merge("id" => self.identity)).body["group"]
           end

    merge_attributes(data)
  end

  def destroy!
    requires :identity

    connection.destroy_group("id" => self.identity)
    self.deleted = true
  end

  def destroyed?
    self.deleted
  end

  private

  def params
    Cistern::Hash.slice(Zendesk2.stringify_keys(attributes), *PARAMS)
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
zendesk2-1.4.2 lib/zendesk2/client/models/group.rb
zendesk2-1.4.1 lib/zendesk2/client/models/group.rb
zendesk2-1.4.0 lib/zendesk2/client/models/group.rb
zendesk2-1.3.3 lib/zendesk2/client/models/group.rb
zendesk2-1.3.2 lib/zendesk2/client/models/group.rb
zendesk2-1.3.1 lib/zendesk2/client/models/group.rb
zendesk2-1.3.0 lib/zendesk2/client/models/group.rb
zendesk2-1.2.10 lib/zendesk2/client/models/group.rb
zendesk2-1.2.9 lib/zendesk2/client/models/group.rb
zendesk2-1.2.7 lib/zendesk2/client/models/group.rb
zendesk2-1.2.6 lib/zendesk2/client/models/group.rb
zendesk2-1.2.5 lib/zendesk2/client/models/group.rb
zendesk2-1.2.4 lib/zendesk2/client/models/group.rb
zendesk2-1.2.3 lib/zendesk2/client/models/group.rb
zendesk2-1.2.2 lib/zendesk2/client/models/group.rb
zendesk2-1.2.1 lib/zendesk2/client/models/group.rb
zendesk2-1.2.0 lib/zendesk2/client/models/group.rb
zendesk2-1.1.3 lib/zendesk2/client/models/group.rb
zendesk2-1.1.2 lib/zendesk2/client/models/group.rb
zendesk2-1.0.0 lib/zendesk2/client/models/group.rb