Class: CommandTower::Deserializers::Admin::Users::UpdateRolesDeserializer

Inherits:
CommandTower::Deserializers::ApplicationDeserializer show all
Defined in:
app/deserializers/command_tower/deserializers/admin/users.rb

Defined Under Namespace

Classes: Input

Instance Method Summary collapse

Methods inherited from CommandTower::Deserializers::ApplicationDeserializer

call

Instance Method Details

#call(params) ⇒ Object



189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
# File 'app/deserializers/command_tower/deserializers/admin/users.rb', line 189

def call(params)
  id = IdentityId.coerce(fetch_param(params, :id).value)
  return failure(errors: { message: "invalid_id" }) if id.nil?

  raw = fetch_param(params, :roles).value
  unless raw.is_a?(Array)
    return failure(errors: { message: "invalid_roles" })
  end

  roles = raw.map { |value| value.to_s.strip }
  if roles.any?(&:blank?)
    return failure(errors: { message: "invalid_roles" })
  end

  success(
    Input.new(
      id:,
      roles:,
      scope_value: CommandTower::Deserializers::Admin::ScopeParameter.extract(
        params,
        tool_id: ShowDeserializer::TOOL_ID
      )
    )
  )
end