Class: PostProxy::Resources::Profiles
- Inherits:
-
Object
- Object
- PostProxy::Resources::Profiles
- Defined in:
- lib/postproxy/resources/profiles.rb
Instance Method Summary collapse
-
#assign_placement_to_group(id, placement_id:, target_profile_group_id:, profile_group_id: nil) ⇒ Object
Moves a placement (e.g. a Facebook Page or Telegram channel) to another profile group.
- #delete(id, profile_group_id: nil) ⇒ Object
- #delete_ice_breakers(id, profile_group_id: nil) ⇒ Object
- #get(id, profile_group_id: nil) ⇒ Object
-
#get_profile_stats(id, placement_id: nil, from: nil, to: nil, profile_group_id: nil) ⇒ Object
placement_idis required for facebook, linkedin, and telegram profiles. -
#ice_breakers(id, profile_group_id: nil) ⇒ Object
Lists DM ice breakers.
-
#initialize(client) ⇒ Profiles
constructor
A new instance of Profiles.
- #list(profile_group_id: nil) ⇒ Object
- #placements(id, profile_group_id: nil) ⇒ Object
-
#set_ice_breakers(id, ice_breakers, profile_group_id: nil) ⇒ Object
Replaces the DM ice breakers for a profile (1-4 items).
Constructor Details
#initialize(client) ⇒ Profiles
Returns a new instance of Profiles.
4 5 6 |
# File 'lib/postproxy/resources/profiles.rb', line 4 def initialize(client) @client = client end |
Instance Method Details
#assign_placement_to_group(id, placement_id:, target_profile_group_id:, profile_group_id: nil) ⇒ Object
Moves a placement (e.g. a Facebook Page or Telegram channel) to another
profile group. placement_id is the placement's external ID as
returned by #placements.
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/postproxy/resources/profiles.rb', line 42 def assign_placement_to_group(id, placement_id:, target_profile_group_id:, profile_group_id: nil) result = @client.request(:patch, "/profiles/#{id}/assign_placement_to_group", json: { placement_id: placement_id, target_profile_group_id: target_profile_group_id }, profile_group_id: profile_group_id ) Placement.new(**result) end |
#delete(id, profile_group_id: nil) ⇒ Object
74 75 76 77 |
# File 'lib/postproxy/resources/profiles.rb', line 74 def delete(id, profile_group_id: nil) result = @client.request(:delete, "/profiles/#{id}", profile_group_id: profile_group_id) SuccessResponse.new(**result) end |
#delete_ice_breakers(id, profile_group_id: nil) ⇒ Object
69 70 71 72 |
# File 'lib/postproxy/resources/profiles.rb', line 69 def delete_ice_breakers(id, profile_group_id: nil) result = @client.request(:delete, "/profiles/#{id}/ice_breakers", profile_group_id: profile_group_id) SuccessResponse.new(**result) end |
#get(id, profile_group_id: nil) ⇒ Object
14 15 16 17 |
# File 'lib/postproxy/resources/profiles.rb', line 14 def get(id, profile_group_id: nil) result = @client.request(:get, "/profiles/#{id}", profile_group_id: profile_group_id) Profile.new(**result) end |
#get_profile_stats(id, placement_id: nil, from: nil, to: nil, profile_group_id: nil) ⇒ Object
placement_id is required for facebook, linkedin, and telegram profiles.
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/postproxy/resources/profiles.rb', line 26 def get_profile_stats(id, placement_id: nil, from: nil, to: nil, profile_group_id: nil) params = {} params[:placement_id] = placement_id if placement_id params[:from] = from if from params[:to] = to if to result = @client.request(:get, "/profiles/#{id}/stats", params: params.empty? ? nil : params, profile_group_id: profile_group_id ) ProfileStatsResponse.new(data: result[:data]) end |
#ice_breakers(id, profile_group_id: nil) ⇒ Object
Lists DM ice breakers. Supported for Instagram profiles only.
54 55 56 57 |
# File 'lib/postproxy/resources/profiles.rb', line 54 def ice_breakers(id, profile_group_id: nil) result = @client.request(:get, "/profiles/#{id}/ice_breakers", profile_group_id: profile_group_id) IceBreakersResponse.new(**result) end |
#list(profile_group_id: nil) ⇒ Object
8 9 10 11 12 |
# File 'lib/postproxy/resources/profiles.rb', line 8 def list(profile_group_id: nil) result = @client.request(:get, "/profiles", profile_group_id: profile_group_id) profiles = (result[:data] || []).map { |p| Profile.new(**p) } ListResponse.new(data: profiles) end |
#placements(id, profile_group_id: nil) ⇒ Object
19 20 21 22 23 |
# File 'lib/postproxy/resources/profiles.rb', line 19 def placements(id, profile_group_id: nil) result = @client.request(:get, "/profiles/#{id}/placements", profile_group_id: profile_group_id) items = (result[:data] || []).map { |p| Placement.new(**p) } ListResponse.new(data: items) end |
#set_ice_breakers(id, ice_breakers, profile_group_id: nil) ⇒ Object
Replaces the DM ice breakers for a profile (1-4 items).
60 61 62 63 64 65 66 67 |
# File 'lib/postproxy/resources/profiles.rb', line 60 def set_ice_breakers(id, ice_breakers, profile_group_id: nil) items = ice_breakers.map { |ib| ib.is_a?(IceBreaker) ? ib.to_h : ib } result = @client.request(:post, "/profiles/#{id}/ice_breakers", json: { ice_breakers: items }, profile_group_id: profile_group_id ) SuccessResponse.new(**result) end |