Class: Yandex360::DepartmentsResource

Inherits:
Resource
  • Object
show all
Includes:
ParamBuilder
Defined in:
lib/yandex360/resources/departments.rb

Instance Attribute Summary

Attributes inherited from Resource

#client

Instance Method Summary collapse

Methods inherited from Resource

#initialize

Constructor Details

This class inherits a constructor from Yandex360::Resource

Instance Method Details

#add_alias(org_id:, dep_id:, name:) ⇒ Object



6
7
8
9
10
# File 'lib/yandex360/resources/departments.rb', line 6

def add_alias(org_id:, dep_id:, name:)
  validate_required_params({org_id: org_id, dep_id: dep_id, name: name}, %i[org_id dep_id name])
  dep_alias = {alias: name}
  DepartmentAlias.new post("/directory/v1/org/#{org_id}/departments/#{dep_id}/aliases", body: dep_alias).body
end

#create(org_id:, name:, parent_id:, **params) ⇒ Object

parent_id:, name:, description: "", external_id: "", head_id: 0, label: ""



40
41
42
43
44
45
46
47
48
# File 'lib/yandex360/resources/departments.rb', line 40

def create(org_id:, name:, parent_id:, **params)
  validate_required_params({org_id: org_id, name: name, parent_id: parent_id}, %i[org_id name parent_id])
  department = build_department_params({
                                         parentId: parent_id,
                                         name: name
                                       }, params)

  Department.new post("/directory/v1/org/#{org_id}/departments", body: department).body
end

#delete(org_id:, dep_id:) ⇒ Object



55
56
57
58
# File 'lib/yandex360/resources/departments.rb', line 55

def delete(org_id:, dep_id:)
  validate_required_params({org_id: org_id, dep_id: dep_id}, %i[org_id dep_id])
  Object.new delete_request("/directory/v1/org/#{org_id}/departments/#{dep_id}").body
end

#delete_alias(org_id:, dep_id:, name:) ⇒ Object



50
51
52
53
# File 'lib/yandex360/resources/departments.rb', line 50

def delete_alias(org_id:, dep_id:, name:)
  validate_required_params({org_id: org_id, dep_id: dep_id, name: name}, %i[org_id dep_id name])
  Object.new delete_request("/directory/v1/org/#{org_id}/departments/#{dep_id}/aliases/#{name}").body
end

#info(org_id:, dep_id:) ⇒ Object



22
23
24
25
# File 'lib/yandex360/resources/departments.rb', line 22

def info(org_id:, dep_id:)
  validate_required_params({org_id: org_id, dep_id: dep_id}, %i[org_id dep_id])
  Department.new get("/directory/v1/org/#{org_id}/departments/#{dep_id}").body
end

#list(org_id:, page: 1, per_page: 10, parent_id: 0, order_by: "id") ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/yandex360/resources/departments.rb', line 27

def list(org_id:, page: 1, per_page: 10, parent_id: 0, order_by: "id")
  validate_required_params({org_id: org_id}, [:org_id])
  params = {
    page: page,
    perPage: per_page,
    parentId: parent_id,
    orderBy: order_by
  }
  resp = get("/directory/v1/org/#{org_id}/departments", params: params)
  Collection.from_response(resp, key: "departments", type: Department)
end

#update(org_id:, dep_id:, parent_id:, **params) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/yandex360/resources/departments.rb', line 12

def update(org_id:, dep_id:, parent_id:, **params)
  validate_required_params({org_id: org_id, dep_id: dep_id, parent_id: parent_id}, %i[org_id dep_id parent_id])
  department = build_department_params({
                                         orgId: org_id,
                                         departmentId: dep_id,
                                         parentId: parent_id
                                       }, params)
  Department.new patch("/directory/v1/org/#{org_id}/departments/#{dep_id}", body: department).body
end