Comparing changes
v0.2.8
→
v0.2.9
3 commits
5 files changed
Commits
Changed files (5)
lib
scim
kit
v2
spec
scim
kit
lib/scim/kit/v2/templates/resource.json.jbuilder
@@ -1,12 +1,14 @@
# frozen_string_literal: true
json.key_format! camelize: :lower
-json.meta do
- render meta, json: json
+if meta.location
+ json.meta do
+ render meta, json: json
+ end
end
json.schemas schemas.map(&:id)
-json.id id
-json.external_id external_id
+json.id id if id
+json.external_id external_id if external_id
schemas.each do |schema|
if schema.core?
schema.attributes.each do |type|
lib/scim/kit/v2/meta.rb
@@ -17,6 +17,10 @@ module Scim
@created = @last_modified = Time.now
@version = @created.to_i
end
+
+ def disable_timestamps
+ @version = @created = @last_modified = nil
+ end
end
end
end
lib/scim/kit/v2/resource.rb
@@ -16,8 +16,9 @@ module Scim
validates_presence_of :id
validate :schema_validations
- def initialize(schemas:, location:)
+ def initialize(schemas:, location: nil)
@meta = Meta.new(schemas[0].name, location)
+ @meta.disable_timestamps
@schemas = schemas
schemas.each do |schema|
define_attributes_for(schema.attributes)
lib/scim/kit/version.rb
@@ -2,6 +2,6 @@
module Scim
module Kit
- VERSION = '0.2.8'
+ VERSION = '0.2.9'
end
end
spec/scim/kit/v2/resource_spec.rb
@@ -158,4 +158,12 @@ RSpec.describe Scim::Kit::V2::Resource do
specify { expect(subject.errors[:hero]).to be_present }
end
end
+
+ context 'when submitting new record' do
+ subject { described_class.new(schemas: schemas) }
+
+ specify { expect(subject.as_json.key?(:meta)).to be(false) }
+ specify { expect(subject.as_json.key?(:id)).to be(false) }
+ specify { expect(subject.as_json.key?(:externalId)).to be(false) }
+ end
end