post-for-me 0.1.0.pre.alpha.7 → 0.1.0.pre.alpha.9

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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +38 -0
  3. data/README.md +1 -1
  4. data/lib/post_for_me/errors.rb +25 -11
  5. data/lib/post_for_me/file_part.rb +10 -7
  6. data/lib/post_for_me/internal/transport/base_client.rb +11 -7
  7. data/lib/post_for_me/internal/transport/pooled_net_requester.rb +7 -10
  8. data/lib/post_for_me/internal/type/base_page.rb +1 -1
  9. data/lib/post_for_me/internal/type/file_input.rb +7 -4
  10. data/lib/post_for_me/internal/util.rb +3 -2
  11. data/lib/post_for_me/models/bluesky_configuration_dto.rb +118 -3
  12. data/lib/post_for_me/models/create_social_post.rb +221 -2
  13. data/lib/post_for_me/models/facebook_configuration_dto.rb +137 -4
  14. data/lib/post_for_me/models/instagram_configuration_dto.rb +135 -4
  15. data/lib/post_for_me/models/linkedin_configuration_dto.rb +118 -3
  16. data/lib/post_for_me/models/pinterest_configuration_dto.rb +118 -3
  17. data/lib/post_for_me/models/social_account_create_auth_url_params.rb +43 -1
  18. data/lib/post_for_me/models/social_post.rb +221 -2
  19. data/lib/post_for_me/models/threads_configuration_dto.rb +118 -3
  20. data/lib/post_for_me/models/tiktok_configuration.rb +127 -4
  21. data/lib/post_for_me/models/twitter_configuration_dto.rb +211 -4
  22. data/lib/post_for_me/models/youtube_configuration_dto.rb +118 -3
  23. data/lib/post_for_me/version.rb +1 -1
  24. data/rbi/post_for_me/errors.rbi +29 -2
  25. data/rbi/post_for_me/file_part.rbi +1 -1
  26. data/rbi/post_for_me/internal/transport/base_client.rbi +4 -5
  27. data/rbi/post_for_me/internal/type/base_page.rbi +1 -1
  28. data/rbi/post_for_me/internal/util.rbi +1 -1
  29. data/rbi/post_for_me/models/bluesky_configuration_dto.rbi +243 -3
  30. data/rbi/post_for_me/models/create_social_post.rbi +424 -0
  31. data/rbi/post_for_me/models/facebook_configuration_dto.rbi +258 -3
  32. data/rbi/post_for_me/models/instagram_configuration_dto.rbi +267 -6
  33. data/rbi/post_for_me/models/linkedin_configuration_dto.rbi +245 -3
  34. data/rbi/post_for_me/models/pinterest_configuration_dto.rbi +246 -3
  35. data/rbi/post_for_me/models/social_account_create_auth_url_params.rbi +104 -0
  36. data/rbi/post_for_me/models/social_post.rbi +414 -0
  37. data/rbi/post_for_me/models/threads_configuration_dto.rbi +240 -3
  38. data/rbi/post_for_me/models/tiktok_configuration.rbi +237 -3
  39. data/rbi/post_for_me/models/twitter_configuration_dto.rbi +452 -4
  40. data/rbi/post_for_me/models/youtube_configuration_dto.rbi +240 -3
  41. data/sig/post_for_me/errors.rbs +7 -0
  42. data/sig/post_for_me/file_part.rbs +1 -1
  43. data/sig/post_for_me/models/bluesky_configuration_dto.rbs +109 -4
  44. data/sig/post_for_me/models/create_social_post.rbs +180 -1
  45. data/sig/post_for_me/models/facebook_configuration_dto.rbs +109 -4
  46. data/sig/post_for_me/models/instagram_configuration_dto.rbs +112 -7
  47. data/sig/post_for_me/models/linkedin_configuration_dto.rbs +109 -4
  48. data/sig/post_for_me/models/pinterest_configuration_dto.rbs +99 -4
  49. data/sig/post_for_me/models/social_account_create_auth_url_params.rbs +37 -0
  50. data/sig/post_for_me/models/social_post.rbs +180 -1
  51. data/sig/post_for_me/models/threads_configuration_dto.rbs +99 -4
  52. data/sig/post_for_me/models/tiktok_configuration.rbs +104 -4
  53. data/sig/post_for_me/models/twitter_configuration_dto.rbs +196 -4
  54. data/sig/post_for_me/models/youtube_configuration_dto.rbs +107 -4
  55. metadata +2 -2
@@ -16,7 +16,9 @@ module PostForMe
16
16
  attr_accessor :caption
17
17
 
18
18
  # Overrides the `media` from the post
19
- sig { returns(T.nilable(T::Array[String])) }
19
+ sig do
20
+ returns(T.nilable(T::Array[PostForMe::YoutubeConfigurationDto::Media]))
21
+ end
20
22
  attr_accessor :media
21
23
 
22
24
  # Overrides the `title` from the post
@@ -26,7 +28,10 @@ module PostForMe
26
28
  sig do
27
29
  params(
28
30
  caption: T.nilable(T.anything),
29
- media: T.nilable(T::Array[String]),
31
+ media:
32
+ T.nilable(
33
+ T::Array[PostForMe::YoutubeConfigurationDto::Media::OrHash]
34
+ ),
30
35
  title: T.nilable(String)
31
36
  ).returns(T.attached_class)
32
37
  end
@@ -44,13 +49,245 @@ module PostForMe
44
49
  override.returns(
45
50
  {
46
51
  caption: T.nilable(T.anything),
47
- media: T.nilable(T::Array[String]),
52
+ media:
53
+ T.nilable(T::Array[PostForMe::YoutubeConfigurationDto::Media]),
48
54
  title: T.nilable(String)
49
55
  }
50
56
  )
51
57
  end
52
58
  def to_hash
53
59
  end
60
+
61
+ class Media < PostForMe::Internal::Type::BaseModel
62
+ OrHash =
63
+ T.type_alias do
64
+ T.any(
65
+ PostForMe::YoutubeConfigurationDto::Media,
66
+ PostForMe::Internal::AnyHash
67
+ )
68
+ end
69
+
70
+ # Public URL of the media
71
+ sig { returns(String) }
72
+ attr_accessor :url
73
+
74
+ # List of tags to attach to the media
75
+ sig do
76
+ returns(
77
+ T.nilable(T::Array[PostForMe::YoutubeConfigurationDto::Media::Tag])
78
+ )
79
+ end
80
+ attr_accessor :tags
81
+
82
+ # Timestamp in milliseconds of frame to use as thumbnail for the media
83
+ sig { returns(T.nilable(T.anything)) }
84
+ attr_accessor :thumbnail_timestamp_ms
85
+
86
+ # Public URL of the thumbnail for the media
87
+ sig { returns(T.nilable(T.anything)) }
88
+ attr_accessor :thumbnail_url
89
+
90
+ sig do
91
+ params(
92
+ url: String,
93
+ tags:
94
+ T.nilable(
95
+ T::Array[PostForMe::YoutubeConfigurationDto::Media::Tag::OrHash]
96
+ ),
97
+ thumbnail_timestamp_ms: T.nilable(T.anything),
98
+ thumbnail_url: T.nilable(T.anything)
99
+ ).returns(T.attached_class)
100
+ end
101
+ def self.new(
102
+ # Public URL of the media
103
+ url:,
104
+ # List of tags to attach to the media
105
+ tags: nil,
106
+ # Timestamp in milliseconds of frame to use as thumbnail for the media
107
+ thumbnail_timestamp_ms: nil,
108
+ # Public URL of the thumbnail for the media
109
+ thumbnail_url: nil
110
+ )
111
+ end
112
+
113
+ sig do
114
+ override.returns(
115
+ {
116
+ url: String,
117
+ tags:
118
+ T.nilable(
119
+ T::Array[PostForMe::YoutubeConfigurationDto::Media::Tag]
120
+ ),
121
+ thumbnail_timestamp_ms: T.nilable(T.anything),
122
+ thumbnail_url: T.nilable(T.anything)
123
+ }
124
+ )
125
+ end
126
+ def to_hash
127
+ end
128
+
129
+ class Tag < PostForMe::Internal::Type::BaseModel
130
+ OrHash =
131
+ T.type_alias do
132
+ T.any(
133
+ PostForMe::YoutubeConfigurationDto::Media::Tag,
134
+ PostForMe::Internal::AnyHash
135
+ )
136
+ end
137
+
138
+ # Facebook User ID, Instagram Username or Instagram product id to tag
139
+ sig { returns(String) }
140
+ attr_accessor :id
141
+
142
+ # The platform for the tags
143
+ sig do
144
+ returns(
145
+ PostForMe::YoutubeConfigurationDto::Media::Tag::Platform::OrSymbol
146
+ )
147
+ end
148
+ attr_accessor :platform
149
+
150
+ # The type of tag, user to tag accounts, product to tag products (only supported
151
+ # for instagram)
152
+ sig do
153
+ returns(
154
+ PostForMe::YoutubeConfigurationDto::Media::Tag::Type::OrSymbol
155
+ )
156
+ end
157
+ attr_accessor :type
158
+
159
+ # Percentage distance from left edge of the image, Not required for videos or
160
+ # stories
161
+ sig { returns(T.nilable(Float)) }
162
+ attr_reader :x
163
+
164
+ sig { params(x: Float).void }
165
+ attr_writer :x
166
+
167
+ # Percentage distance from top edge of the image, Not required for videos or
168
+ # stories
169
+ sig { returns(T.nilable(Float)) }
170
+ attr_reader :y_
171
+
172
+ sig { params(y_: Float).void }
173
+ attr_writer :y_
174
+
175
+ sig do
176
+ params(
177
+ id: String,
178
+ platform:
179
+ PostForMe::YoutubeConfigurationDto::Media::Tag::Platform::OrSymbol,
180
+ type:
181
+ PostForMe::YoutubeConfigurationDto::Media::Tag::Type::OrSymbol,
182
+ x: Float,
183
+ y_: Float
184
+ ).returns(T.attached_class)
185
+ end
186
+ def self.new(
187
+ # Facebook User ID, Instagram Username or Instagram product id to tag
188
+ id:,
189
+ # The platform for the tags
190
+ platform:,
191
+ # The type of tag, user to tag accounts, product to tag products (only supported
192
+ # for instagram)
193
+ type:,
194
+ # Percentage distance from left edge of the image, Not required for videos or
195
+ # stories
196
+ x: nil,
197
+ # Percentage distance from top edge of the image, Not required for videos or
198
+ # stories
199
+ y_: nil
200
+ )
201
+ end
202
+
203
+ sig do
204
+ override.returns(
205
+ {
206
+ id: String,
207
+ platform:
208
+ PostForMe::YoutubeConfigurationDto::Media::Tag::Platform::OrSymbol,
209
+ type:
210
+ PostForMe::YoutubeConfigurationDto::Media::Tag::Type::OrSymbol,
211
+ x: Float,
212
+ y_: Float
213
+ }
214
+ )
215
+ end
216
+ def to_hash
217
+ end
218
+
219
+ # The platform for the tags
220
+ module Platform
221
+ extend PostForMe::Internal::Type::Enum
222
+
223
+ TaggedSymbol =
224
+ T.type_alias do
225
+ T.all(
226
+ Symbol,
227
+ PostForMe::YoutubeConfigurationDto::Media::Tag::Platform
228
+ )
229
+ end
230
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
231
+
232
+ FACEBOOK =
233
+ T.let(
234
+ :facebook,
235
+ PostForMe::YoutubeConfigurationDto::Media::Tag::Platform::TaggedSymbol
236
+ )
237
+ INSTAGRAM =
238
+ T.let(
239
+ :instagram,
240
+ PostForMe::YoutubeConfigurationDto::Media::Tag::Platform::TaggedSymbol
241
+ )
242
+
243
+ sig do
244
+ override.returns(
245
+ T::Array[
246
+ PostForMe::YoutubeConfigurationDto::Media::Tag::Platform::TaggedSymbol
247
+ ]
248
+ )
249
+ end
250
+ def self.values
251
+ end
252
+ end
253
+
254
+ # The type of tag, user to tag accounts, product to tag products (only supported
255
+ # for instagram)
256
+ module Type
257
+ extend PostForMe::Internal::Type::Enum
258
+
259
+ TaggedSymbol =
260
+ T.type_alias do
261
+ T.all(
262
+ Symbol,
263
+ PostForMe::YoutubeConfigurationDto::Media::Tag::Type
264
+ )
265
+ end
266
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
267
+
268
+ USER =
269
+ T.let(
270
+ :user,
271
+ PostForMe::YoutubeConfigurationDto::Media::Tag::Type::TaggedSymbol
272
+ )
273
+ PRODUCT =
274
+ T.let(
275
+ :product,
276
+ PostForMe::YoutubeConfigurationDto::Media::Tag::Type::TaggedSymbol
277
+ )
278
+
279
+ sig do
280
+ override.returns(
281
+ T::Array[
282
+ PostForMe::YoutubeConfigurationDto::Media::Tag::Type::TaggedSymbol
283
+ ]
284
+ )
285
+ end
286
+ def self.values
287
+ end
288
+ end
289
+ end
290
+ end
54
291
  end
55
292
  end
56
293
  end
@@ -21,11 +21,14 @@ module PostForMe
21
21
 
22
22
  attr_accessor status: Integer?
23
23
 
24
+ attr_accessor headers: ::Hash[String, String]?
25
+
24
26
  attr_accessor body: top?
25
27
 
26
28
  def initialize: (
27
29
  url: URI::Generic,
28
30
  ?status: Integer?,
31
+ ?headers: ::Hash[String, String]?,
29
32
  ?body: Object?,
30
33
  ?request: nil,
31
34
  ?response: nil,
@@ -37,6 +40,7 @@ module PostForMe
37
40
  def initialize: (
38
41
  url: URI::Generic,
39
42
  ?status: nil,
43
+ ?headers: ::Hash[String, String]?,
40
44
  ?body: nil,
41
45
  ?request: nil,
42
46
  ?response: nil,
@@ -48,6 +52,7 @@ module PostForMe
48
52
  def initialize: (
49
53
  url: URI::Generic,
50
54
  ?status: nil,
55
+ ?headers: ::Hash[String, String]?,
51
56
  ?body: nil,
52
57
  ?request: nil,
53
58
  ?response: nil,
@@ -59,6 +64,7 @@ module PostForMe
59
64
  def self.for: (
60
65
  url: URI::Generic,
61
66
  status: Integer,
67
+ headers: ::Hash[String, String]?,
62
68
  body: Object?,
63
69
  request: nil,
64
70
  response: nil,
@@ -68,6 +74,7 @@ module PostForMe
68
74
  def initialize: (
69
75
  url: URI::Generic,
70
76
  status: Integer,
77
+ headers: ::Hash[String, String]?,
71
78
  body: Object?,
72
79
  request: nil,
73
80
  response: nil,
@@ -14,7 +14,7 @@ module PostForMe
14
14
 
15
15
  def initialize: (
16
16
  Pathname | StringIO | IO | String content,
17
- ?filename: String?,
17
+ ?filename: (Pathname | String)?,
18
18
  ?content_type: String?
19
19
  ) -> void
20
20
  end
@@ -1,15 +1,120 @@
1
1
  module PostForMe
2
2
  module Models
3
- type bluesky_configuration_dto = { caption: top?, media: ::Array[String]? }
3
+ type bluesky_configuration_dto =
4
+ {
5
+ caption: top?,
6
+ media: ::Array[PostForMe::BlueskyConfigurationDto::Media]?
7
+ }
4
8
 
5
9
  class BlueskyConfigurationDto < PostForMe::Internal::Type::BaseModel
6
10
  attr_accessor caption: top?
7
11
 
8
- attr_accessor media: ::Array[String]?
12
+ attr_accessor media: ::Array[PostForMe::BlueskyConfigurationDto::Media]?
9
13
 
10
- def initialize: (?caption: top?, ?media: ::Array[String]?) -> void
14
+ def initialize: (
15
+ ?caption: top?,
16
+ ?media: ::Array[PostForMe::BlueskyConfigurationDto::Media]?
17
+ ) -> void
11
18
 
12
- def to_hash: -> { caption: top?, media: ::Array[String]? }
19
+ def to_hash: -> {
20
+ caption: top?,
21
+ media: ::Array[PostForMe::BlueskyConfigurationDto::Media]?
22
+ }
23
+
24
+ type media =
25
+ {
26
+ url: String,
27
+ tags: ::Array[PostForMe::BlueskyConfigurationDto::Media::Tag]?,
28
+ thumbnail_timestamp_ms: top?,
29
+ thumbnail_url: top?
30
+ }
31
+
32
+ class Media < PostForMe::Internal::Type::BaseModel
33
+ attr_accessor url: String
34
+
35
+ attr_accessor tags: ::Array[PostForMe::BlueskyConfigurationDto::Media::Tag]?
36
+
37
+ attr_accessor thumbnail_timestamp_ms: top?
38
+
39
+ attr_accessor thumbnail_url: top?
40
+
41
+ def initialize: (
42
+ url: String,
43
+ ?tags: ::Array[PostForMe::BlueskyConfigurationDto::Media::Tag]?,
44
+ ?thumbnail_timestamp_ms: top?,
45
+ ?thumbnail_url: top?
46
+ ) -> void
47
+
48
+ def to_hash: -> {
49
+ url: String,
50
+ tags: ::Array[PostForMe::BlueskyConfigurationDto::Media::Tag]?,
51
+ thumbnail_timestamp_ms: top?,
52
+ thumbnail_url: top?
53
+ }
54
+
55
+ type tag =
56
+ {
57
+ id: String,
58
+ platform: PostForMe::Models::BlueskyConfigurationDto::Media::Tag::platform,
59
+ type: PostForMe::Models::BlueskyConfigurationDto::Media::Tag::type_,
60
+ x: Float,
61
+ y_: Float
62
+ }
63
+
64
+ class Tag < PostForMe::Internal::Type::BaseModel
65
+ attr_accessor id: String
66
+
67
+ attr_accessor platform: PostForMe::Models::BlueskyConfigurationDto::Media::Tag::platform
68
+
69
+ attr_accessor type: PostForMe::Models::BlueskyConfigurationDto::Media::Tag::type_
70
+
71
+ attr_reader x: Float?
72
+
73
+ def x=: (Float) -> Float
74
+
75
+ attr_reader y_: Float?
76
+
77
+ def y_=: (Float) -> Float
78
+
79
+ def initialize: (
80
+ id: String,
81
+ platform: PostForMe::Models::BlueskyConfigurationDto::Media::Tag::platform,
82
+ type: PostForMe::Models::BlueskyConfigurationDto::Media::Tag::type_,
83
+ ?x: Float,
84
+ ?y_: Float
85
+ ) -> void
86
+
87
+ def to_hash: -> {
88
+ id: String,
89
+ platform: PostForMe::Models::BlueskyConfigurationDto::Media::Tag::platform,
90
+ type: PostForMe::Models::BlueskyConfigurationDto::Media::Tag::type_,
91
+ x: Float,
92
+ y_: Float
93
+ }
94
+
95
+ type platform = :facebook | :instagram
96
+
97
+ module Platform
98
+ extend PostForMe::Internal::Type::Enum
99
+
100
+ FACEBOOK: :facebook
101
+ INSTAGRAM: :instagram
102
+
103
+ def self?.values: -> ::Array[PostForMe::Models::BlueskyConfigurationDto::Media::Tag::platform]
104
+ end
105
+
106
+ type type_ = :user | :product
107
+
108
+ module Type
109
+ extend PostForMe::Internal::Type::Enum
110
+
111
+ USER: :user
112
+ PRODUCT: :product
113
+
114
+ def self?.values: -> ::Array[PostForMe::Models::BlueskyConfigurationDto::Media::Tag::type_]
115
+ end
116
+ end
117
+ end
13
118
  end
14
119
  end
15
120
  end