Class: Yandex360::MailboxesResource
- Includes:
- ParamBuilder
- Defined in:
- lib/yandex360/resources/mailboxes.rb
Overview
Shared and delegated mailboxes, and the access rights on them.
Instance Attribute Summary
Attributes inherited from Resource
Instance Method Summary collapse
-
#actors(org_id:, resource_id:) ⇒ Object
Employees who can reach the given mailbox.
- #create_delegated(org_id:, resource_id:) ⇒ Object
- #create_shared(org_id:, email:, name:, description:) ⇒ Object
- #delegated_list(org_id:, page: 1, per_page: 10) ⇒ Object
- #delete_delegated(org_id:, resource_id:) ⇒ Object
- #delete_shared(org_id:, resource_id:) ⇒ Object
-
#resources(org_id:, actor_id:) ⇒ Object
Mailboxes the given employee can reach.
-
#set_access(org_id:, resource_id:, actor_id:, roles:, notify: nil) ⇒ Object
Applies asynchronously.
- #shared_info(org_id:, resource_id:) ⇒ Object
- #shared_list(org_id:, page: 1, per_page: 10) ⇒ Object
- #task_status(org_id:, task_id:) ⇒ Object
- #update_shared(org_id:, resource_id:, **params) ⇒ Object
Methods inherited from Resource
Constructor Details
This class inherits a constructor from Yandex360::Resource
Instance Method Details
#actors(org_id:, resource_id:) ⇒ Object
Employees who can reach the given mailbox.
61 62 63 64 65 |
# File 'lib/yandex360/resources/mailboxes.rb', line 61 def actors(org_id:, resource_id:) validate_required_params({org_id: org_id, resource_id: resource_id}, %i[org_id resource_id]) resp = get("/admin/v1/org/#{org_id}/mailboxes/actors/#{resource_id}") Collection.from_response(resp, key: "actors", type: MailboxActor) end |
#create_delegated(org_id:, resource_id:) ⇒ Object
49 50 51 52 53 |
# File 'lib/yandex360/resources/mailboxes.rb', line 49 def create_delegated(org_id:, resource_id:) validate_required_params({org_id: org_id, resource_id: resource_id}, %i[org_id resource_id]) body = {resourceId: resource_id} Mailbox.new put("/admin/v1/org/#{org_id}/mailboxes/delegated", body: body).body end |
#create_shared(org_id:, email:, name:, description:) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/yandex360/resources/mailboxes.rb', line 18 def create_shared(org_id:, email:, name:, description:) required = {org_id: org_id, email: email, name: name, description: description} validate_required_params(required, %i[org_id email name description]) body = {email: email, name: name, description: description} Mailbox.new put("/admin/v1/org/#{org_id}/mailboxes/shared", body: body).body end |
#delegated_list(org_id:, page: 1, per_page: 10) ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/yandex360/resources/mailboxes.rb', line 41 def delegated_list(org_id:, page: 1, per_page: 10) validate_required_params({org_id: org_id}, [:org_id]) resp = get("/admin/v1/org/#{org_id}/mailboxes/delegated", params: {page: page, perPage: per_page}) Collection.from_response(resp, key: "resources", type: MailboxResource) do |next_page| delegated_list(org_id: org_id, page: next_page, per_page: per_page) end end |
#delete_delegated(org_id:, resource_id:) ⇒ Object
55 56 57 58 |
# File 'lib/yandex360/resources/mailboxes.rb', line 55 def delete_delegated(org_id:, resource_id:) validate_required_params({org_id: org_id, resource_id: resource_id}, %i[org_id resource_id]) Response.new delete_request("/admin/v1/org/#{org_id}/mailboxes/delegated/#{resource_id}").body end |
#delete_shared(org_id:, resource_id:) ⇒ Object
36 37 38 39 |
# File 'lib/yandex360/resources/mailboxes.rb', line 36 def delete_shared(org_id:, resource_id:) validate_required_params({org_id: org_id, resource_id: resource_id}, %i[org_id resource_id]) Response.new delete_request("/admin/v1/org/#{org_id}/mailboxes/shared/#{resource_id}").body end |
#resources(org_id:, actor_id:) ⇒ Object
Mailboxes the given employee can reach.
68 69 70 71 72 |
# File 'lib/yandex360/resources/mailboxes.rb', line 68 def resources(org_id:, actor_id:) validate_required_params({org_id: org_id, actor_id: actor_id}, %i[org_id actor_id]) resp = get("/admin/v1/org/#{org_id}/mailboxes/resources/#{actor_id}") Collection.from_response(resp, key: "resources", type: MailboxResource) end |
#set_access(org_id:, resource_id:, actor_id:, roles:, notify: nil) ⇒ Object
Applies asynchronously. The returned taskId is polled through #task_status. notify is one of "all", "delegates" or "none".
76 77 78 79 80 81 82 83 84 |
# File 'lib/yandex360/resources/mailboxes.rb', line 76 def set_access(org_id:, resource_id:, actor_id:, roles:, notify: nil) required = {org_id: org_id, resource_id: resource_id, actor_id: actor_id, roles: roles} validate_required_params(required, %i[org_id resource_id actor_id roles]) params = {actorId: actor_id} params[:notify] = notify if notify resp = post("/admin/v1/org/#{org_id}/mailboxes/set/#{resource_id}", body: {roles: roles}, params: params) MailboxTask.new resp.body end |
#shared_info(org_id:, resource_id:) ⇒ Object
25 26 27 28 |
# File 'lib/yandex360/resources/mailboxes.rb', line 25 def shared_info(org_id:, resource_id:) validate_required_params({org_id: org_id, resource_id: resource_id}, %i[org_id resource_id]) Mailbox.new get("/admin/v1/org/#{org_id}/mailboxes/shared/#{resource_id}").body end |
#shared_list(org_id:, page: 1, per_page: 10) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/yandex360/resources/mailboxes.rb', line 10 def shared_list(org_id:, page: 1, per_page: 10) validate_required_params({org_id: org_id}, [:org_id]) resp = get("/admin/v1/org/#{org_id}/mailboxes/shared", params: {page: page, perPage: per_page}) Collection.from_response(resp, key: "resources", type: MailboxResource) do |next_page| shared_list(org_id: org_id, page: next_page, per_page: per_page) end end |
#task_status(org_id:, task_id:) ⇒ Object
86 87 88 89 |
# File 'lib/yandex360/resources/mailboxes.rb', line 86 def task_status(org_id:, task_id:) validate_required_params({org_id: org_id, task_id: task_id}, %i[org_id task_id]) MailboxTask.new get("/admin/v1/org/#{org_id}/mailboxes/tasks/#{task_id}").body end |
#update_shared(org_id:, resource_id:, **params) ⇒ Object
30 31 32 33 34 |
# File 'lib/yandex360/resources/mailboxes.rb', line 30 def update_shared(org_id:, resource_id:, **params) validate_required_params({org_id: org_id, resource_id: resource_id}, %i[org_id resource_id]) body = build_params({}, params) Mailbox.new put("/admin/v1/org/#{org_id}/mailboxes/shared/#{resource_id}", body: body).body end |