Class: Courier::Resources::PreferenceSections
- Inherits:
-
Object
- Object
- Courier::Resources::PreferenceSections
- Defined in:
- lib/courier/resources/preference_sections.rb,
lib/courier/resources/preference_sections/topics.rb
Defined Under Namespace
Classes: Topics
Instance Attribute Summary collapse
Instance Method Summary collapse
-
#archive(section_id, request_options: {}) ⇒ nil
Archive a preference section.
-
#create(name:, has_custom_routing: nil, routing_options: nil, request_options: {}) ⇒ Courier::Models::PreferenceSectionGetResponse
Create a preference section in your workspace.
-
#initialize(client:) ⇒ PreferenceSections
constructor
private
A new instance of PreferenceSections.
-
#list(request_options: {}) ⇒ Courier::Models::PreferenceSectionListResponse
List the workspace’s preference sections.
-
#publish(request_options: {}) ⇒ Courier::Models::PublishPreferencesResponse
Publish the workspace’s preferences page.
-
#replace(section_id, name:, has_custom_routing: nil, routing_options: nil, request_options: {}) ⇒ Courier::Models::PreferenceSectionGetResponse
Replace a preference section.
-
#retrieve(section_id, request_options: {}) ⇒ Courier::Models::PreferenceSectionGetResponse
Retrieve a preference section by id, including its topics.
Constructor Details
#initialize(client:) ⇒ PreferenceSections
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of PreferenceSections.
149 150 151 152 |
# File 'lib/courier/resources/preference_sections.rb', line 149 def initialize(client:) @client = client @topics = Courier::Resources::PreferenceSections::Topics.new(client: client) end |
Instance Attribute Details
#topics ⇒ Courier::Resources::PreferenceSections::Topics (readonly)
7 8 9 |
# File 'lib/courier/resources/preference_sections.rb', line 7 def topics @topics end |
Instance Method Details
#archive(section_id, request_options: {}) ⇒ nil
Archive a preference section. The section must be empty: delete its topics first, otherwise the request fails with 409.
88 89 90 91 92 93 94 95 |
# File 'lib/courier/resources/preference_sections.rb', line 88 def archive(section_id, params = {}) @client.request( method: :delete, path: ["preferences/sections/%1$s", section_id], model: NilClass, options: params[:request_options] ) end |
#create(name:, has_custom_routing: nil, routing_options: nil, request_options: {}) ⇒ Courier::Models::PreferenceSectionGetResponse
Create a preference section in your workspace. The section id is generated and returned. Topics are created inside a section via POST /preferences/sections/section_id/topics.
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/courier/resources/preference_sections.rb', line 26 def create(params) parsed, = Courier::PreferenceSectionCreateParams.dump_request(params) @client.request( method: :post, path: "preferences/sections", body: parsed, model: Courier::PreferenceSectionGetResponse, options: ) end |
#list(request_options: {}) ⇒ Courier::Models::PreferenceSectionListResponse
List the workspace’s preference sections. Each section embeds its topics. Scoped to the workspace of the API key.
67 68 69 70 71 72 73 74 |
# File 'lib/courier/resources/preference_sections.rb', line 67 def list(params = {}) @client.request( method: :get, path: "preferences/sections", model: Courier::PreferenceSectionListResponse, options: params[:request_options] ) end |
#publish(request_options: {}) ⇒ Courier::Models::PublishPreferencesResponse
Publish the workspace’s preferences page. Takes a snapshot of every section with its topics under a new published version, making the current state visible on the hosted preferences page (non-draft).
108 109 110 111 112 113 114 115 |
# File 'lib/courier/resources/preference_sections.rb', line 108 def publish(params = {}) @client.request( method: :post, path: "preferences/publish", model: Courier::PublishPreferencesResponse, options: params[:request_options] ) end |
#replace(section_id, name:, has_custom_routing: nil, routing_options: nil, request_options: {}) ⇒ Courier::Models::PreferenceSectionGetResponse
Replace a preference section. Full document replacement; missing optional fields are cleared. Topics attached to the section are unaffected.
135 136 137 138 139 140 141 142 143 144 |
# File 'lib/courier/resources/preference_sections.rb', line 135 def replace(section_id, params) parsed, = Courier::PreferenceSectionReplaceParams.dump_request(params) @client.request( method: :put, path: ["preferences/sections/%1$s", section_id], body: parsed, model: Courier::PreferenceSectionGetResponse, options: ) end |
#retrieve(section_id, request_options: {}) ⇒ Courier::Models::PreferenceSectionGetResponse
Retrieve a preference section by id, including its topics.
48 49 50 51 52 53 54 55 |
# File 'lib/courier/resources/preference_sections.rb', line 48 def retrieve(section_id, params = {}) @client.request( method: :get, path: ["preferences/sections/%1$s", section_id], model: Courier::PreferenceSectionGetResponse, options: params[:request_options] ) end |