Sha256: 73d096ec6a7a6e5871d95d6baa7c114c7d2e5b6a23b9f189a6b7e40ecd1dbb14
Contents?: true
Size: 1.55 KB
Versions: 1
Compression:
Stored size: 1.55 KB
Contents
# Routine for getting account updates from the Accounts server # # Should be scheduled to run regularly module OpenStax module Accounts class SyncAccounts SYNC_ATTRIBUTES = ['username', 'first_name', 'last_name', 'full_name', 'title', 'faculty_status', 'salesforce_contact_id'] lev_routine transaction: :no_transaction protected def exec(options={}) return if OpenStax::Accounts.configuration.enable_stubbing? response = OpenStax::Accounts::Api.get_application_account_updates app_accounts = [] app_accounts_rep = OpenStax::Accounts::Api::V1::ApplicationAccountsRepresenter .new(app_accounts) app_accounts_rep.from_json(response.body) return if app_accounts.empty? updated_app_accounts = [] app_accounts.each do |app_account| account = OpenStax::Accounts::Account.where( openstax_uid: app_account.account.openstax_uid ).first || app_account.account account.syncing = true if account != app_account.account SYNC_ATTRIBUTES.each do |attribute| account.send("#{attribute}=", app_account.account.send(attribute)) end end next unless account.save updated_app_accounts << {user_id: account.openstax_uid, read_updates: app_account.unread_updates} end OpenStax::Accounts::Api.mark_account_updates_as_read(updated_app_accounts) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
openstax_accounts-7.3.0 | app/routines/openstax/accounts/sync_accounts.rb |