rails-pinterest 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: acea05888eb1f4e066d2ccd569c06247dafcc2017c6d00ce8ca8d6ba09123e79
4
- data.tar.gz: 34f53ac40b094a888c2a2ddde8ebe4b21c6abe012a262e60ad337c3257607ad2
3
+ metadata.gz: c2511d23d52e43b2316914cd9ae42d5420a9677471f417c3d725c36c58abaabe
4
+ data.tar.gz: 17ca93046f01b103c386a01fcf3048da5736f14168cb6f9e27ddb4a3f554d5e9
5
5
  SHA512:
6
- metadata.gz: aa1d8f190e023964ee127492199ea371d27a9c4701f6cd15d152ff16fcfe2cdafc3d33d81b132fff78eaf9862063943f6d6f5f30e6bf0080cf97024f73adfde9
7
- data.tar.gz: 7a1019812589c76673aee7ebd408dc2496dc8b31cbbb2665d42c72824cfa46b84661b22a78327698f17d029f74858a226d4b2d5fe5b2d14c2ddce3c9b5fc6037
6
+ metadata.gz: dd55a3c51bb89ea98999bc7b9c11c79aeb2fc5ba03f9fbc0fe69dcc4b0fd2156725a57261fea987450329e7242c4841c820c300a290f04f3db11ca9104fc4a9a
7
+ data.tar.gz: 2cff0ae0bfe401e66c8445f8aef9222576c69d6227f05b2e229e9c043df2129b36bb1e71f43545e8b2f6ac4874135b2d0f73b4c89d22e92a9557a4de92b4c1e1
data/CHANGELOG.md CHANGED
@@ -44,4 +44,21 @@
44
44
  - Fix param requirement for Media#register_media_upload
45
45
 
46
46
  ## [0.2.3] - 2024-03-11
47
- - Revert V.0.2.3
47
+ - Revert V.0.2.3
48
+
49
+ ## [0.2.4] - 2024-04-09
50
+ - Add User Account to API
51
+
52
+ ## [0.2.5] - 2024-05-10
53
+ - Add the beta endpoint https://developer.pinterest.com/docs/api/v5/#operation/multi_pins/analytics (it doesn't really work right now)
54
+ - Example usage:
55
+ ```ruby
56
+ client = Pinterest::Client.new(access_token: "some-access-token")
57
+ params = {
58
+ pin_ids: ["920634348815764178","920634348815790715","920634348815829069","920634348815865049","920634348815897303","920634348815911959","920634348815943797","920634348816238458","920634348816183143","920634348816403644","920634348816488886","920634348816699966"],
59
+ start_date: "2024-03-01",
60
+ end_date: "2024-05-10",
61
+ metric_types: ["IMPRESSION", "OUTBOUND_CLICK", "PIN_CLICK", "SAVE", "SAVE_RATE", "VIDEO_MRC_VIEW", "VIDEO_10S_VIEW", "QUARTILE_95_PERCENT_VIEW", "VIDEO_V50_WATCH_TIME", "VIDEO_START", "VIDEO_AVG_WATCH_TIME", "TOTAL_COMMENTS", "TOTAL_REACTIONS"]
62
+ }
63
+ response = client.pins.get_multiple_pin_analytics(ids: params[:pin_ids], start_date: params[:start_date], end_date: params[:end_date], metric_types: params[:metric_types], parameters: {})
64
+ ```
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rails-pinterest (0.2.3)
4
+ rails-pinterest (0.2.5)
5
5
  faraday (>= 1)
6
6
  faraday-multipart (>= 1)
7
7
 
data/README.md CHANGED
@@ -260,4 +260,7 @@ The gem is available as open source under the terms of the [MIT License](https:/
260
260
  Everyone interacting in the Ruby Pinterest project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/royalgiant/rails-pinterest/blob/main/CODE_OF_CONDUCT.md).
261
261
 
262
262
  ## Influences
263
- Project heavily influenced by [https://github.com/alexrudall/ruby-openai](https://github.com/alexrudall/ruby-openai). Great project, go give them a star!
263
+ Project heavily influenced by [https://github.com/alexrudall/ruby-openai](https://github.com/alexrudall/ruby-openai). Great project, go give them a star!
264
+
265
+ ## Where Is Rails-Pinterest Used?
266
+ Currently used by [Imagifyr](https://imagifyr.com) to allow creators to schedule their content. SEO Optimized with AI.
@@ -46,5 +46,9 @@ module Pinterest
46
46
  def media
47
47
  @media ||= Pinterest::Media.new(client: self)
48
48
  end
49
+
50
+ def user_account
51
+ @user_account ||= Pinterest::UserAccount.new(client: self)
52
+ end
49
53
  end
50
54
  end
@@ -24,8 +24,12 @@ module Pinterest
24
24
  @client.patch(path: "/pins/#{id}", parameters: parameters)
25
25
  end
26
26
 
27
- def get_pin_analytics(id:, parameters: {})
28
- @client.get(path: "/pins/#{id}/analytics", parameters: parameters)
27
+ def get_pin_analytics(id:, start_date:, end_date:, metric_types:, parameters: {})
28
+ @client.get(path: "/pins/#{id}/analytics?start_date=#{start_date}&end_date=#{end_date}&metric_types=#{metric_types}", parameters: parameters)
29
+ end
30
+
31
+ def get_multiple_pin_analytics(ids:, start_date:, end_date:, metric_types:, parameters: {})
32
+ @client.get(path: "/pins/analytics?pin_ids=#{ids}&start_date=#{start_date}&end_date=#{end_date}&metric_types=#{metric_types}", parameters: parameters)
29
33
  end
30
34
 
31
35
  def save_pin(id: , parameters: {})
@@ -0,0 +1,144 @@
1
+ module Pinterest
2
+ class UserAccount
3
+ def initialize(client: nil)
4
+ @client = client
5
+ end
6
+
7
+ def get_user_account(parameters: {})
8
+ @client.get(path: "/user_account", parameters: parameters)
9
+ end
10
+
11
+ def get_user_account_analytics(start_date:, end_date:, parameters: {})
12
+ query_string = "/user_account/analytics?start_date=#{start_date}&end_date=#{end_date}"
13
+ if parameters[:from_claimed_content] && !parameters[:from_claimed_content].empty?
14
+ query_string += "&from_claimed_content=#{parameters[:from_claimed_content]}"
15
+ end
16
+ if parameters[:pin_format] && !parameters[:pin_format].empty?
17
+ query_string += "&pin_format=#{parameters[:pin_format]}"
18
+ end
19
+ if parameters[:app_types] && !parameters[:app_types].empty?
20
+ query_string += "&app_types=#{parameters[:app_types]}"
21
+ end
22
+ if parameters[:content_type] && !parameters[:content_type].empty?
23
+ query_string += "&content_type=#{parameters[:content_type]}"
24
+ end
25
+ if parameters[:source] && !parameters[:source].empty?
26
+ query_string += "&source=#{parameters[:source]}"
27
+ end
28
+ if parameters[:metric_types] && !parameters[:metric_types].empty?
29
+ query_string += "&metric_types=#{parameters[:metric_types]}"
30
+ end
31
+ if parameters[:split_field] && !parameters[:split_field].empty?
32
+ query_string += "&split_field=#{parameters[:split_field]}"
33
+ end
34
+ if parameters[:ad_account_id] && !parameters[:ad_account_id].empty?
35
+ query_string += "&ad_account_id=#{parameters[:ad_account_id]}"
36
+ end
37
+ @client.get(path: query_string, parameters: parameters)
38
+ end
39
+
40
+ def get_user_account_top_pins_analytics(start_date:, end_date:, sort_by:, parameters: {})
41
+ query_string = "/user_account/analytics?start_date=#{start_date}&end_date=#{end_date}&sort_by=#{sort_by}"
42
+ if parameters[:from_claimed_content] && !parameters[:from_claimed_content].empty?
43
+ query_string += "&from_claimed_content=#{parameters[:from_claimed_content]}"
44
+ end
45
+ if parameters[:pin_format] && !parameters[:pin_format].empty?
46
+ query_string += "&pin_format=#{parameters[:pin_format]}"
47
+ end
48
+ if parameters[:app_types] && !parameters[:app_types].empty?
49
+ query_string += "&app_types=#{parameters[:app_types]}"
50
+ end
51
+ if parameters[:content_type] && !parameters[:content_type].empty?
52
+ query_string += "&content_type=#{parameters[:content_type]}"
53
+ end
54
+ if parameters[:source] && !parameters[:source].empty?
55
+ query_string += "&source=#{parameters[:source]}"
56
+ end
57
+ if parameters[:metric_types] && !parameters[:metric_types].empty?
58
+ query_string += "&metric_types=#{parameters[:metric_types]}"
59
+ end
60
+ if parameters[:num_of_pins] && !parameters[:num_of_pins].empty?
61
+ query_string += "&num_of_pins=#{parameters[:num_of_pins]}"
62
+ end
63
+ if parameters[:created_in_last_n_days] && !parameters[:created_in_last_n_days].empty?
64
+ query_string += "&created_in_last_n_days=#{parameters[:created_in_last_n_days]}"
65
+ end
66
+ if parameters[:ad_account_id] && !parameters[:ad_account_id].empty?
67
+ query_string += "&ad_account_id=#{parameters[:ad_account_id]}"
68
+ end
69
+ @client.get(path: query_string, parameters: parameters)
70
+ end
71
+
72
+ def get_user_account_top_video_pins_analytics(start_date:, end_date:, sort_by:, parameters: {})
73
+ query_string = "/user_account/analytics?start_date=#{start_date}&end_date=#{end_date}&sort_by=#{sort_by}"
74
+ if parameters[:from_claimed_content] && !parameters[:from_claimed_content].empty?
75
+ query_string += "&from_claimed_content=#{parameters[:from_claimed_content]}"
76
+ end
77
+ if parameters[:pin_format] && !parameters[:pin_format].empty?
78
+ query_string += "&pin_format=#{parameters[:pin_format]}"
79
+ end
80
+ if parameters[:app_types] && !parameters[:app_types].empty?
81
+ query_string += "&app_types=#{parameters[:app_types]}"
82
+ end
83
+ if parameters[:content_type] && !parameters[:content_type].empty?
84
+ query_string += "&content_type=#{parameters[:content_type]}"
85
+ end
86
+ if parameters[:source] && !parameters[:source].empty?
87
+ query_string += "&source=#{parameters[:source]}"
88
+ end
89
+ if parameters[:metric_types] && !parameters[:metric_types].empty?
90
+ query_string += "&metric_types=#{parameters[:metric_types]}"
91
+ end
92
+ if parameters[:num_of_pins] && !parameters[:num_of_pins].empty?
93
+ query_string += "&num_of_pins=#{parameters[:num_of_pins]}"
94
+ end
95
+ if parameters[:created_in_last_n_days] && !parameters[:created_in_last_n_days].empty?
96
+ query_string += "&created_in_last_n_days=#{parameters[:created_in_last_n_days]}"
97
+ end
98
+ if parameters[:ad_account_id] && !parameters[:ad_account_id].empty?
99
+ query_string += "&ad_account_id=#{parameters[:ad_account_id]}"
100
+ end
101
+ @client.get(path: query_string, parameters: parameters)
102
+ end
103
+
104
+ def list_linked_businesses(parameters: {})
105
+ @client.get(path: "/user_account/businesses", parameters: parameters)
106
+ end
107
+
108
+ def list_followers(parameters: {})
109
+ @client.get(path: "/user_account/followers", parameters: parameters)
110
+ end
111
+
112
+ def list_following(parameters: {})
113
+ @client.get(path: "/user_account/following", parameters: parameters)
114
+ end
115
+
116
+ def list_following_boards(parameters: {})
117
+ @client.get(path: "/user_account/following/boards", parameters: parameters)
118
+ end
119
+
120
+ def follow_user(username:, parameters: {})
121
+ @client.json_post(path: "/user_account/following/#{username}", parameters: parameters)
122
+ end
123
+
124
+ def verify_website(parameters: {})
125
+ @client.json_post(path: "/user_account/websites", parameters: parameters)
126
+ end
127
+
128
+ def get_user_websites(parameters: {})
129
+ @client.get(path: "/user_account/websites", parameters: parameters)
130
+ end
131
+
132
+ def unverify_website(website:)
133
+ @client.delete(path: "/user_account/websites?website=#{website}")
134
+ end
135
+
136
+ def get_user_verification_code_for_website_claiming(parameters: {})
137
+ @client.get(path: "/user_account/websites/verification", parameters: parameters)
138
+ end
139
+
140
+ def list_following_interests(username:, parameters: {})
141
+ @client.get(path: "/users/#{username}/interests/follow", parameters: parameters)
142
+ end
143
+ end
144
+ end
@@ -1,3 +1,3 @@
1
1
  module Pinterest
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.5"
3
3
  end
data/lib/pinterest.rb CHANGED
@@ -8,6 +8,7 @@ require_relative "pinterest/media"
8
8
  require_relative "pinterest/oauth"
9
9
  require_relative "pinterest/pins"
10
10
  require_relative "pinterest/terms"
11
+ require_relative "pinterest/user_account"
11
12
  require_relative "pinterest/version"
12
13
 
13
14
  module Pinterest
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-pinterest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Donald Lee
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-03-12 00:00:00.000000000 Z
11
+ date: 2024-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -65,6 +65,7 @@ files:
65
65
  - lib/pinterest/oauth.rb
66
66
  - lib/pinterest/pins.rb
67
67
  - lib/pinterest/terms.rb
68
+ - lib/pinterest/user_account.rb
68
69
  - lib/pinterest/version.rb
69
70
  - lib/ruby/pinterest.rb
70
71
  - rails-pinterest.gemspec