Sha256: 6bb68493ae4ca355d6275c7bd36e3847adb6c660cde727c428f06e53bec074ac
Contents?: true
Size: 929 Bytes
Versions: 2
Compression:
Stored size: 929 Bytes
Contents
# frozen_string_literal: true # Parse PATCH request class ScimPatch attr_accessor :operations def initialize(params, mutable_attributes_schema) # FIXME: raise proper error. unless params['schemas'] == ['urn:ietf:params:scim:api:messages:2.0:PatchOp'] raise StandardError end if params['Operations'].nil? raise ScimRails::ExceptionHandler::UnsupportedPatchRequest end @operations = params['Operations'].map do |operation| ScimPatchOperation.new(operation['op'], operation['path'], operation['value'], mutable_attributes_schema) end end def save(model) model.transaction do @operations.each do |operation| operation.save(model) end model.save! if model.changed? end rescue ActiveRecord::RecordNotFound raise rescue StandardError raise ScimRails::ExceptionHandler::UnsupportedPatchRequest end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
scimaenaga-0.6.2 | app/libraries/scim_patch.rb |
scimaenaga-0.6.1 | app/libraries/scim_patch.rb |