diff --git a/lib/tweet_base.rb b/lib/tweet_base.rb index 5fb371127..069f92b07 100644 --- a/lib/tweet_base.rb +++ b/lib/tweet_base.rb @@ -39,16 +39,29 @@ class TweetBase } if auth user = User.find(auth.user_id) - if (!user_data[:note] || user_data[:note].empty?) && tweet_user.description - user_data[:note] = tweet_user.description - end + map = { + note: 'description', + web: 'website', + address: 'location', + } + + # ignore if value is already set + map.each {|target, source| + next if user[target] && !user[target].empty? + new_value = tweet_user.send(source).to_s + next if !new_value || new_value.empty? + user_data[target] = new_value + } user.update_attributes(user_data) else user_data[:login] = tweet_user.screen_name user_data[:firstname] = tweet_user.name - user_data[:note] = tweet_user.description - user_data[:active] = true - user_data[:roles] = Role.where(name: 'Customer') + user_data[:web] = tweet_user.website.to_s + user_data[:note] = tweet_user.description + user_data[:address] = tweet_user.location + user_data[:active] = true + user_data[:roles] = Role.where(name: 'Customer') + user = User.create(user_data) end diff --git a/test/integration/twitter_test.rb b/test/integration/twitter_test.rb index 7680eb2c6..c8741841a 100644 --- a/test/integration/twitter_test.rb +++ b/test/integration/twitter_test.rb @@ -58,6 +58,10 @@ class TwitterTest < ActiveSupport::TestCase oauth_token: armin_theo_token, oauth_token_secret: armin_theo_token_secret, }, + user: { + screen_name: '@armin_theo', + id: '1234', + }, sync: { search: [ { @@ -236,7 +240,7 @@ class TwitterTest < ActiveSupport::TestCase config.access_token = armin_theo_token config.access_token_secret = armin_theo_token_secret end - dms = client.direct_messages(count: 40) + dms = client.direct_messages(count: 100) dms.each {|dm| client.destroy_direct_message(dm.id) } @@ -246,7 +250,7 @@ class TwitterTest < ActiveSupport::TestCase access_token: me_bauer_token, access_token_secret: me_bauer_token_secret ) - dms = client.direct_messages(count: 40) + dms = client.direct_messages(count: 100) dms.each {|dm| client.destroy_direct_message(dm.id) } @@ -346,7 +350,7 @@ class TwitterTest < ActiveSupport::TestCase # check if ticket and article has been created article = Ticket::Article.find_by(message_id: dm.id) break if article - sleep 10 + sleep 15 } assert(article, "inbound article '#{text}' created")