Class: Socialcast::CommandLine::ProvisionPhoto::ApiSyncStrategy
- Inherits:
-
Object
- Object
- Socialcast::CommandLine::ProvisionPhoto::ApiSyncStrategy
- Defined in:
- lib/socialcast/command_line/provision_photo.rb
Constant Summary collapse
- MAX_BATCH_SIZE =
50
Instance Attribute Summary collapse
-
#http_config ⇒ Object
readonly
Returns the value of attribute http_config.
-
#provisioner ⇒ Object
readonly
Returns the value of attribute provisioner.
Instance Method Summary collapse
- #batch_size ⇒ Object
-
#initialize(provisioner) ⇒ ApiSyncStrategy
constructor
A new instance of ApiSyncStrategy.
- #process(user_photos, options = {}) ⇒ Object
Constructor Details
#initialize(provisioner) ⇒ ApiSyncStrategy
Returns a new instance of ApiSyncStrategy.
110 111 112 |
# File 'lib/socialcast/command_line/provision_photo.rb', line 110 def initialize(provisioner) @provisioner = provisioner end |
Instance Attribute Details
#http_config ⇒ Object (readonly)
Returns the value of attribute http_config.
106 107 108 |
# File 'lib/socialcast/command_line/provision_photo.rb', line 106 def http_config @http_config end |
#provisioner ⇒ Object (readonly)
Returns the value of attribute provisioner.
105 106 107 |
# File 'lib/socialcast/command_line/provision_photo.rb', line 105 def provisioner @provisioner end |
Instance Method Details
#batch_size ⇒ Object
127 128 129 |
# File 'lib/socialcast/command_line/provision_photo.rb', line 127 def batch_size MAX_BATCH_SIZE end |
#process(user_photos, options = {}) ⇒ Object
114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/socialcast/command_line/provision_photo.rb', line 114 def process(user_photos, = {}) @http_config = [:http_config] @force_sync = [:force_sync] search_users_resource = Socialcast::CommandLine.resource_for_path '/api/users/search', http_config user_emails_query = user_photos.map { |email, _| "\"#{email}\"" }.join(" OR ") user_search_response = search_users_resource.get(:params => { :q => user_emails_query, :per_page => batch_size }, :accept => :json) JSON.parse(user_search_response)['users'].each do |user_hash| email = user_hash['contact_info']['email'] sync_photo(user_hash, user_photos[email]) end end |