Commit 707ad20
Changed files (4)
app
spec
requests
scim
app/controllers/scim/v2/users_controller.rb
@@ -8,7 +8,7 @@ module Scim
)
response.headers['Content-Type'] = 'application/scim+json'
response.headers['Location'] = scim_v2_users_url(@user)
- render status: :created
+ render json: @user.to_scim(self), status: :created
end
private
app/models/user.rb
@@ -23,6 +23,17 @@ class User < ApplicationRecord
nil
end
+ def to_scim(url_helpers)
+ Scim::Shady::User.build do |x|
+ x.id = uuid
+ x.username = email
+ x.created_at = created_at
+ x.updated_at = updated_at
+ x.location = url_helpers.scim_v2_users_url(self)
+ x.version = lock_version
+ end
+ end
+
private
def access_token
app/views/scim/v2/users/create.jbuilder
@@ -1,10 +0,0 @@
-json.schemas [Scim::Shady::Schemas::USER]
-json.id @user.id
-json.userName @user.email
-json.meta do
- json.resourceType "User"
- json.created @user.created_at.iso8601
- json.lastModified @user.updated_at.iso8601
- json.location scim_v2_users_url(@user)
- json.version @user.lock_version
-end
spec/requests/scim/v2/users_spec.rb
@@ -29,8 +29,8 @@ describe '/scim/v2/users' do
expect(json[:meta][:resourceType]).to eql('User')
expect(json[:meta][:created]).to be_present
expect(json[:meta][:lastModified]).to be_present
- expect(json[:meta][:location]).to be_present
expect(json[:meta][:version]).to be_present
+ expect(json[:meta][:location]).to be_present
end
end
end