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