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

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 +19 -0
  3. data/README.md +11 -9
  4. data/lib/post_for_me/models/bluesky_configuration_dto.rb +24 -0
  5. data/lib/post_for_me/models/create_social_post.rb +3 -372
  6. data/lib/post_for_me/models/facebook_configuration_dto.rb +46 -0
  7. data/lib/post_for_me/models/instagram_configuration_dto.rb +54 -0
  8. data/lib/post_for_me/models/linkedin_configuration_dto.rb +24 -0
  9. data/lib/post_for_me/models/pinterest_configuration_dto.rb +40 -0
  10. data/lib/post_for_me/models/platform_configurations_dto.rb +88 -0
  11. data/lib/post_for_me/models/social_account.rb +1 -1
  12. data/lib/post_for_me/models/social_account_create_auth_url_params.rb +9 -1
  13. data/lib/post_for_me/models/social_account_create_params.rb +105 -0
  14. data/lib/post_for_me/models/social_post.rb +197 -12
  15. data/lib/post_for_me/models/threads_configuration_dto.rb +45 -0
  16. data/lib/post_for_me/models/twitter_configuration_dto.rb +24 -0
  17. data/lib/post_for_me/models/youtube_configuration_dto.rb +32 -0
  18. data/lib/post_for_me/models.rb +20 -0
  19. data/lib/post_for_me/resources/social_accounts.rb +42 -1
  20. data/lib/post_for_me/resources/social_posts.rb +2 -2
  21. data/lib/post_for_me/version.rb +1 -1
  22. data/lib/post_for_me.rb +10 -0
  23. data/rbi/post_for_me/models/bluesky_configuration_dto.rbi +45 -0
  24. data/rbi/post_for_me/models/create_social_post.rbi +4 -863
  25. data/rbi/post_for_me/models/facebook_configuration_dto.rbi +101 -0
  26. data/rbi/post_for_me/models/instagram_configuration_dto.rbi +109 -0
  27. data/rbi/post_for_me/models/linkedin_configuration_dto.rbi +45 -0
  28. data/rbi/post_for_me/models/pinterest_configuration_dto.rbi +64 -0
  29. data/rbi/post_for_me/models/platform_configurations_dto.rbi +178 -0
  30. data/rbi/post_for_me/models/social_account_create_auth_url_params.rbi +11 -0
  31. data/rbi/post_for_me/models/social_account_create_params.rbi +185 -0
  32. data/rbi/post_for_me/models/social_post.rbi +328 -13
  33. data/rbi/post_for_me/models/threads_configuration_dto.rbi +94 -0
  34. data/rbi/post_for_me/models/twitter_configuration_dto.rbi +45 -0
  35. data/rbi/post_for_me/models/youtube_configuration_dto.rbi +56 -0
  36. data/rbi/post_for_me/models.rbi +20 -0
  37. data/rbi/post_for_me/resources/social_accounts.rbi +42 -0
  38. data/rbi/post_for_me/resources/social_posts.rbi +2 -6
  39. data/sig/post_for_me/models/bluesky_configuration_dto.rbs +15 -0
  40. data/sig/post_for_me/models/create_social_post.rbs +4 -278
  41. data/sig/post_for_me/models/facebook_configuration_dto.rbs +42 -0
  42. data/sig/post_for_me/models/instagram_configuration_dto.rbs +47 -0
  43. data/sig/post_for_me/models/linkedin_configuration_dto.rbs +15 -0
  44. data/sig/post_for_me/models/pinterest_configuration_dto.rbs +35 -0
  45. data/sig/post_for_me/models/platform_configurations_dto.rbs +65 -0
  46. data/sig/post_for_me/models/social_account_create_auth_url_params.rbs +7 -0
  47. data/sig/post_for_me/models/social_account_create_params.rbs +97 -0
  48. data/sig/post_for_me/models/social_post.rbs +155 -16
  49. data/sig/post_for_me/models/threads_configuration_dto.rbs +41 -0
  50. data/sig/post_for_me/models/twitter_configuration_dto.rbs +15 -0
  51. data/sig/post_for_me/models/youtube_configuration_dto.rbs +22 -0
  52. data/sig/post_for_me/models.rbs +20 -0
  53. data/sig/post_for_me/resources/social_accounts.rbs +14 -0
  54. data/sig/post_for_me/resources/social_posts.rbs +2 -2
  55. metadata +32 -2
@@ -0,0 +1,101 @@
1
+ # typed: strong
2
+
3
+ module PostForMe
4
+ module Models
5
+ class FacebookConfigurationDto < PostForMe::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ PostForMe::FacebookConfigurationDto,
10
+ PostForMe::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Overrides the `caption` from the post
15
+ sig { returns(T.nilable(T.anything)) }
16
+ attr_accessor :caption
17
+
18
+ # Overrides the `media` from the post
19
+ sig { returns(T.nilable(T::Array[String])) }
20
+ attr_accessor :media
21
+
22
+ # Facebook post placement
23
+ sig do
24
+ returns(
25
+ T.nilable(PostForMe::FacebookConfigurationDto::Placement::OrSymbol)
26
+ )
27
+ end
28
+ attr_accessor :placement
29
+
30
+ sig do
31
+ params(
32
+ caption: T.nilable(T.anything),
33
+ media: T.nilable(T::Array[String]),
34
+ placement:
35
+ T.nilable(PostForMe::FacebookConfigurationDto::Placement::OrSymbol)
36
+ ).returns(T.attached_class)
37
+ end
38
+ def self.new(
39
+ # Overrides the `caption` from the post
40
+ caption: nil,
41
+ # Overrides the `media` from the post
42
+ media: nil,
43
+ # Facebook post placement
44
+ placement: nil
45
+ )
46
+ end
47
+
48
+ sig do
49
+ override.returns(
50
+ {
51
+ caption: T.nilable(T.anything),
52
+ media: T.nilable(T::Array[String]),
53
+ placement:
54
+ T.nilable(
55
+ PostForMe::FacebookConfigurationDto::Placement::OrSymbol
56
+ )
57
+ }
58
+ )
59
+ end
60
+ def to_hash
61
+ end
62
+
63
+ # Facebook post placement
64
+ module Placement
65
+ extend PostForMe::Internal::Type::Enum
66
+
67
+ TaggedSymbol =
68
+ T.type_alias do
69
+ T.all(Symbol, PostForMe::FacebookConfigurationDto::Placement)
70
+ end
71
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
72
+
73
+ REELS =
74
+ T.let(
75
+ :reels,
76
+ PostForMe::FacebookConfigurationDto::Placement::TaggedSymbol
77
+ )
78
+ STORIES =
79
+ T.let(
80
+ :stories,
81
+ PostForMe::FacebookConfigurationDto::Placement::TaggedSymbol
82
+ )
83
+ TIMELINE =
84
+ T.let(
85
+ :timeline,
86
+ PostForMe::FacebookConfigurationDto::Placement::TaggedSymbol
87
+ )
88
+
89
+ sig do
90
+ override.returns(
91
+ T::Array[
92
+ PostForMe::FacebookConfigurationDto::Placement::TaggedSymbol
93
+ ]
94
+ )
95
+ end
96
+ def self.values
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,109 @@
1
+ # typed: strong
2
+
3
+ module PostForMe
4
+ module Models
5
+ class InstagramConfigurationDto < PostForMe::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ PostForMe::InstagramConfigurationDto,
10
+ PostForMe::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Overrides the `caption` from the post
15
+ sig { returns(T.nilable(T.anything)) }
16
+ attr_accessor :caption
17
+
18
+ # Instagram usernames to be tagged as a collaborator
19
+ sig { returns(T.nilable(T::Array[String])) }
20
+ attr_accessor :collaborators
21
+
22
+ # Overrides the `media` from the post
23
+ sig { returns(T.nilable(T::Array[String])) }
24
+ attr_accessor :media
25
+
26
+ # Instagram post placement
27
+ sig do
28
+ returns(
29
+ T.nilable(PostForMe::InstagramConfigurationDto::Placement::OrSymbol)
30
+ )
31
+ end
32
+ attr_accessor :placement
33
+
34
+ sig do
35
+ params(
36
+ caption: T.nilable(T.anything),
37
+ collaborators: T.nilable(T::Array[String]),
38
+ media: T.nilable(T::Array[String]),
39
+ placement:
40
+ T.nilable(PostForMe::InstagramConfigurationDto::Placement::OrSymbol)
41
+ ).returns(T.attached_class)
42
+ end
43
+ def self.new(
44
+ # Overrides the `caption` from the post
45
+ caption: nil,
46
+ # Instagram usernames to be tagged as a collaborator
47
+ collaborators: nil,
48
+ # Overrides the `media` from the post
49
+ media: nil,
50
+ # Instagram post placement
51
+ placement: nil
52
+ )
53
+ end
54
+
55
+ sig do
56
+ override.returns(
57
+ {
58
+ caption: T.nilable(T.anything),
59
+ collaborators: T.nilable(T::Array[String]),
60
+ media: T.nilable(T::Array[String]),
61
+ placement:
62
+ T.nilable(
63
+ PostForMe::InstagramConfigurationDto::Placement::OrSymbol
64
+ )
65
+ }
66
+ )
67
+ end
68
+ def to_hash
69
+ end
70
+
71
+ # Instagram post placement
72
+ module Placement
73
+ extend PostForMe::Internal::Type::Enum
74
+
75
+ TaggedSymbol =
76
+ T.type_alias do
77
+ T.all(Symbol, PostForMe::InstagramConfigurationDto::Placement)
78
+ end
79
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
80
+
81
+ REELS =
82
+ T.let(
83
+ :reels,
84
+ PostForMe::InstagramConfigurationDto::Placement::TaggedSymbol
85
+ )
86
+ STORIES =
87
+ T.let(
88
+ :stories,
89
+ PostForMe::InstagramConfigurationDto::Placement::TaggedSymbol
90
+ )
91
+ TIMELINE =
92
+ T.let(
93
+ :timeline,
94
+ PostForMe::InstagramConfigurationDto::Placement::TaggedSymbol
95
+ )
96
+
97
+ sig do
98
+ override.returns(
99
+ T::Array[
100
+ PostForMe::InstagramConfigurationDto::Placement::TaggedSymbol
101
+ ]
102
+ )
103
+ end
104
+ def self.values
105
+ end
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,45 @@
1
+ # typed: strong
2
+
3
+ module PostForMe
4
+ module Models
5
+ class LinkedinConfigurationDto < PostForMe::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ PostForMe::LinkedinConfigurationDto,
10
+ PostForMe::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Overrides the `caption` from the post
15
+ sig { returns(T.nilable(T.anything)) }
16
+ attr_accessor :caption
17
+
18
+ # Overrides the `media` from the post
19
+ sig { returns(T.nilable(T::Array[String])) }
20
+ attr_accessor :media
21
+
22
+ sig do
23
+ params(
24
+ caption: T.nilable(T.anything),
25
+ media: T.nilable(T::Array[String])
26
+ ).returns(T.attached_class)
27
+ end
28
+ def self.new(
29
+ # Overrides the `caption` from the post
30
+ caption: nil,
31
+ # Overrides the `media` from the post
32
+ media: nil
33
+ )
34
+ end
35
+
36
+ sig do
37
+ override.returns(
38
+ { caption: T.nilable(T.anything), media: T.nilable(T::Array[String]) }
39
+ )
40
+ end
41
+ def to_hash
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,64 @@
1
+ # typed: strong
2
+
3
+ module PostForMe
4
+ module Models
5
+ class PinterestConfigurationDto < PostForMe::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ PostForMe::PinterestConfigurationDto,
10
+ PostForMe::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Pinterest board IDs
15
+ sig { returns(T.nilable(T::Array[String])) }
16
+ attr_accessor :board_ids
17
+
18
+ # Overrides the `caption` from the post
19
+ sig { returns(T.nilable(T.anything)) }
20
+ attr_accessor :caption
21
+
22
+ # Pinterest post link
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :link
25
+
26
+ # Overrides the `media` from the post
27
+ sig { returns(T.nilable(T::Array[String])) }
28
+ attr_accessor :media
29
+
30
+ sig do
31
+ params(
32
+ board_ids: T.nilable(T::Array[String]),
33
+ caption: T.nilable(T.anything),
34
+ link: T.nilable(String),
35
+ media: T.nilable(T::Array[String])
36
+ ).returns(T.attached_class)
37
+ end
38
+ def self.new(
39
+ # Pinterest board IDs
40
+ board_ids: nil,
41
+ # Overrides the `caption` from the post
42
+ caption: nil,
43
+ # Pinterest post link
44
+ link: nil,
45
+ # Overrides the `media` from the post
46
+ media: nil
47
+ )
48
+ end
49
+
50
+ sig do
51
+ override.returns(
52
+ {
53
+ board_ids: T.nilable(T::Array[String]),
54
+ caption: T.nilable(T.anything),
55
+ link: T.nilable(String),
56
+ media: T.nilable(T::Array[String])
57
+ }
58
+ )
59
+ end
60
+ def to_hash
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,178 @@
1
+ # typed: strong
2
+
3
+ module PostForMe
4
+ module Models
5
+ class PlatformConfigurationsDto < PostForMe::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ PostForMe::PlatformConfigurationsDto,
10
+ PostForMe::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Bluesky configuration
15
+ sig { returns(T.nilable(PostForMe::BlueskyConfigurationDto)) }
16
+ attr_reader :bluesky
17
+
18
+ sig do
19
+ params(
20
+ bluesky: T.nilable(PostForMe::BlueskyConfigurationDto::OrHash)
21
+ ).void
22
+ end
23
+ attr_writer :bluesky
24
+
25
+ # Facebook configuration
26
+ sig { returns(T.nilable(PostForMe::FacebookConfigurationDto)) }
27
+ attr_reader :facebook
28
+
29
+ sig do
30
+ params(
31
+ facebook: T.nilable(PostForMe::FacebookConfigurationDto::OrHash)
32
+ ).void
33
+ end
34
+ attr_writer :facebook
35
+
36
+ # Instagram configuration
37
+ sig { returns(T.nilable(PostForMe::InstagramConfigurationDto)) }
38
+ attr_reader :instagram
39
+
40
+ sig do
41
+ params(
42
+ instagram: T.nilable(PostForMe::InstagramConfigurationDto::OrHash)
43
+ ).void
44
+ end
45
+ attr_writer :instagram
46
+
47
+ # LinkedIn configuration
48
+ sig { returns(T.nilable(PostForMe::LinkedinConfigurationDto)) }
49
+ attr_reader :linkedin
50
+
51
+ sig do
52
+ params(
53
+ linkedin: T.nilable(PostForMe::LinkedinConfigurationDto::OrHash)
54
+ ).void
55
+ end
56
+ attr_writer :linkedin
57
+
58
+ # Pinterest configuration
59
+ sig { returns(T.nilable(PostForMe::PinterestConfigurationDto)) }
60
+ attr_reader :pinterest
61
+
62
+ sig do
63
+ params(
64
+ pinterest: T.nilable(PostForMe::PinterestConfigurationDto::OrHash)
65
+ ).void
66
+ end
67
+ attr_writer :pinterest
68
+
69
+ # Threads configuration
70
+ sig { returns(T.nilable(PostForMe::ThreadsConfigurationDto)) }
71
+ attr_reader :threads
72
+
73
+ sig do
74
+ params(
75
+ threads: T.nilable(PostForMe::ThreadsConfigurationDto::OrHash)
76
+ ).void
77
+ end
78
+ attr_writer :threads
79
+
80
+ # TikTok configuration
81
+ sig { returns(T.nilable(PostForMe::TiktokConfiguration)) }
82
+ attr_reader :tiktok
83
+
84
+ sig do
85
+ params(tiktok: T.nilable(PostForMe::TiktokConfiguration::OrHash)).void
86
+ end
87
+ attr_writer :tiktok
88
+
89
+ # TikTok configuration
90
+ sig { returns(T.nilable(PostForMe::TiktokConfiguration)) }
91
+ attr_reader :tiktok_business
92
+
93
+ sig do
94
+ params(
95
+ tiktok_business: T.nilable(PostForMe::TiktokConfiguration::OrHash)
96
+ ).void
97
+ end
98
+ attr_writer :tiktok_business
99
+
100
+ # Twitter configuration
101
+ sig { returns(T.nilable(PostForMe::TwitterConfigurationDto)) }
102
+ attr_reader :x
103
+
104
+ sig do
105
+ params(x: T.nilable(PostForMe::TwitterConfigurationDto::OrHash)).void
106
+ end
107
+ attr_writer :x
108
+
109
+ # YouTube configuration
110
+ sig { returns(T.nilable(PostForMe::YoutubeConfigurationDto)) }
111
+ attr_reader :youtube
112
+
113
+ sig do
114
+ params(
115
+ youtube: T.nilable(PostForMe::YoutubeConfigurationDto::OrHash)
116
+ ).void
117
+ end
118
+ attr_writer :youtube
119
+
120
+ sig do
121
+ params(
122
+ bluesky: T.nilable(PostForMe::BlueskyConfigurationDto::OrHash),
123
+ facebook: T.nilable(PostForMe::FacebookConfigurationDto::OrHash),
124
+ instagram: T.nilable(PostForMe::InstagramConfigurationDto::OrHash),
125
+ linkedin: T.nilable(PostForMe::LinkedinConfigurationDto::OrHash),
126
+ pinterest: T.nilable(PostForMe::PinterestConfigurationDto::OrHash),
127
+ threads: T.nilable(PostForMe::ThreadsConfigurationDto::OrHash),
128
+ tiktok: T.nilable(PostForMe::TiktokConfiguration::OrHash),
129
+ tiktok_business: T.nilable(PostForMe::TiktokConfiguration::OrHash),
130
+ x: T.nilable(PostForMe::TwitterConfigurationDto::OrHash),
131
+ youtube: T.nilable(PostForMe::YoutubeConfigurationDto::OrHash)
132
+ ).returns(T.attached_class)
133
+ end
134
+ def self.new(
135
+ # Bluesky configuration
136
+ bluesky: nil,
137
+ # Facebook configuration
138
+ facebook: nil,
139
+ # Instagram configuration
140
+ instagram: nil,
141
+ # LinkedIn configuration
142
+ linkedin: nil,
143
+ # Pinterest configuration
144
+ pinterest: nil,
145
+ # Threads configuration
146
+ threads: nil,
147
+ # TikTok configuration
148
+ tiktok: nil,
149
+ # TikTok configuration
150
+ tiktok_business: nil,
151
+ # Twitter configuration
152
+ x: nil,
153
+ # YouTube configuration
154
+ youtube: nil
155
+ )
156
+ end
157
+
158
+ sig do
159
+ override.returns(
160
+ {
161
+ bluesky: T.nilable(PostForMe::BlueskyConfigurationDto),
162
+ facebook: T.nilable(PostForMe::FacebookConfigurationDto),
163
+ instagram: T.nilable(PostForMe::InstagramConfigurationDto),
164
+ linkedin: T.nilable(PostForMe::LinkedinConfigurationDto),
165
+ pinterest: T.nilable(PostForMe::PinterestConfigurationDto),
166
+ threads: T.nilable(PostForMe::ThreadsConfigurationDto),
167
+ tiktok: T.nilable(PostForMe::TiktokConfiguration),
168
+ tiktok_business: T.nilable(PostForMe::TiktokConfiguration),
169
+ x: T.nilable(PostForMe::TwitterConfigurationDto),
170
+ youtube: T.nilable(PostForMe::YoutubeConfigurationDto)
171
+ }
172
+ )
173
+ end
174
+ def to_hash
175
+ end
176
+ end
177
+ end
178
+ end
@@ -18,6 +18,13 @@ module PostForMe
18
18
  sig { returns(String) }
19
19
  attr_accessor :platform
20
20
 
21
+ # Your unique identifier for the social account
22
+ sig { returns(T.nilable(String)) }
23
+ attr_reader :external_id
24
+
25
+ sig { params(external_id: String).void }
26
+ attr_writer :external_id
27
+
21
28
  # Additional data needed for the provider
22
29
  sig do
23
30
  returns(
@@ -37,6 +44,7 @@ module PostForMe
37
44
  sig do
38
45
  params(
39
46
  platform: String,
47
+ external_id: String,
40
48
  platform_data:
41
49
  PostForMe::SocialAccountCreateAuthURLParams::PlatformData::OrHash,
42
50
  request_options: PostForMe::RequestOptions::OrHash
@@ -45,6 +53,8 @@ module PostForMe
45
53
  def self.new(
46
54
  # The social account provider
47
55
  platform:,
56
+ # Your unique identifier for the social account
57
+ external_id: nil,
48
58
  # Additional data needed for the provider
49
59
  platform_data: nil,
50
60
  request_options: {}
@@ -55,6 +65,7 @@ module PostForMe
55
65
  override.returns(
56
66
  {
57
67
  platform: String,
68
+ external_id: String,
58
69
  platform_data:
59
70
  PostForMe::SocialAccountCreateAuthURLParams::PlatformData,
60
71
  request_options: PostForMe::RequestOptions