Sha256: caf28b77f1965f1c921c85509cbc404ca387786fb6cfe203a8e8718987735ae7
Contents?: true
Size: 935 Bytes
Versions: 1
Compression:
Stored size: 935 Bytes
Contents
# frozen_string_literal: true # Parse PATCH request class ScimPatch attr_accessor :operations def initialize(params, mutable_attributes_schema) unless params['schemas'] == ['urn:ietf:params:scim:api:messages:2.0:PatchOp'] raise ScimRails::ExceptionHandler::UnsupportedPatchRequest 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
scimaenaga-0.7.0 | app/libraries/scim_patch.rb |