Class: Nzbn::Api::OrganisationParts

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

Overview

Organisation Parts API (OPN/GLN management)

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ OrganisationParts

Returns a new instance of OrganisationParts.



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

def initialize(client)
  @client = client
end

Instance Method Details

#create(nzbn:, organisation_part:) ⇒ Models::OrganisationPart

Create an organisation part

Parameters:

  • nzbn (String)

    13-digit NZBN

  • organisation_part (Hash)

    Organisation part attributes

Returns:



65
66
67
68
# File 'lib/nzbn/api/organisation_parts.rb', line 65

def create(nzbn:, organisation_part:)
  response = @client.post("/entities/#{nzbn}/organisation-parts", organisation_part)
  Models::OrganisationPart.new(response)
end

#get(nzbn:, opn:) ⇒ Models::OrganisationPart

Get an organisation part

Parameters:

  • nzbn (String)

    13-digit NZBN

  • opn (String)

    Organisation part number

Returns:



54
55
56
57
# File 'lib/nzbn/api/organisation_parts.rb', line 54

def get(nzbn:, opn:)
  response = @client.get("/entities/#{nzbn}/organisation-parts/#{opn}")
  Models::OrganisationPart.new(response)
end

#gln_allocation(nzbn:) ⇒ Hash

Get GLN allocation summary for an entity

Parameters:

  • nzbn (String)

    13-digit NZBN

Returns:

  • (Hash)

    Allocation summary



87
88
89
# File 'lib/nzbn/api/organisation_parts.rb', line 87

def gln_allocation(nzbn:)
  @client.get("/entities/#{nzbn}/organisation-parts/allocation")
end

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

List organisation parts for an entity

Parameters:

  • nzbn (String)

    13-digit NZBN

Returns:



41
42
43
44
45
46
# File 'lib/nzbn/api/organisation_parts.rb', line 41

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

  response.map { |op| Models::OrganisationPart.new(op) }
end

#search(nzbn: nil, opn: nil, name: nil, function: nil, status: nil, page: nil, page_size: nil) ⇒ Models::SearchResponse

Search organisation parts

Parameters:

  • nzbn (String) (defaults to: nil)

    Parent NZBN to search within

  • opn (String) (defaults to: nil)

    OPN to search for

  • name (String) (defaults to: nil)

    Name filter

  • function (String) (defaults to: nil)

    Function filter (FUNCTION, PHYSICAL_LOCATION, DIGITAL_LOCATION)

  • status (String) (defaults to: nil)

    Status filter (ACTIVE, INACTIVE)

  • page (Integer) (defaults to: nil)

    Page number

  • page_size (Integer) (defaults to: nil)

    Results per page

Returns:



22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/nzbn/api/organisation_parts.rb', line 22

def search(nzbn: nil, opn: nil, name: nil, function: nil, status: nil, page: nil, page_size: nil)
  params = {}
  params['nzbn'] = nzbn if nzbn
  params['opn'] = opn if opn
  params['name'] = name if name
  params['function'] = function if function
  params['status'] = status if status
  params['page'] = page if page
  params['page-size'] = page_size if page_size

  response = @client.get('/entities/organisation-parts', params)
  Models::SearchResponse.new(response, item_class: Models::OrganisationPart)
end

#update(nzbn:, opn:, organisation_part:) ⇒ Models::OrganisationPart

Update an organisation part

Parameters:

  • nzbn (String)

    13-digit NZBN

  • opn (String)

    Organisation part number

  • organisation_part (Hash)

    Updated attributes

Returns:



77
78
79
80
# File 'lib/nzbn/api/organisation_parts.rb', line 77

def update(nzbn:, opn:, organisation_part:)
  response = @client.put("/entities/#{nzbn}/organisation-parts/#{opn}", organisation_part)
  Models::OrganisationPart.new(response)
end