main
 1# frozen_string_literal: true
 2
 3module SCIM
 4  class UserRepository
 5    attr_reader :mapper
 6
 7    def initialize(mapper)
 8      @mapper = mapper
 9    end
10
11    def find!(id)
12      mapper.map_from(::User.find(id))
13    end
14
15    def create!(params)
16      password = SecureRandom.hex(32)
17      mapper.map_from(
18        ::User.create!(
19          email: params[:userName],
20          password: password,
21          locale: params[:locale],
22          timezone: params[:timezone]
23        )
24      )
25    end
26
27    def update!(id, params)
28      user = ::User.find(id)
29      user.update!(
30        email: params[:userName],
31        locale: params[:locale],
32        timezone: params[:timezone]
33      )
34      mapper.map_from(user)
35    end
36
37    def destroy!(id)
38      ::User.find(id).destroy!
39    end
40  end
41end