Class: PostProxy::Resources::Profiles

Inherits:
Object
  • Object
show all
Defined in:
lib/postproxy/resources/profiles.rb

Instance Method Summary collapse

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

#delete(id, profile_group_id: nil) ⇒ Object



39
40
41
42
# File 'lib/postproxy/resources/profiles.rb', line 39

def delete(id, profile_group_id: nil)
  result = @client.request(:delete, "/profiles/#{id}", 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

#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