Class: Courier::Resources::WorkspacePreferences
- Inherits:
-
Object
- Object
- Courier::Resources::WorkspacePreferences
- Defined in:
- lib/courier/resources/workspace_preferences.rb,
lib/courier/resources/workspace_preferences/topics.rb
Defined Under Namespace
Classes: Topics
Instance Attribute Summary collapse
Instance Method Summary collapse
-
#archive(section_id, request_options: {}) ⇒ nil
Archive a workspace preference.
-
#create(name:, has_custom_routing: nil, routing_options: nil, request_options: {}) ⇒ Courier::Models::WorkspacePreferenceGetResponse
Create a workspace preference.
-
#initialize(client:) ⇒ WorkspacePreferences
constructor
private
A new instance of WorkspacePreferences.
-
#list(request_options: {}) ⇒ Courier::Models::WorkspacePreferenceListResponse
List the workspace’s preferences.
-
#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::WorkspacePreferenceGetResponse
Replace a workspace preference.
-
#retrieve(section_id, request_options: {}) ⇒ Courier::Models::WorkspacePreferenceGetResponse
Retrieve a workspace preference by id, including its topics.
Constructor Details
#initialize(client:) ⇒ WorkspacePreferences
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 WorkspacePreferences.
149 150 151 152 |
# File 'lib/courier/resources/workspace_preferences.rb', line 149 def initialize(client:) @client = client @topics = Courier::Resources::WorkspacePreferences::Topics.new(client: client) end |
Instance Attribute Details
#topics ⇒ Courier::Resources::WorkspacePreferences::Topics (readonly)
7 8 9 |
# File 'lib/courier/resources/workspace_preferences.rb', line 7 def topics @topics end |
Instance Method Details
#archive(section_id, request_options: {}) ⇒ nil
Archive a workspace preference. The workspace preference 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/workspace_preferences.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::WorkspacePreferenceGetResponse
Create a workspace preference. The workspace preference id is generated and returned. Topics are created inside a workspace preference via POST /preferences/sections/section_id/topics.
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/courier/resources/workspace_preferences.rb', line 26 def create(params) parsed, = Courier::WorkspacePreferenceCreateParams.dump_request(params) @client.request( method: :post, path: "preferences/sections", body: parsed, model: Courier::WorkspacePreferenceGetResponse, options: ) end |
#list(request_options: {}) ⇒ Courier::Models::WorkspacePreferenceListResponse
List the workspace’s preferences. Each workspace preference embeds its topics. Scoped to the workspace of the API key.
67 68 69 70 71 72 73 74 |
# File 'lib/courier/resources/workspace_preferences.rb', line 67 def list(params = {}) @client.request( method: :get, path: "preferences/sections", model: Courier::WorkspacePreferenceListResponse, options: params[:request_options] ) end |
#publish(request_options: {}) ⇒ Courier::Models::PublishPreferencesResponse
Publish the workspace’s preferences page. Takes a snapshot of every workspace preference 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/workspace_preferences.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::WorkspacePreferenceGetResponse
Replace a workspace preference. Full document replacement; missing optional fields are cleared. Topics attached to the workspace preference are unaffected.
135 136 137 138 139 140 141 142 143 144 |
# File 'lib/courier/resources/workspace_preferences.rb', line 135 def replace(section_id, params) parsed, = Courier::WorkspacePreferenceReplaceParams.dump_request(params) @client.request( method: :put, path: ["preferences/sections/%1$s", section_id], body: parsed, model: Courier::WorkspacePreferenceGetResponse, options: ) end |
#retrieve(section_id, request_options: {}) ⇒ Courier::Models::WorkspacePreferenceGetResponse
Retrieve a workspace preference by id, including its topics.
48 49 50 51 52 53 54 55 |
# File 'lib/courier/resources/workspace_preferences.rb', line 48 def retrieve(section_id, params = {}) @client.request( method: :get, path: ["preferences/sections/%1$s", section_id], model: Courier::WorkspacePreferenceGetResponse, options: params[:request_options] ) end |