Commit d3c3421
Changed files (4)
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
@@ -18,6 +18,7 @@ module Scim
def initialize(schemas:, location:)
@meta = Meta.new(schemas[0].name, location)
+ @meta.disable_timestamps
@schemas = schemas
schemas.each do |schema|
define_attributes_for(schema.attributes)
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, location: nil) }
+
+ 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