Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
j_ember_platform / lib / tasks / j_ember_platform_tasks.rake
Size: Mime:
# desc "Explaining what the task does"
# task :j_ember_platform do
#   # Task goes here
# end

namespace :j_ember_platform do
  desc "Update Social Feed Teaspoon (JS) test fixtures from JPlatform"
  task update_fixtures: :environment do
    update_j_ember_platform_fixtures
  end

  def update_j_ember_platform_fixtures
    content = "# To update this file, run 'rake j_ember_platform:update_fixtures'\n"
    content += "# To change what feeds / data is loaded, modify lib/tasks/j_ember_platform_tasks.rake\n\n"
    content += "window.FIXTURES ?= {}\n\n"

    auth_token = ENV['J_PLATFORM_CLIENT_ACCESS_TOKEN'] || '71cc6534a07213e96e23162a8816ac460553f709754f95e9706c22f1f88d6352'

    # FIXME: have to fake for now :P
    user_me = '{"id":1,"first_name":"Jugnoo","last_name":"Dev","email":"dev@jugnoo.com","full_name":"Jugnoo Dev","role":"super_admin","status":"active","created_at":"2013-12-12T21:11:35.227Z","updated_at":"2014-06-18T18:56:33.831Z","avatar":{"url_thumb":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/thumb/msn-620140618-24041-1dg7h6f.gif?1403117793","url_medium":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/medium/msn-620140618-24041-1dg7h6f.gif?1403117793","url":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/original/msn-620140618-24041-1dg7h6f.gif?1403117793"},"organization":{"id":1,"name":"Jugnoo","super_admin":{"id":1,"first_name":"Jugnoo","last_name":"Dev","email":"dev@jugnoo.com","full_name":"Jugnoo Dev","role":"super_admin","status":"active","created_at":"2013-12-12T21:11:35.227Z","updated_at":"2014-06-18T18:56:33.831Z","avatar":{"url_thumb":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/thumb/msn-620140618-24041-1dg7h6f.gif?1403117793","url_medium":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/medium/msn-620140618-24041-1dg7h6f.gif?1403117793","url":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/original/msn-620140618-24041-1dg7h6f.gif?1403117793"},"apps_data":{}},"created_at":"2013-12-12T21:11:33.391Z","members":[{"id":3,"first_name":"Constance","last_name":"Pagac","email":"user2@jugnoo.com","full_name":"Constance Pagac","role":"member","status":"active","created_at":"2013-12-12T21:11:36.549Z","updated_at":"2014-02-26T16:17:07.543Z","avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{}},{"id":1,"first_name":"Jugnoo","last_name":"Dev","email":"dev@jugnoo.com","full_name":"Jugnoo Dev","role":"super_admin","status":"active","created_at":"2013-12-12T21:11:35.227Z","updated_at":"2014-06-18T18:56:33.831Z","avatar":{"url_thumb":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/thumb/msn-620140618-24041-1dg7h6f.gif?1403117793","url_medium":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/medium/msn-620140618-24041-1dg7h6f.gif?1403117793","url":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/original/msn-620140618-24041-1dg7h6f.gif?1403117793"},"apps_data":{}},{"id":4,"first_name":"Joey","last_name":"Bednar","email":"user3@jugnoo.com","full_name":"Joey Bednar","role":"member","status":"active","created_at":"2013-12-12T21:11:37.058Z","updated_at":"2014-02-26T16:17:07.761Z","avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{}},{"id":5,"first_name":"Juliet","last_name":"Rippin","email":"user4@jugnoo.com","full_name":"Juliet Rippin","role":"member","status":"active","created_at":"2013-12-12T21:11:37.603Z","updated_at":"2014-02-26T16:17:07.962Z","avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{}},{"id":2,"first_name":"Maxwell","last_name":"Durgan","email":"user1@jugnoo.com","full_name":"Maxwell Durgan","role":"member","status":"active","created_at":"2013-12-12T21:11:36.049Z","updated_at":"2014-02-26T16:17:07.329Z","avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{}}]},"clients":[{"id":1,"name":"Seed Client","description":null,"status":"active","is_suspended":false,"created_at":"2013-12-12T21:11:39.262Z","updated_at":"2014-06-19T15:43:17.877Z","organization_id":1,"admin_ids":[1],"admins":[{"id":1,"first_name":"Jugnoo","last_name":"Dev","email":"dev@jugnoo.com","full_name":"Jugnoo Dev","role":"super_admin","status":"active","created_at":"2013-12-12T21:11:35.227Z","updated_at":"2014-06-18T18:56:33.831Z","avatar":{"url_thumb":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/thumb/msn-620140618-24041-1dg7h6f.gif?1403117793","url_medium":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/medium/msn-620140618-24041-1dg7h6f.gif?1403117793","url":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/original/msn-620140618-24041-1dg7h6f.gif?1403117793"},"apps_data":{}}],"projects_count":3,"social_accounts_count":4,"members_count":1,"ticket_lists_count":2,"avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url_large":"http://dev1.jugnoocorp.com/images/avatars/large/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{},"project_ids":[3,1,2],"social_account_ids":[10,1,3,2],"member_ids":[1],"ticket_list_ids":[1,2]},{"id":5,"name":"TD Bank","description":"Test delete","status":"active","is_suspended":false,"created_at":"2014-01-03T17:09:30.933Z","updated_at":"2014-06-25T22:37:20.302Z","organization_id":1,"admin_ids":[3,1],"admins":[{"id":3,"first_name":"Constance","last_name":"Pagac","email":"user2@jugnoo.com","full_name":"Constance Pagac","role":"member","status":"active","created_at":"2013-12-12T21:11:36.549Z","updated_at":"2014-02-26T16:17:07.543Z","avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{}},{"id":1,"first_name":"Jugnoo","last_name":"Dev","email":"dev@jugnoo.com","full_name":"Jugnoo Dev","role":"super_admin","status":"active","created_at":"2013-12-12T21:11:35.227Z","updated_at":"2014-06-18T18:56:33.831Z","avatar":{"url_thumb":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/thumb/msn-620140618-24041-1dg7h6f.gif?1403117793","url_medium":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/medium/msn-620140618-24041-1dg7h6f.gif?1403117793","url":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/original/msn-620140618-24041-1dg7h6f.gif?1403117793"},"apps_data":{}}],"projects_count":2,"social_accounts_count":2,"members_count":3,"ticket_lists_count":1,"avatar":{"url_thumb":"http://dev1.jugnoocorp.com/system/clients/avatars/000/000/005/thumb/td-canada-trust-logo-300x25920140604-1282-1m8r0sc.png?1401896777","url_medium":"http://dev1.jugnoocorp.com/system/clients/avatars/000/000/005/medium/td-canada-trust-logo-300x25920140604-1282-1m8r0sc.png?1401896777","url_large":"http://dev1.jugnoocorp.com/system/clients/avatars/000/000/005/large/td-canada-trust-logo-300x25920140604-1282-1m8r0sc.png?1401896777","url":"http://dev1.jugnoocorp.com/system/clients/avatars/000/000/005/original/td-canada-trust-logo-300x25920140604-1282-1m8r0sc.png?1401896777"},"apps_data":{},"project_ids":[7,10],"social_account_ids":[9812,723420],"member_ids":[3,1,2],"ticket_list_ids":[26]},{"id":2,"name":"Jugnoo","description":"","status":"active","is_suspended":false,"created_at":"2013-12-12T21:11:39.352Z","updated_at":"2014-06-26T14:05:34.644Z","organization_id":1,"admin_ids":[4,1,2],"admins":[{"id":4,"first_name":"Joey","last_name":"Bednar","email":"user3@jugnoo.com","full_name":"Joey Bednar","role":"member","status":"active","created_at":"2013-12-12T21:11:37.058Z","updated_at":"2014-02-26T16:17:07.761Z","avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{}},{"id":1,"first_name":"Jugnoo","last_name":"Dev","email":"dev@jugnoo.com","full_name":"Jugnoo Dev","role":"super_admin","status":"active","created_at":"2013-12-12T21:11:35.227Z","updated_at":"2014-06-18T18:56:33.831Z","avatar":{"url_thumb":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/thumb/msn-620140618-24041-1dg7h6f.gif?1403117793","url_medium":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/medium/msn-620140618-24041-1dg7h6f.gif?1403117793","url":"http://dev1.jugnoocorp.com/system/users/avatars/000/000/001/original/msn-620140618-24041-1dg7h6f.gif?1403117793"},"apps_data":{}},{"id":2,"first_name":"Maxwell","last_name":"Durgan","email":"user1@jugnoo.com","full_name":"Maxwell Durgan","role":"member","status":"active","created_at":"2013-12-12T21:11:36.049Z","updated_at":"2014-02-26T16:17:07.329Z","avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{}}],"projects_count":3,"social_accounts_count":25,"members_count":4,"ticket_lists_count":2,"avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url_large":"http://dev1.jugnoocorp.com/images/avatars/large/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{},"project_ids":[8,4,11],"social_account_ids":[25696561,25696560,10418131,10418127,11,8739,4,7339641,1554109,7341810,6419376,5,6,7,8538,4750293,4750300,4750313,7418396,6870958,9,7418395,18200998,12397766,12759145],"member_ids":[4,5,1,2],"ticket_list_ids":[23,24]}],"projects":[{"id":1,"name":"Seed Project 1","description":"Fixed seed data","status":"active","created_at":"2013-12-12T21:11:39.582Z","updated_at":"2014-02-27T21:12:05.271Z","client_id":1,"is_suspended":false,"is_closed":false,"social_accounts_count":4,"client_memberships_count":1,"ticket_lists_count":2,"avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{"precog_key":"E4F8559A-9408-4C4C-A1CB-4094246C96E8"},"social_account_ids":[1,2,3,10],"client_membership_ids":[1],"project_ticket_list_ids":[1,2],"ticket_list_ids":[2,1]},{"id":2,"name":"Seed Project 2","description":"Fixed seed data","status":"active","created_at":"2013-12-12T21:11:39.615Z","updated_at":"2014-02-26T16:17:26.073Z","client_id":1,"is_suspended":false,"is_closed":false,"social_accounts_count":3,"client_memberships_count":1,"ticket_lists_count":1,"avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{"precog_key":"E4F8559A-9408-4C4C-A1CB-4094246C96E8"},"social_account_ids":[1,2,3],"client_membership_ids":[1],"project_ticket_list_ids":[3],"ticket_list_ids":[1]},{"id":7,"name":"TD Aeroplan","description":"","status":"active","created_at":"2014-01-20T20:40:07.350Z","updated_at":"2014-06-25T15:18:35.299Z","client_id":5,"is_suspended":false,"is_closed":false,"social_accounts_count":2,"client_memberships_count":3,"ticket_lists_count":1,"avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{},"social_account_ids":[9812,723420],"client_membership_ids":[66,5,67],"project_ticket_list_ids":[8],"ticket_list_ids":[26]},{"id":10,"name":"Test","description":"","status":"active","created_at":"2014-04-04T20:01:32.140Z","updated_at":"2014-06-04T15:46:17.870Z","client_id":5,"is_suspended":false,"is_closed":false,"social_accounts_count":1,"client_memberships_count":1,"ticket_lists_count":0,"avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{},"social_account_ids":[723420],"client_membership_ids":[5],"project_ticket_list_ids":[],"ticket_list_ids":[]},{"id":8,"name":"No Social Accounts","description":"","status":"active","created_at":"2014-02-03T13:55:43.291Z","updated_at":"2014-06-04T18:35:34.567Z","client_id":2,"is_suspended":false,"is_closed":false,"social_accounts_count":0,"client_memberships_count":2,"ticket_lists_count":0,"avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{},"social_account_ids":[],"client_membership_ids":[22,2],"project_ticket_list_ids":[],"ticket_list_ids":[]},{"id":4,"name":"Jugnoo","description":null,"status":"active","created_at":"2013-12-12T21:11:39.658Z","updated_at":"2014-06-04T18:35:34.567Z","client_id":2,"is_suspended":false,"is_closed":false,"social_accounts_count":23,"client_memberships_count":2,"ticket_lists_count":2,"avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{"precog_key":"E4F8559A-9408-4C4C-A1CB-4094246C96E8"},"social_account_ids":[4,5,6,7,9,11,8739,1554109,4750293,4750300,4750313,6419376,6870958,7339641,7341810,7418395,10418127,10418131,12397766,12759145,18200998,25696560,25696561],"client_membership_ids":[22,2],"project_ticket_list_ids":[6,7],"ticket_list_ids":[23,24]},{"id":11,"name":"Twitter Only","description":"","status":"active","created_at":"2014-06-03T18:37:30.714Z","updated_at":"2014-06-04T18:35:34.567Z","client_id":2,"is_suspended":false,"is_closed":false,"social_accounts_count":4,"client_memberships_count":1,"ticket_lists_count":0,"avatar":{"url_thumb":"http://dev1.jugnoocorp.com/images/avatars/thumb/missing.png","url_medium":"http://dev1.jugnoocorp.com/images/avatars/medium/missing.png","url":"http://dev1.jugnoocorp.com/images/avatars/original/missing.png"},"apps_data":{},"social_account_ids":[4,11,8538,8739],"client_membership_ids":[2],"project_ticket_list_ids":[],"ticket_list_ids":[]}],"apps_data":{}}'
    content += "FIXTURES.user_me = '#{process_response(user_me)}'\n"

    accounts = HTTParty.get("#{api_v1_base}/social_accounts?client_id=1&access_token=#{auth_token}")
    content += "FIXTURES.social_accounts = '#{process_response(accounts.body)}'\n"

    psas = HTTParty.get("#{api_v1_base}/project_social_accounts?project_id=1&access_token=#{auth_token}")
    content += "FIXTURES.project_social_accounts = '#{process_response(psas.body)}'\n"

    # Base feed data
    for i in ["1_3", "2_6", "10_349", "1_1"]
      feed = HTTParty.get("#{api_v1_base}/social_feeds/#{i}?access_token=#{auth_token}")
      msgs = HTTParty.get("#{api_v2_base}/social_messages?social_feed_id=#{i}&include_ticket_ids=true&include_entities=true&project_id=1&access_token=#{auth_token}")

      content += "FIXTURES.social_feed_#{i} = '#{process_response(feed.body)}'\n"
      content += "FIXTURES.social_feed_#{i}_messages = '#{process_response(msgs.body)}'\n"
    end

    # additional social account data
    for i in [1, 2, 4]
      account = HTTParty.get("#{api_v1_base}/social_accounts/#{i}?access_token=#{auth_token}")
      content += "FIXTURES.social_account_#{i} = '#{process_response(account.body)}'\n"
    end

    # create feed
    content += add_create_conversation_feed_fixture

    # Since / until message sets
    messages_sets = [
      {id: "1_3", type: "since", timestamp: "1393275905000"},
      {id: "1_3", type: "until", timestamp: "1391521956000"},
      {id: "1_3", type: "until", timestamp: "1390855377000"},
      {id: "1_3", type: "until", timestamp: "1389712695000"},
      {id: "2_6", type: "until", timestamp: "1391015845000"},
      {id: "10_349", type: "until", timestamp: "1380730208264"}
    ]

    messages_sets.each do |set|
      url = "#{api_v2_base}/social_messages?#{set[:type]}=#{set[:timestamp]}&include_ticket_ids=true&project_id=1&include_entities=true&social_feed_id=#{set[:id]}&access_token=#{auth_token}"
      msgs = HTTParty.get(url)
      content += "FIXTURES.social_feed_#{set[:id]}_messages_#{set[:type]}_#{set[:timestamp]} = '#{process_response(msgs.body)}'\n"
    end

    get_calls = [
      {id: "1_13732925", endpoint: "conversation"},
      {id: "1_12659529", endpoint: "shares"},
      {id: "2_12659646", endpoint: "conversation"},
      {id: "2_12659629", endpoint: "likes"},
    ]

    for call in get_calls
      convo = HTTParty.get("#{api_v1_base}/social_messages/#{call[:id]}/#{call[:endpoint]}?project_id=1&access_token=#{auth_token}")
      content += "FIXTURES.social_message_#{call[:id]}_#{call[:endpoint]} = '#{process_response(convo.body)}'\n"
    end

    content += get_twitter_message_fixtures(auth_token, "1_13769867")
    content += get_facebook_message_fixtures(auth_token, "2_56989813")
    content += get_message_fixture_with_task(auth_token, "1_104053831")

    # search results
    searches = [
      {id: 4, query: "fruitopia"}
    ]

    for search in searches
      results = HTTParty.get("#{api_v1_base}/social_messages/search?viewer_account_ids%5B%5D=#{search[:id]}&query=#{search[:query]}&include_entities=true&access_token=#{auth_token}")
      content += "FIXTURES.social_messages_search_#{search[:id]}_#{search[:query]} = '#{process_response(results.body)}'\n"
    end

    accounts_search = HTTParty.get("#{api_v1_base}/social_accounts/search?project_id=1&query=Teavana&access_token=#{auth_token}")
    content += "FIXTURES.social_accounts_search_teavana = '#{process_response(accounts_search.body)}'\n"

    following_feeds = [
      {id: 11, follower_id: 1, network: "twitter", followed_id: 1192896, followed_nickname: "teavana"},
      {id: 12, follower_id: 2, network: "facebook", followed_id: 15777055, followed_nickname: nil}
    ]

    following_feeds.each do |ff|
      content += add_create_following_feed_fixture(ff[:id], ff[:follower_id], ff[:network], ff[:followed_id], ff[:followed_nickname])
    end

    File.open("spec/javascripts/fixtures/j_ember_platform_fixtures.coffee", "w+") do |f|
      f.write(content)
    end
  end

  def process_response(response_body)
    response_body.gsub("\\","\\\\\\").gsub("'","\\\\'")
  end

  def add_create_conversation_feed_fixture
    ## FIXME: Have to fake this for now.
    # createBody = {
    #   social_feed: {
    #     display_name: nil,
    #     query: "13769867",
    #     feed_type: "conversation",
    #     social_account_id: nil
    #   },
    #   viewer_account_id: "1",
    #   access_token: auth_token
    # }
    # postReq = HTTParty.post("#{api_v1_base}/social_feeds", createBody)
    # resp = postReq.response

    resp = {
      social_feed: {
        id: "1_9",
        type: "SocialFeed::TwitterFeed::Conversation",
        query: "13769867",
        raw_query: "13769867",
        viewer_account_id: "1",
        display_name: nil
      }
    }.to_json

    "FIXTURES.social_feed_create_conversation_1_1376987 = '#{process_response(resp)}'\n"
  end

  def add_create_following_feed_fixture(feed_id, follower_id, network, followed_id, followed_nickname)
    resp = {
      social_feed: {
        id: "#{follower_id}_#{feed_id}",
        type: "SocialFeed::#{network.capitalize}::Following",
        query: followed_nickname.present? ? "@#{followed_nickname}" : followed_id.to_s,
        raw_query: followed_id.to_s,
        viewer_account_id: follower_id.to_s,
        social_account_id: follower_id.to_s,
        display_name: nil
      }
    }.to_json

    "FIXTURES.social_feed_create_following_#{follower_id}_#{followed_id} = '#{process_response(resp)}'\n"
  end

  def get_message_fixtures(auth_token, id, actions)
    # Ideally we should be able to do something like:
    #   results = ""
    #   options = {access_token: auth_token}
    #   actions.each do |action|
    #     endpoint = "#{action}s"
    #     ["post", "delete"].each do |type|
    #       resp = HTTParty.send(type, "#{api_v1_base}/social_messages/#{id}/#{endpoint}", options)
    #       content << "FIXTURES.social_message_#{id}_#{endpoint}_#{type} = '#{process_response(resp.body)}'\n"
    #     end
    #   end
    #   results
    # Unfortunately we have to semi-fake these responses instead, because the "accounts" being used to view the messages
    # are fake seeded accounts, and the responses would be meaningless.

    msg_resp = HTTParty.get("#{api_v2_base}/social_messages/#{id}?include_entities=true&access_token=#{auth_token}")
    msg_json = JSON.parse(msg_resp.body)

    results = ""
    if msg_json["social_message"].present?
      meta = msg_json["social_message"]["metadata"]
      resp_actions = msg_json["social_message"]["available_actions"]
      prev_counts = {}

      actions.each do |action|
        count_field = "#{action}_count"
        actioned_field = "#{action}d" # all actions used right now end in 'e'
        prev_counts[count_field] = meta[count_field]

        [true, false].each do |toggle|
          meta[count_field] = prev_counts[count_field].to_i + (toggle ? 1 : 0)
          meta[actioned_field] = toggle

          resp_action = resp_actions.detect {|a| a["link"] == "#{api_v1_base}/social_messages/#{id}/#{action}s"}
          if resp_action
            resp_action["http_action"] = toggle ? "DELETE" : "POST"
            resp_action["name"]        = toggle ? "un#{action}" : action
          end

          # Fixture:
          results << "FIXTURES.social_message_#{id}_#{action}s_#{toggle ? "post" : "delete"} = '#{process_response(msg_json.to_json)}'\n"
        end
      end
    end
    results
  end

  def get_twitter_message_fixtures(auth_token, id)
    get_message_fixtures(auth_token, id, ["share", "like"])
  end

  def get_facebook_message_fixtures(auth_token, id)
    get_message_fixtures(auth_token, id, ["like"])
  end

  def get_message_fixture_with_task(auth_token, id)
    msg_resp = HTTParty.get("#{api_v2_base}/social_messages/#{id}?include_ticket_ids=true&include_entities=true&access_token=#{auth_token}")
    msg_json = JSON.parse(msg_resp.body) rescue {}

    if (msg = msg_json["social_message"]).present?
      if msg_json["parent_messages"].present? && msg_json["parent_messages"].length > 0 && msg["shared_parent_id"].present?
        modified_message = msg_json["parent_messages"][0]
      else
        modified_message = msg
      end
    end

    modified_message["ticket_ids"] = [1] if modified_message.present?

    # Fixture:
    "FIXTURES.social_message_#{id}_task = '#{process_response(msg_json.to_json)}'\n"
  end

  def api_v1_base
    "#{JPlatform::Default::ENDPOINT}/api/v1"
  end

  def api_v2_base
    "#{Rails.application.config.j_platform_v2_endpoint}/v2"
  end
end