Class: Nzbn::Api::Roles

Inherits:
Object
  • Object
show all
Defined in:
lib/nzbn/api/roles.rb

Overview

Roles API - Manage entity roles (directors, partners, etc.)

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Roles

Returns a new instance of Roles.



7
8
9
# File 'lib/nzbn/api/roles.rb', line 7

def initialize(client)
  @client = client
end

Instance Method Details

#create(nzbn:, role:) ⇒ Models::Role

Add a role to an entity

Examples:

client.roles.create(nzbn: '9429041925676', role: {
  roleType: 'PARTNER_INDIVIDUAL',
  rolePerson: { firstName: 'John', lastName: 'Doe' },
  startDate: '2024-01-01'
})

Parameters:

  • nzbn (String)

    13-digit NZBN

  • role (Hash)

    Role attributes including roleType, rolePerson, etc.

Returns:



36
37
38
39
# File 'lib/nzbn/api/roles.rb', line 36

def create(nzbn:, role:)
  response = @client.post("/entities/#{nzbn}/roles", role)
  Models::Role.new(response)
end

#list(nzbn:) ⇒ Array<Models::Role>

List roles for an entity

Parameters:

  • nzbn (String)

    13-digit NZBN

Returns:



16
17
18
19
20
21
# File 'lib/nzbn/api/roles.rb', line 16

def list(nzbn:)
  response = @client.get("/entities/#{nzbn}/roles")
  return [] unless response.is_a?(Array)

  response.map { |role| Models::Role.new(role) }
end

#update(nzbn:, role:) ⇒ Models::Role

Update a role

Parameters:

  • nzbn (String)

    13-digit NZBN

  • role (Hash)

    Updated role attributes

Returns:



47
48
49
50
# File 'lib/nzbn/api/roles.rb', line 47

def update(nzbn:, role:)
  response = @client.put("/entities/#{nzbn}/roles", role)
  Models::Role.new(response)
end