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