Class: Zernio::PostsApi
- Inherits:
-
Object
- Object
- Zernio::PostsApi
- Defined in:
- lib/zernio-sdk/api/posts_api.rb
Instance Attribute Summary collapse
-
#api_client ⇒ Object
Returns the value of attribute api_client.
Instance Method Summary collapse
-
#bulk_upload_posts(opts = {}) ⇒ BulkUploadResult
Bulk upload from CSV Create multiple posts by uploading a CSV file.
-
#bulk_upload_posts_with_http_info(opts = {}) ⇒ Array<(BulkUploadResult, Integer, Hash)>
Bulk upload from CSV Create multiple posts by uploading a CSV file.
-
#create_post(create_post_request, opts = {}) ⇒ PostCreateResponse
Create post Create and optionally publish a post.
-
#create_post_with_http_info(create_post_request, opts = {}) ⇒ Array<(PostCreateResponse, Integer, Hash)>
Create post Create and optionally publish a post.
-
#delete_post(post_id, opts = {}) ⇒ PostDeleteResponse
Delete post Delete a draft or scheduled post from Zernio.
-
#delete_post_with_http_info(post_id, opts = {}) ⇒ Array<(PostDeleteResponse, Integer, Hash)>
Delete post Delete a draft or scheduled post from Zernio.
-
#edit_post(post_id, edit_post_request, opts = {}) ⇒ EditPost200Response
Edit published post Edit the text of an already-published post.
-
#edit_post_with_http_info(post_id, edit_post_request, opts = {}) ⇒ Array<(EditPost200Response, Integer, Hash)>
Edit published post Edit the text of an already-published post.
-
#get_post(post_id, opts = {}) ⇒ PostGetResponse
Get post Fetch a single post by ID.
-
#get_post_with_http_info(post_id, opts = {}) ⇒ Array<(PostGetResponse, Integer, Hash)>
Get post Fetch a single post by ID.
-
#initialize(api_client = ApiClient.default) ⇒ PostsApi
constructor
A new instance of PostsApi.
-
#list_posts(opts = {}) ⇒ PostsListResponse
List posts Returns a paginated list of posts.
-
#list_posts_with_http_info(opts = {}) ⇒ Array<(PostsListResponse, Integer, Hash)>
List posts Returns a paginated list of posts.
-
#retry_post(post_id, opts = {}) ⇒ PostRetryResponse
Retry failed post Immediately retries publishing a failed post.
-
#retry_post_with_http_info(post_id, opts = {}) ⇒ Array<(PostRetryResponse, Integer, Hash)>
Retry failed post Immediately retries publishing a failed post.
-
#unpublish_post(post_id, unpublish_post_request, opts = {}) ⇒ UnpublishPost200Response
Unpublish post Deletes a published post from the specified platform.
-
#unpublish_post_with_http_info(post_id, unpublish_post_request, opts = {}) ⇒ Array<(UnpublishPost200Response, Integer, Hash)>
Unpublish post Deletes a published post from the specified platform.
-
#update_post(post_id, update_post_request, opts = {}) ⇒ PostUpdateResponse
Update post Update an existing post.
-
#update_post_metadata(post_id, update_post_metadata_request, opts = {}) ⇒ UpdatePostMetadata200Response
Update post metadata Updates metadata of a published video on the specified platform without re-uploading.
-
#update_post_metadata_with_http_info(post_id, update_post_metadata_request, opts = {}) ⇒ Array<(UpdatePostMetadata200Response, Integer, Hash)>
Update post metadata Updates metadata of a published video on the specified platform without re-uploading.
-
#update_post_with_http_info(post_id, update_post_request, opts = {}) ⇒ Array<(PostUpdateResponse, Integer, Hash)>
Update post Update an existing post.
Constructor Details
Instance Attribute Details
#api_client ⇒ Object
Returns the value of attribute api_client.
17 18 19 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 17 def api_client @api_client end |
Instance Method Details
#bulk_upload_posts(opts = {}) ⇒ BulkUploadResult
Bulk upload from CSV Create multiple posts by uploading a CSV file. Use dryRun=true to validate without creating posts.
28 29 30 31 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 28 def bulk_upload_posts(opts = {}) data, _status_code, _headers = bulk_upload_posts_with_http_info(opts) data end |
#bulk_upload_posts_with_http_info(opts = {}) ⇒ Array<(BulkUploadResult, Integer, Hash)>
Bulk upload from CSV Create multiple posts by uploading a CSV file. Use dryRun=true to validate without creating posts.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 39 def bulk_upload_posts_with_http_info(opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: PostsApi.bulk_upload_posts ...' end # resource path local_var_path = '/v1/posts/bulk-upload' # query parameters query_params = opts[:query_params] || {} query_params[:'dryRun'] = opts[:'dry_run'] if !opts[:'dry_run'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept'] # HTTP header 'Content-Type' content_type = @api_client.select_header_content_type(['multipart/form-data']) if !content_type.nil? header_params['Content-Type'] = content_type end # form parameters form_params = opts[:form_params] || {} form_params['file'] = opts[:'file'] if !opts[:'file'].nil? # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'BulkUploadResult' # auth_names auth_names = opts[:debug_auth_names] || ['bearerAuth'] = opts.merge( :operation => :"PostsApi.bulk_upload_posts", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:POST, local_var_path, ) if @api_client.config.debugging @api_client.config.logger.debug "API called: PostsApi#bulk_upload_posts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end |
#create_post(create_post_request, opts = {}) ⇒ PostCreateResponse
Create post
Create and optionally publish a post. Immediate posts (publishNow: true) include platformPostUrl in the response. Content is optional when media is attached or all platforms have customContent. See each platform's schema for media constraints. ## Idempotency Two layers of duplicate-protection apply, so safe-to-retry callers (network blips, n8n / Zapier retries, etc.) don't accidentally double-post. 1. Same-request idempotency (5-minute window). Pass an x-request-id header to mark a logical request. If a second request arrives with the same x-request-id while the first is in-flight (or within ~5 minutes of completion), we return HTTP 200 with the original post in the existingPost field — no new post is created. The official Zernio SDKs auto-generate a unique x-request-id per call. If you're using a generic HTTP client (curl, n8n's HTTP node, Zapier, custom code), either: - Set a unique x-request-id per logical call (recommended — UUIDv4 is fine) - Or simply omit the header — we'll treat each request as new Common pitfall: if your workflow tool uses a single execution-level request ID and reuses it across multiple HTTP nodes (e.g. one ID for the whole run, shared across 6 different platform calls), every call after the first will look like a retry of the first and return its post. Generate a fresh ID per node. 2. Content-hash dedup (24-hour window). Independently, we hash (platform, accountId, content + media URLs) and reject duplicates within 24 hours with HTTP 409. This catches genuine "same content posted twice to the same account" cases regardless of x-request-id. Returns error, accountId, platform, and existingPostId so you can find the original. To intentionally re-post identical content within 24h, change something (the caption, the media, the account) — the dedup is keyed on the full content fingerprint. Order: same-x-request-id retries (200) are checked first; if no idempotency match, the content-hash dedup (409) runs.
96 97 98 99 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 96 def create_post(create_post_request, opts = {}) data, _status_code, _headers = create_post_with_http_info(create_post_request, opts) data end |
#create_post_with_http_info(create_post_request, opts = {}) ⇒ Array<(PostCreateResponse, Integer, Hash)>
Create post Create and optionally publish a post. Immediate posts (`publishNow: true`) include `platformPostUrl` in the response. Content is optional when media is attached or all platforms have `customContent`. See each platform's schema for media constraints. ## Idempotency Two layers of duplicate-protection apply, so safe-to-retry callers (network blips, n8n / Zapier retries, etc.) don't accidentally double-post. 1. Same-request idempotency (5-minute window). Pass an `x-request-id` header to mark a logical request. If a second request arrives with the same `x-request-id` while the first is in-flight (or within ~5 minutes of completion), we return HTTP 200 with the original post in the `existingPost` field — no new post is created. The official Zernio SDKs auto-generate a unique `x-request-id` per call. If you're using a generic HTTP client (curl, n8n's HTTP node, Zapier, custom code), either: - Set a unique `x-request-id` per logical call (recommended — UUIDv4 is fine) - Or simply omit the header — we'll treat each request as new Common pitfall: if your workflow tool uses a single execution-level request ID and reuses it across multiple HTTP nodes (e.g. one ID for the whole run, shared across 6 different platform calls), every call after the first will look like a retry of the first and return its post. Generate a fresh ID per node. 2. Content-hash dedup (24-hour window). Independently, we hash `(platform, accountId, content + media URLs)` and reject duplicates within 24 hours with HTTP 409. This catches genuine "same content posted twice to the same account" cases regardless of `x-request-id`. Returns `error`, `accountId`, `platform`, and `existingPostId` so you can find the original. To intentionally re-post identical content within 24h, change something (the caption, the media, the account) — the dedup is keyed on the full content fingerprint. Order: same-`x-request-id` retries (200) are checked first; if no idempotency match, the content-hash dedup (409) runs.
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 107 def create_post_with_http_info(create_post_request, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: PostsApi.create_post ...' end # verify the required parameter 'create_post_request' is set if @api_client.config.client_side_validation && create_post_request.nil? fail ArgumentError, "Missing the required parameter 'create_post_request' when calling PostsApi.create_post" end # resource path local_var_path = '/v1/posts' # query parameters query_params = opts[:query_params] || {} # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept'] # HTTP header 'Content-Type' content_type = @api_client.select_header_content_type(['application/json']) if !content_type.nil? header_params['Content-Type'] = content_type end header_params[:'x-request-id'] = opts[:'x_request_id'] if !opts[:'x_request_id'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(create_post_request) # return_type return_type = opts[:debug_return_type] || 'PostCreateResponse' # auth_names auth_names = opts[:debug_auth_names] || ['bearerAuth'] = opts.merge( :operation => :"PostsApi.create_post", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:POST, local_var_path, ) if @api_client.config.debugging @api_client.config.logger.debug "API called: PostsApi#create_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end |
#delete_post(post_id, opts = {}) ⇒ PostDeleteResponse
Delete post Delete a draft or scheduled post from Zernio. Published posts cannot be deleted; use the Unpublish endpoint instead. Upload quota is automatically refunded.
166 167 168 169 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 166 def delete_post(post_id, opts = {}) data, _status_code, _headers = delete_post_with_http_info(post_id, opts) data end |
#delete_post_with_http_info(post_id, opts = {}) ⇒ Array<(PostDeleteResponse, Integer, Hash)>
Delete post Delete a draft or scheduled post from Zernio. Published posts cannot be deleted; use the Unpublish endpoint instead. Upload quota is automatically refunded.
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 176 def delete_post_with_http_info(post_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: PostsApi.delete_post ...' end # verify the required parameter 'post_id' is set if @api_client.config.client_side_validation && post_id.nil? fail ArgumentError, "Missing the required parameter 'post_id' when calling PostsApi.delete_post" end # resource path local_var_path = '/v1/posts/{postId}'.sub('{' + 'postId' + '}', CGI.escape(post_id.to_s)) # query parameters query_params = opts[:query_params] || {} # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept'] # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'PostDeleteResponse' # auth_names auth_names = opts[:debug_auth_names] || ['bearerAuth'] = opts.merge( :operation => :"PostsApi.delete_post", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, ) if @api_client.config.debugging @api_client.config.logger.debug "API called: PostsApi#delete_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end |
#edit_post(post_id, edit_post_request, opts = {}) ⇒ EditPost200Response
Edit published post
Edit the text of an already-published post. Supported on X (Twitter), Discord, Facebook, and Reddit. Each platform enforces its own rules: X (Twitter) - Connected X account must have an active X Premium subscription - Must be within 1 hour of original publish time - Maximum 5 edits per tweet (enforced by X) - Threads cannot be edited, only single tweets - X assigns a NEW post ID on edit, returned as id Discord - No time limit and no premium requirement - The message ID is unchanged after the edit Facebook - Graph only permits editing a post that the same app created, so this works on posts published through Zernio and is rejected for posts created in Meta Business Suite / Composer or by another tool - Media cannot be swapped, only the message text - Reactions, comments, and shares are preserved. The post ID is unchanged Reddit - Self-posts only. A link post has no editable body and is rejected before the write - Body only. Reddit exposes no API to edit a post title, ever - The post ID is unchanged Media edits are not supported on any platform. The post record in Zernio is updated with the new content and an edit-history entry.
230 231 232 233 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 230 def edit_post(post_id, edit_post_request, opts = {}) data, _status_code, _headers = edit_post_with_http_info(post_id, edit_post_request, opts) data end |
#edit_post_with_http_info(post_id, edit_post_request, opts = {}) ⇒ Array<(EditPost200Response, Integer, Hash)>
Edit published post Edit the text of an already-published post. Supported on X (Twitter), Discord, Facebook, and Reddit. Each platform enforces its own rules: X (Twitter) - Connected X account must have an active X Premium subscription - Must be within 1 hour of original publish time - Maximum 5 edits per tweet (enforced by X) - Threads cannot be edited, only single tweets - X assigns a NEW post ID on edit, returned as `id` Discord - No time limit and no premium requirement - The message ID is unchanged after the edit Facebook - Graph only permits editing a post that the same app created, so this works on posts published through Zernio and is rejected for posts created in Meta Business Suite / Composer or by another tool - Media cannot be swapped, only the message text - Reactions, comments, and shares are preserved. The post ID is unchanged Reddit - Self-posts only. A link post has no editable body and is rejected before the write - Body only. Reddit exposes no API to edit a post title, ever - The post ID is unchanged Media edits are not supported on any platform. The post record in Zernio is updated with the new content and an edit-history entry.
241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 241 def edit_post_with_http_info(post_id, edit_post_request, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: PostsApi.edit_post ...' end # verify the required parameter 'post_id' is set if @api_client.config.client_side_validation && post_id.nil? fail ArgumentError, "Missing the required parameter 'post_id' when calling PostsApi.edit_post" end # verify the required parameter 'edit_post_request' is set if @api_client.config.client_side_validation && edit_post_request.nil? fail ArgumentError, "Missing the required parameter 'edit_post_request' when calling PostsApi.edit_post" end # resource path local_var_path = '/v1/posts/{postId}/edit'.sub('{' + 'postId' + '}', CGI.escape(post_id.to_s)) # query parameters query_params = opts[:query_params] || {} # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept'] # HTTP header 'Content-Type' content_type = @api_client.select_header_content_type(['application/json']) if !content_type.nil? header_params['Content-Type'] = content_type end # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(edit_post_request) # return_type return_type = opts[:debug_return_type] || 'EditPost200Response' # auth_names auth_names = opts[:debug_auth_names] || ['bearerAuth'] = opts.merge( :operation => :"PostsApi.edit_post", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:POST, local_var_path, ) if @api_client.config.debugging @api_client.config.logger.debug "API called: PostsApi#edit_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end |
#get_post(post_id, opts = {}) ⇒ PostGetResponse
Get post Fetch a single post by ID. For published posts, this returns platformPostUrl for each platform.
303 304 305 306 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 303 def get_post(post_id, opts = {}) data, _status_code, _headers = get_post_with_http_info(post_id, opts) data end |
#get_post_with_http_info(post_id, opts = {}) ⇒ Array<(PostGetResponse, Integer, Hash)>
Get post Fetch a single post by ID. For published posts, this returns platformPostUrl for each platform.
313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 313 def get_post_with_http_info(post_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: PostsApi.get_post ...' end # verify the required parameter 'post_id' is set if @api_client.config.client_side_validation && post_id.nil? fail ArgumentError, "Missing the required parameter 'post_id' when calling PostsApi.get_post" end # resource path local_var_path = '/v1/posts/{postId}'.sub('{' + 'postId' + '}', CGI.escape(post_id.to_s)) # query parameters query_params = opts[:query_params] || {} # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept'] # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'PostGetResponse' # auth_names auth_names = opts[:debug_auth_names] || ['bearerAuth'] = opts.merge( :operation => :"PostsApi.get_post", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:GET, local_var_path, ) if @api_client.config.debugging @api_client.config.logger.debug "API called: PostsApi#get_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end |
#list_posts(opts = {}) ⇒ PostsListResponse
List posts Returns a paginated list of posts. Published posts include platformPostUrl with the public URL on each platform.
378 379 380 381 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 378 def list_posts(opts = {}) data, _status_code, _headers = list_posts_with_http_info(opts) data end |
#list_posts_with_http_info(opts = {}) ⇒ Array<(PostsListResponse, Integer, Hash)>
List posts Returns a paginated list of posts. Published posts include platformPostUrl with the public URL on each platform.
400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 400 def list_posts_with_http_info(opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: PostsApi.list_posts ...' end if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1 fail ArgumentError, 'invalid value for "opts[:"page"]" when calling PostsApi.list_posts, must be greater than or equal to 1.' end if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100 fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling PostsApi.list_posts, must be smaller than or equal to 100.' end if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1 fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling PostsApi.list_posts, must be greater than or equal to 1.' end allowable_values = ["zernio", "external"] if @api_client.config.client_side_validation && opts[:'source'] && !allowable_values.include?(opts[:'source']) fail ArgumentError, "invalid value for \"source\", must be one of #{allowable_values}" end allowable_values = ["draft", "scheduled", "published", "failed"] if @api_client.config.client_side_validation && opts[:'status'] && !allowable_values.include?(opts[:'status']) fail ArgumentError, "invalid value for \"status\", must be one of #{allowable_values}" end allowable_values = ["scheduled-desc", "scheduled-asc", "created-desc", "created-asc", "status", "platform"] if @api_client.config.client_side_validation && opts[:'sort_by'] && !allowable_values.include?(opts[:'sort_by']) fail ArgumentError, "invalid value for \"sort_by\", must be one of #{allowable_values}" end # resource path local_var_path = '/v1/posts' # query parameters query_params = opts[:query_params] || {} query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil? query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil? query_params[:'source'] = opts[:'source'] if !opts[:'source'].nil? query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil? query_params[:'platform'] = opts[:'platform'] if !opts[:'platform'].nil? query_params[:'profileId'] = opts[:'profile_id'] if !opts[:'profile_id'].nil? query_params[:'createdBy'] = opts[:'created_by'] if !opts[:'created_by'].nil? query_params[:'dateFrom'] = opts[:'date_from'] if !opts[:'date_from'].nil? query_params[:'dateTo'] = opts[:'date_to'] if !opts[:'date_to'].nil? query_params[:'includeHidden'] = opts[:'include_hidden'] if !opts[:'include_hidden'].nil? query_params[:'search'] = opts[:'search'] if !opts[:'search'].nil? query_params[:'sortBy'] = opts[:'sort_by'] if !opts[:'sort_by'].nil? query_params[:'accountId'] = opts[:'account_id'] if !opts[:'account_id'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept'] # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'PostsListResponse' # auth_names auth_names = opts[:debug_auth_names] || ['bearerAuth'] = opts.merge( :operation => :"PostsApi.list_posts", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:GET, local_var_path, ) if @api_client.config.debugging @api_client.config.logger.debug "API called: PostsApi#list_posts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end |
#retry_post(post_id, opts = {}) ⇒ PostRetryResponse
Retry failed post Immediately retries publishing a failed post. Returns the updated post with its new status.
486 487 488 489 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 486 def retry_post(post_id, opts = {}) data, _status_code, _headers = retry_post_with_http_info(post_id, opts) data end |
#retry_post_with_http_info(post_id, opts = {}) ⇒ Array<(PostRetryResponse, Integer, Hash)>
Retry failed post Immediately retries publishing a failed post. Returns the updated post with its new status.
496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 496 def retry_post_with_http_info(post_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: PostsApi.retry_post ...' end # verify the required parameter 'post_id' is set if @api_client.config.client_side_validation && post_id.nil? fail ArgumentError, "Missing the required parameter 'post_id' when calling PostsApi.retry_post" end # resource path local_var_path = '/v1/posts/{postId}/retry'.sub('{' + 'postId' + '}', CGI.escape(post_id.to_s)) # query parameters query_params = opts[:query_params] || {} # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept'] # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'PostRetryResponse' # auth_names auth_names = opts[:debug_auth_names] || ['bearerAuth'] = opts.merge( :operation => :"PostsApi.retry_post", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:POST, local_var_path, ) if @api_client.config.debugging @api_client.config.logger.debug "API called: PostsApi#retry_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end |
#unpublish_post(post_id, unpublish_post_request, opts = {}) ⇒ UnpublishPost200Response
Unpublish post Deletes a published post from the specified platform. The post record in Zernio is kept but its status is updated to cancelled. Not supported on Instagram, TikTok, or Snapchat. Threaded posts delete all items. YouTube deletion is permanent.
550 551 552 553 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 550 def unpublish_post(post_id, unpublish_post_request, opts = {}) data, _status_code, _headers = unpublish_post_with_http_info(post_id, unpublish_post_request, opts) data end |
#unpublish_post_with_http_info(post_id, unpublish_post_request, opts = {}) ⇒ Array<(UnpublishPost200Response, Integer, Hash)>
Unpublish post Deletes a published post from the specified platform. The post record in Zernio is kept but its status is updated to cancelled. Not supported on Instagram, TikTok, or Snapchat. Threaded posts delete all items. YouTube deletion is permanent.
561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 561 def unpublish_post_with_http_info(post_id, unpublish_post_request, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: PostsApi.unpublish_post ...' end # verify the required parameter 'post_id' is set if @api_client.config.client_side_validation && post_id.nil? fail ArgumentError, "Missing the required parameter 'post_id' when calling PostsApi.unpublish_post" end # verify the required parameter 'unpublish_post_request' is set if @api_client.config.client_side_validation && unpublish_post_request.nil? fail ArgumentError, "Missing the required parameter 'unpublish_post_request' when calling PostsApi.unpublish_post" end # resource path local_var_path = '/v1/posts/{postId}/unpublish'.sub('{' + 'postId' + '}', CGI.escape(post_id.to_s)) # query parameters query_params = opts[:query_params] || {} # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept'] # HTTP header 'Content-Type' content_type = @api_client.select_header_content_type(['application/json']) if !content_type.nil? header_params['Content-Type'] = content_type end # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(unpublish_post_request) # return_type return_type = opts[:debug_return_type] || 'UnpublishPost200Response' # auth_names auth_names = opts[:debug_auth_names] || ['bearerAuth'] = opts.merge( :operation => :"PostsApi.unpublish_post", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:POST, local_var_path, ) if @api_client.config.debugging @api_client.config.logger.debug "API called: PostsApi#unpublish_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end |
#update_post(post_id, update_post_request, opts = {}) ⇒ PostUpdateResponse
Update post
Update an existing post. Draft, scheduled, failed, partial, and cancelled posts can be edited. Published posts can only have their recycling config updated. To promote a draft to scheduled, send isDraft: false together with scheduledFor (or publishNow: true, or queuedFromProfile). If isDraft is omitted the post keeps its current draft status, so sending only scheduledFor to a draft returns 200 but the post remains a draft.
624 625 626 627 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 624 def update_post(post_id, update_post_request, opts = {}) data, _status_code, _headers = update_post_with_http_info(post_id, update_post_request, opts) data end |
#update_post_metadata(post_id, update_post_metadata_request, opts = {}) ⇒ UpdatePostMetadata200Response
Update post metadata Updates metadata of a published video on the specified platform without re-uploading. Currently only supported for YouTube. At least one updatable field is required. Two modes: 1. Post-based (video published through Zernio): pass the Zernio postId in the URL and platform in the body. 2. Direct video ID (video uploaded outside Zernio, e.g. directly to YouTube): use _ as the postId, and pass videoId + accountId + platform in the body. The accountId is the Zernio social account ID for the connected YouTube channel.
698 699 700 701 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 698 def (post_id, , opts = {}) data, _status_code, _headers = (post_id, , opts) data end |
#update_post_metadata_with_http_info(post_id, update_post_metadata_request, opts = {}) ⇒ Array<(UpdatePostMetadata200Response, Integer, Hash)>
Update post metadata Updates metadata of a published video on the specified platform without re-uploading. Currently only supported for YouTube. At least one updatable field is required. Two modes: 1. Post-based (video published through Zernio): pass the Zernio postId in the URL and platform in the body. 2. Direct video ID (video uploaded outside Zernio, e.g. directly to YouTube): use _ as the postId, and pass videoId + accountId + platform in the body. The accountId is the Zernio social account ID for the connected YouTube channel.
709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 709 def (post_id, , opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: PostsApi.update_post_metadata ...' end # verify the required parameter 'post_id' is set if @api_client.config.client_side_validation && post_id.nil? fail ArgumentError, "Missing the required parameter 'post_id' when calling PostsApi.update_post_metadata" end # verify the required parameter 'update_post_metadata_request' is set if @api_client.config.client_side_validation && .nil? fail ArgumentError, "Missing the required parameter 'update_post_metadata_request' when calling PostsApi.update_post_metadata" end # resource path local_var_path = '/v1/posts/{postId}/update-metadata'.sub('{' + 'postId' + '}', CGI.escape(post_id.to_s)) # query parameters query_params = opts[:query_params] || {} # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept'] # HTTP header 'Content-Type' content_type = @api_client.select_header_content_type(['application/json']) if !content_type.nil? header_params['Content-Type'] = content_type end # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body() # return_type return_type = opts[:debug_return_type] || 'UpdatePostMetadata200Response' # auth_names auth_names = opts[:debug_auth_names] || ['bearerAuth'] = opts.merge( :operation => :"PostsApi.update_post_metadata", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:POST, local_var_path, ) if @api_client.config.debugging @api_client.config.logger.debug "API called: PostsApi#update_post_metadata\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end |
#update_post_with_http_info(post_id, update_post_request, opts = {}) ⇒ Array<(PostUpdateResponse, Integer, Hash)>
Update post Update an existing post. Draft, scheduled, failed, partial, and cancelled posts can be edited. Published posts can only have their recycling config updated. To promote a draft to scheduled, send `isDraft: false` together with `scheduledFor` (or `publishNow: true`, or `queuedFromProfile`). If `isDraft` is omitted the post keeps its current draft status, so sending only `scheduledFor` to a draft returns 200 but the post remains a draft.
635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 |
# File 'lib/zernio-sdk/api/posts_api.rb', line 635 def update_post_with_http_info(post_id, update_post_request, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: PostsApi.update_post ...' end # verify the required parameter 'post_id' is set if @api_client.config.client_side_validation && post_id.nil? fail ArgumentError, "Missing the required parameter 'post_id' when calling PostsApi.update_post" end # verify the required parameter 'update_post_request' is set if @api_client.config.client_side_validation && update_post_request.nil? fail ArgumentError, "Missing the required parameter 'update_post_request' when calling PostsApi.update_post" end # resource path local_var_path = '/v1/posts/{postId}'.sub('{' + 'postId' + '}', CGI.escape(post_id.to_s)) # query parameters query_params = opts[:query_params] || {} # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept'] # HTTP header 'Content-Type' content_type = @api_client.select_header_content_type(['application/json']) if !content_type.nil? header_params['Content-Type'] = content_type end # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(update_post_request) # return_type return_type = opts[:debug_return_type] || 'PostUpdateResponse' # auth_names auth_names = opts[:debug_auth_names] || ['bearerAuth'] = opts.merge( :operation => :"PostsApi.update_post", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:PUT, local_var_path, ) if @api_client.config.debugging @api_client.config.logger.debug "API called: PostsApi#update_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end |