Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.1.0-alpha.19"
".": "0.1.0-alpha.20"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 15
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/day-moon-development%2Fpost-for-me-d7bde21e6d3328e90ec781ff8e2629faeaae4bb5d8e0d350703326ec8aadf898.yml
openapi_spec_hash: dcb2130480c4476fe08fcb080e369ce0
config_hash: 0ec19602e41aea0526548245a59d4253
configured_endpoints: 21
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/day-moon-development/post-for-me-cd1d46263a85c0fc7716549a96a32cd7bbd09034db0e3ff34b75182b03d923d7.yml
openapi_spec_hash: 387d1ecb6860a8a67596b1066dc55ce7
config_hash: 600d71be044aa28b6759ce7f55a86948
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Changelog

## 0.1.0-alpha.20 (2026-05-08)

Full Changelog: [v0.1.0-alpha.19...v0.1.0-alpha.20](https://github.com/DayMoonDevelopment/post-for-me-ruby/compare/v0.1.0-alpha.19...v0.1.0-alpha.20)

### Features

* **api:** api update ([660592b](https://github.com/DayMoonDevelopment/post-for-me-ruby/commit/660592bfb078716516492819adbc4d6ac441705e))
* **api:** manual updates ([ee67cbb](https://github.com/DayMoonDevelopment/post-for-me-ruby/commit/ee67cbb33219db6c6a5c370908d52fc9d043f104))
* support setting headers via env ([df33ef4](https://github.com/DayMoonDevelopment/post-for-me-ruby/commit/df33ef40c6e553fbb1492310a421384207093c34))


### Chores

* **internal:** more robust bootstrap script ([ee0dc44](https://github.com/DayMoonDevelopment/post-for-me-ruby/commit/ee0dc4464e8d9e9e7027aa3a4b77a12fbb0d970d))

## 0.1.0-alpha.19 (2026-04-11)

Full Changelog: [v0.1.0-alpha.18...v0.1.0-alpha.19](https://github.com/DayMoonDevelopment/post-for-me-ruby/compare/v0.1.0-alpha.18...v0.1.0-alpha.19)
Expand Down
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ GIT
PATH
remote: .
specs:
post-for-me (0.1.0.pre.alpha.19)
post-for-me (0.1.0.pre.alpha.20)
cgi
connection_pool

Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
<!-- x-release-please-start-version -->

```ruby
gem "post-for-me", "~> 0.1.0.pre.alpha.19"
gem "post-for-me", "~> 0.1.0.pre.alpha.20"
```

<!-- x-release-please-end -->
Expand Down Expand Up @@ -210,7 +210,7 @@ You can provide typesafe request parameters like so:
post_for_me.social_posts.create(
caption: "My first post!",
social_accounts: ["sa_1234"],
media: [PostForMe::CreateSocialPost::Media.new(url: "https://picsum.photos/1080")]
media: [PostForMe::SocialPostMedia.new(url: "https://picsum.photos/1080")]
)
```

Expand All @@ -228,7 +228,7 @@ post_for_me.social_posts.create(
params = PostForMe::SocialPostCreateParams.new(
caption: "My first post!",
social_accounts: ["sa_1234"],
media: [PostForMe::CreateSocialPost::Media.new(url: "https://picsum.photos/1080")]
media: [PostForMe::SocialPostMedia.new(url: "https://picsum.photos/1080")]
)
post_for_me.social_posts.create(**params)
```
Expand Down
25 changes: 24 additions & 1 deletion lib/post_for_me.rb
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,20 @@
require_relative "post_for_me/internal/transport/pooled_net_requester"
require_relative "post_for_me/client"
require_relative "post_for_me/models/create_social_post"
require_relative "post_for_me/models/create_social_post_preview"
require_relative "post_for_me/models/account_configuration"
require_relative "post_for_me/models/bluesky_configuration_dto"
require_relative "post_for_me/models/delete_entity_response"
require_relative "post_for_me/models/facebook_activity_by_action_type"
require_relative "post_for_me/models/facebook_configuration_dto"
require_relative "post_for_me/models/facebook_video_retention_graph"
require_relative "post_for_me/models/facebook_video_view_time_by_demographic"
require_relative "post_for_me/models/instagram_configuration_dto"
require_relative "post_for_me/models/linkedin_configuration_dto"
require_relative "post_for_me/models/media_create_upload_url_params"
require_relative "post_for_me/models/media_create_upload_url_response"
require_relative "post_for_me/models/pinterest_configuration_dto"
require_relative "post_for_me/models/pinterest_metrics_window"
require_relative "post_for_me/models/platform_configurations_dto"
require_relative "post_for_me/models/platform_post"
require_relative "post_for_me/models/social_account"
Expand All @@ -72,27 +79,43 @@
require_relative "post_for_me/models/social_account_feed_list_response"
require_relative "post_for_me/models/social_account_list_params"
require_relative "post_for_me/models/social_account_list_response"
require_relative "post_for_me/models/social_account_metadata"
require_relative "post_for_me/models/social_account_retrieve_params"
require_relative "post_for_me/models/social_account_update_params"
require_relative "post_for_me/models/social_post"
require_relative "post_for_me/models/social_post_create_params"
require_relative "post_for_me/models/social_post_delete_params"
require_relative "post_for_me/models/social_post_delete_response"
require_relative "post_for_me/models/social_post_list_params"
require_relative "post_for_me/models/social_post_list_response"
require_relative "post_for_me/models/social_post_media"
require_relative "post_for_me/models/social_post_preview"
require_relative "post_for_me/models/social_post_preview_create_params"
require_relative "post_for_me/models/social_post_preview_create_response"
require_relative "post_for_me/models/social_post_result"
require_relative "post_for_me/models/social_post_result_list_params"
require_relative "post_for_me/models/social_post_result_list_response"
require_relative "post_for_me/models/social_post_result_retrieve_params"
require_relative "post_for_me/models/social_post_retrieve_params"
require_relative "post_for_me/models/social_post_update_params"
require_relative "post_for_me/models/threads_configuration_dto"
require_relative "post_for_me/models/tiktok_business_video_metric_percentage"
require_relative "post_for_me/models/tiktok_configuration"
require_relative "post_for_me/models/twitter_configuration_dto"
require_relative "post_for_me/models/twitter_poll"
require_relative "post_for_me/models/webhook"
require_relative "post_for_me/models/webhook_create_params"
require_relative "post_for_me/models/webhook_delete_params"
require_relative "post_for_me/models/webhook_list_params"
require_relative "post_for_me/models/webhook_list_response"
require_relative "post_for_me/models/webhook_retrieve_params"
require_relative "post_for_me/models/webhook_update_params"
require_relative "post_for_me/models/youtube_configuration_dto"
require_relative "post_for_me/models/youtube_post_platform_data"
require_relative "post_for_me/models"
require_relative "post_for_me/resources/media"
require_relative "post_for_me/resources/social_account_feeds"
require_relative "post_for_me/resources/social_accounts"
require_relative "post_for_me/resources/social_post_previews"
require_relative "post_for_me/resources/social_post_results"
require_relative "post_for_me/resources/social_posts"
require_relative "post_for_me/resources/webhooks"
55 changes: 54 additions & 1 deletion lib/post_for_me/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,43 @@ class Client < PostForMe::Internal::Transport::BaseClient
# @return [PostForMe::Resources::SocialAccountFeeds]
attr_reader :social_account_feeds

# Webhooks enable you to subscribe to certain events. This involves Post for Me
# making a POST request to the URL of any webhooks you create. Only the events you
# subscribe to will be sent to your webhook URL.
#
# ## Payload
#
# When an event happens that your webhook is subscribed to, we will make a POST
# request with the following JSON body
#
# ```
# {
# "event_type": "",
# "data": {}
# }
# ```
#
# The event_type will be the event that triggered the webhook POST, data will be
# the resulting entity from the event
#
# ## Security
#
# To verify the POST to your webhook URL is from us we will include a secret in
# the header "Post-For-Me-Webhook-Secret". When you create a webhook you will
# receive the secret in the response.
#
# ## Retries
#
# If your server fails to respond with a 2XX code, requests to it will be retried
# with exponential backoff around 8 times over the course of just over a day.
# @return [PostForMe::Resources::Webhooks]
attr_reader :webhooks

# Social Post Previews allow you to see what a Social Post will create for each
# account in the post.
# @return [PostForMe::Resources::SocialPostPreviews]
attr_reader :social_post_previews

# @api private
#
# @return [Hash{String=>String}]
Expand Down Expand Up @@ -125,21 +162,37 @@ def initialize(
raise ArgumentError.new("api_key is required, and can be set via environ: \"POST_FOR_ME_API_KEY\"")
end

headers = {}
custom_headers_env = ENV["POST_FOR_ME_CUSTOM_HEADERS"]
unless custom_headers_env.nil?
parsed = {}
custom_headers_env.split("\n").each do |line|
colon = line.index(":")
unless colon.nil?
parsed[line[0...colon].strip] = line[(colon + 1)..].strip
end
end
headers = parsed.merge(headers)
end

@api_key = api_key.to_s

super(
base_url: base_url,
timeout: timeout,
max_retries: max_retries,
initial_retry_delay: initial_retry_delay,
max_retry_delay: max_retry_delay
max_retry_delay: max_retry_delay,
headers: headers
)

@media = PostForMe::Resources::Media.new(client: self)
@social_posts = PostForMe::Resources::SocialPosts.new(client: self)
@social_post_results = PostForMe::Resources::SocialPostResults.new(client: self)
@social_accounts = PostForMe::Resources::SocialAccounts.new(client: self)
@social_account_feeds = PostForMe::Resources::SocialAccountFeeds.new(client: self)
@webhooks = PostForMe::Resources::Webhooks.new(client: self)
@social_post_previews = PostForMe::Resources::SocialPostPreviews.new(client: self)
end
end
end
41 changes: 41 additions & 0 deletions lib/post_for_me/models.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,24 @@ module PostForMe
mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } }
end

AccountConfiguration = PostForMe::Models::AccountConfiguration

BlueskyConfigurationDto = PostForMe::Models::BlueskyConfigurationDto

CreateSocialPost = PostForMe::Models::CreateSocialPost

CreateSocialPostPreview = PostForMe::Models::CreateSocialPostPreview

DeleteEntityResponse = PostForMe::Models::DeleteEntityResponse

FacebookActivityByActionType = PostForMe::Models::FacebookActivityByActionType

FacebookConfigurationDto = PostForMe::Models::FacebookConfigurationDto

FacebookVideoRetentionGraph = PostForMe::Models::FacebookVideoRetentionGraph

FacebookVideoViewTimeByDemographic = PostForMe::Models::FacebookVideoViewTimeByDemographic

InstagramConfigurationDto = PostForMe::Models::InstagramConfigurationDto

LinkedinConfigurationDto = PostForMe::Models::LinkedinConfigurationDto
Expand All @@ -53,6 +65,8 @@ module PostForMe

PinterestConfigurationDto = PostForMe::Models::PinterestConfigurationDto

PinterestMetricsWindow = PostForMe::Models::PinterestMetricsWindow

PlatformConfigurationsDto = PostForMe::Models::PlatformConfigurationsDto

PlatformPost = PostForMe::Models::PlatformPost
Expand All @@ -69,6 +83,9 @@ module PostForMe

SocialAccountListParams = PostForMe::Models::SocialAccountListParams

# @type [PostForMe::Internal::Type::Converter]
SocialAccountMetadata = PostForMe::Models::SocialAccountMetadata

SocialAccountRetrieveParams = PostForMe::Models::SocialAccountRetrieveParams

SocialAccountUpdateParams = PostForMe::Models::SocialAccountUpdateParams
Expand All @@ -81,6 +98,12 @@ module PostForMe

SocialPostListParams = PostForMe::Models::SocialPostListParams

SocialPostMedia = PostForMe::Models::SocialPostMedia

SocialPostPreview = PostForMe::Models::SocialPostPreview

SocialPostPreviewCreateParams = PostForMe::Models::SocialPostPreviewCreateParams

SocialPostResult = PostForMe::Models::SocialPostResult

SocialPostResultListParams = PostForMe::Models::SocialPostResultListParams
Expand All @@ -93,9 +116,27 @@ module PostForMe

ThreadsConfigurationDto = PostForMe::Models::ThreadsConfigurationDto

TiktokBusinessVideoMetricPercentage = PostForMe::Models::TiktokBusinessVideoMetricPercentage

TiktokConfiguration = PostForMe::Models::TiktokConfiguration

TwitterConfigurationDto = PostForMe::Models::TwitterConfigurationDto

TwitterPoll = PostForMe::Models::TwitterPoll

Webhook = PostForMe::Models::Webhook

WebhookCreateParams = PostForMe::Models::WebhookCreateParams

WebhookDeleteParams = PostForMe::Models::WebhookDeleteParams

WebhookListParams = PostForMe::Models::WebhookListParams

WebhookRetrieveParams = PostForMe::Models::WebhookRetrieveParams

WebhookUpdateParams = PostForMe::Models::WebhookUpdateParams

YoutubeConfigurationDto = PostForMe::Models::YoutubeConfigurationDto

YoutubePostPlatformData = PostForMe::Models::YoutubePostPlatformData
end
Loading