Commit cfbb36d

mokha <mokha@cisco.com>
2018-06-07 19:07:08
move scim classes to scim module.
1 parent aa3f6f9
app/models/scim/user_mapper.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+module SCIM
+  class UserMapper
+    def initialize(url_helpers)
+      @url_helpers = url_helpers
+    end
+
+    def map_from(user)
+      Scim::Shady::User.build do |x|
+        x.id = user.uuid
+        x.username = user.email
+        x.created_at = user.created_at
+        x.updated_at = user.updated_at
+        x.location = @url_helpers.scim_v2_users_url(user)
+        x.version = user.lock_version
+        x.emails do |y|
+          y.add(user.email, primary: true)
+        end
+      end
+    end
+  end
+end
app/models/scim/user_repository.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+module SCIM
+  class UserRepository
+    attr_reader :mapper
+
+    def initialize(mapper)
+      @mapper = mapper
+    end
+
+    def find!(id)
+      mapper.map_from(User.find_by!(uuid: id))
+    end
+
+    def create!(params)
+      password = SecureRandom.hex(32)
+      mapper.map_from(User.create!(email: params[:userName], password: password))
+    end
+
+    def update!(id, params)
+      user = User.find_by!(uuid: id)
+      user.update!(email: params[:userName])
+      mapper.map_from(user)
+    end
+
+    def destroy!(id)
+      User.find_by!(uuid: id).destroy!
+    end
+  end
+end
app/models/user_mapper.rb
@@ -1,21 +0,0 @@
-# frozen_string_literal: true
-
-class UserMapper
-  def initialize(url_helpers)
-    @url_helpers = url_helpers
-  end
-
-  def map_from(user)
-    Scim::Shady::User.build do |x|
-      x.id = user.uuid
-      x.username = user.email
-      x.created_at = user.created_at
-      x.updated_at = user.updated_at
-      x.location = @url_helpers.scim_v2_users_url(user)
-      x.version = user.lock_version
-      x.emails do |y|
-        y.add(user.email, primary: true)
-      end
-    end
-  end
-end
app/models/user_repository.rb
@@ -1,28 +0,0 @@
-# frozen_string_literal: true
-
-class UserRepository
-  attr_reader :mapper
-
-  def initialize(mapper)
-    @mapper = mapper
-  end
-
-  def find!(id)
-    mapper.map_from(User.find_by!(uuid: id))
-  end
-
-  def create!(params)
-    password = SecureRandom.hex(32)
-    mapper.map_from(User.create!(email: params[:userName], password: password))
-  end
-
-  def update!(id, params)
-    user = User.find_by!(uuid: id)
-    user.update!(email: params[:userName])
-    mapper.map_from(user)
-  end
-
-  def destroy!(id)
-    User.find_by!(uuid: id).destroy!
-  end
-end
config/initializers/spank.rb
@@ -2,10 +2,10 @@
 
 container = Spank::Container.new
 container.register(:user_repository) do |x|
-  UserRepository.new(x.resolve(:user_mapper))
+  SCIM::UserRepository.new(x.resolve(:user_mapper))
 end.as_singleton
 container.register(:user_mapper) do |x|
-  UserMapper.new(x.resolve(:url_helpers))
+  SCIM::UserMapper.new(x.resolve(:url_helpers))
 end.as_singleton
 container.register(:url_helpers) do |_container|
   Rails.application.routes.url_helpers
db/schema.rb
@@ -10,7 +10,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 20180311010910) do
+ActiveRecord::Schema.define(version: 2018_03_11_010910) do
 
   create_table "sessions", force: :cascade do |t|
     t.string "session_id", null: false