Sha256: ff61e046517741181b19fe658a132a3e314763e88ab33567676cb3d7a562d018

Contents?: true

Size: 952 Bytes

Versions: 86

Compression:

Stored size: 952 Bytes

Contents

# frozen_string_literal: true

module PlatformSdk
  module PencilSpaces
    module Models
      class UserWithRole
        attr_accessor :role, :user_id

        VALID_ROLES = %i[host participant].freeze

        def initialize(user_id, user_role_in_space = nil)
          @user_id = user_id
          return unless user_role_in_space

          validate_role!(user_role_in_space)
          @role = user_role_in_space
        end

        def as_json
          json = {}
          instance_variables.each do |var|
            key = var.to_s.delete("@")
            key = "userId" if key == "user_id"
            json[key] = instance_variable_get(var).to_s if instance_variable_get(var)
          end
          json
        end

        private

        def validate_role!(role)
          return if VALID_ROLES.include?(role)

          raise ArgumentError, "Invalid role: #{role}, must be one of #{VALID_ROLES}"
        end
      end
    end
  end
end

Version data entries

86 entries across 86 versions & 1 rubygems

Version Path
strongmind-platform-sdk-3.26.0 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.25.0 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.24.0 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.23.7 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.23.6 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.23.5 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.23.4 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.23.3 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.23.2 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.23.1 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.23.0 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.22.1 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.22.0 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.21.8 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.21.7 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.21.6 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.21.5 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.21.4 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.21.3 lib/platform_sdk/pencil_spaces/models/user_with_role.rb
strongmind-platform-sdk-3.21.2 lib/platform_sdk/pencil_spaces/models/user_with_role.rb