diff options
| author | Xinhui | 2016-08-10 10:43:13 +0200 |
|---|---|---|
| committer | Xinhui | 2016-08-10 10:43:13 +0200 |
| commit | 53526748c12eb790647b656254b009a08278b70f (patch) | |
| tree | dae69edd198142e25f9334391cd3d9568ed96987 /lib/tasks/users.rake | |
| parent | 0857749941849c71a6d24f2a38891d3c19964126 (diff) | |
| download | chouette-core-53526748c12eb790647b656254b009a08278b70f.tar.bz2 | |
Refactoring move portail sync code into models
Diffstat (limited to 'lib/tasks/users.rake')
| -rw-r--r-- | lib/tasks/users.rake | 40 |
1 files changed, 1 insertions, 39 deletions
diff --git a/lib/tasks/users.rake b/lib/tasks/users.rake index 76250f0f0..c045639c1 100644 --- a/lib/tasks/users.rake +++ b/lib/tasks/users.rake @@ -1,44 +1,6 @@ namespace :users do - def api_retrieve_user - conf = Rails.application.config.try(:stif_portail_api) - raise 'Rails.application.config.stif_portail_api settings is not defined' unless conf - - conn = Faraday.new(:url => conf[:url]) do |c| - c.headers['Authorization'] = "Token token=\"#{conf[:key]}\"" - c.adapter Faraday.default_adapter - end - - resp = conn.get '/api/v1/users' - if resp.status == 200 - JSON.parse resp.body - else - raise "Error on api request status : #{resp.status} => #{resp.body}" - end - end - - def sync_users data - data.each do |el| - User.find_or_create_by(username: el['username']).tap do |user| - user.name = "#{el['firstname']} #{el['lastname']}" - user.email = el['email'] - user.locked_at = el['locked_at'] - user.synced_at = Time.now - - # Set organisation - user.organisation = Organisation.find_or_create_by(code: el['organization_code']).tap do |org| - org.name = el['organization_name'] - org.synced_at = Time.now - end - - user.save if user.changed? - puts "✓ user #{user.username} has been updated" unless Rails.env.test? - end - end - end - desc "Sync users from stif portail" task sync: :environment do - data = api_retrieve_user - sync_users(data) if data + User.portail_sync end end |
