Sha256: 18b4c5a60e54b1f32e901ef50baf9571e3472e871722f6884e374e26c262ac5a

Contents?: true

Size: 693 Bytes

Versions: 1

Compression:

Stored size: 693 Bytes

Contents

<%= autogenerated_model_warning %>

class Role < ApplicationRecord
  validates :canvas_id, uniqueness: true, presence: true
  has_many :admins, foreign_key: :canvas_role_id, primary_key: :canvas_id

  def self.create_or_update(role_params)
    role = Role.find_or_initialize_by(canvas_id: role_params['id'])

    role.assign_attributes(label: role_params['label'],
                           base_role_type: role_params['base_role_type'],
                           account: role_params['account'],
                           permissions: role_params['permissions'],
                           workflow_state: role_params['workflow_state'])

    role.save! if role.changed?
    role
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
canvas_sync-0.10.0 lib/canvas_sync/generators/templates/models/role.rb