Class: Nzbn::Api::Entities

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

Overview

Entities API - Search and manage NZBN entities

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Entities

Returns a new instance of Entities.



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

def initialize(client)
  @client = client
end

Instance Method Details

#changes(change_event_type:, entity_type: nil, date_time_from: nil, date_time_to: nil, page: nil, page_size: nil, sort_by: nil, sort_order: nil) ⇒ Models::SearchResponse

Search entity changes

Parameters:

  • change_event_type (String)

    Comma-separated change events (NEW, ENTITY, ROLES_DIRECTOR, etc.)

  • entity_type (String) (defaults to: nil)

    Filter by entity type

  • date_time_from (String) (defaults to: nil)

    Start date (YYYY-MM-DDThh:mm:ss)

  • date_time_to (String) (defaults to: nil)

    End date (YYYY-MM-DDThh:mm:ss)

  • page (Integer) (defaults to: nil)

    Page number

  • page_size (Integer) (defaults to: nil)

    Results per page

  • sort_by (String) (defaults to: nil)

    Sort field (NZBN, ENTITY_NAME, etc.)

  • sort_order (String) (defaults to: nil)

    ASC or DESC

Returns:



75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/nzbn/api/entities.rb', line 75

def changes(change_event_type:, entity_type: nil, date_time_from: nil, date_time_to: nil,
            page: nil, page_size: nil, sort_by: nil, sort_order: nil)
  params = { 'change-event-type' => change_event_type }
  params['entity-type'] = entity_type if entity_type
  params['date-time-from'] = date_time_from if date_time_from
  params['date-time-to'] = date_time_to if date_time_to
  params['page'] = page if page
  params['page-size'] = page_size if page_size
  params['sort-by'] = sort_by if sort_by
  params['sort-order'] = sort_order if sort_order

  response = @client.get('/entities/changes', params)
  Models::SearchResponse.new(response, item_class: Models::SearchEntity)
end

#create(entity:) ⇒ Hash

Create a new entity (sole trader, partnership, or trust)

Parameters:

  • entity (Hash)

    Entity attributes

Returns:

  • (Hash)

    Created entity response



95
96
97
# File 'lib/nzbn/api/entities.rb', line 95

def create(entity:)
  @client.post('/entities', entity)
end

#get(nzbn:, if_none_match: nil) ⇒ Models::FullEntity

Get entity by NZBN

Examples:

entity = client.entities.get(nzbn: '9429041925676')

Parameters:

  • nzbn (String)

    13-digit NZBN

  • if_none_match (String) (defaults to: nil)

    ETag for conditional request

Returns:



45
46
47
48
49
50
51
# File 'lib/nzbn/api/entities.rb', line 45

def get(nzbn:, if_none_match: nil)
  headers = {}
  headers['If-None-Match'] = if_none_match if if_none_match

  response = @client.get("/entities/#{nzbn}", {}, headers)
  Models::FullEntity.new(response)
end

#get_discoverable(nzbn:) ⇒ Models::Entity

Get discoverable entity information

Parameters:

  • nzbn (String)

    13-digit NZBN

Returns:



58
59
60
61
# File 'lib/nzbn/api/entities.rb', line 58

def get_discoverable(nzbn:)
  response = @client.get("/entities/#{nzbn}/discoverable")
  Models::Entity.new(response)
end

#search(search_term:, entity_status: nil, entity_type: nil, industry_code: nil, page: nil, page_size: nil) ⇒ Models::SearchResponse

Search entities by name

Examples:

client.entities.search(search_term: 'Company Name', entity_status: 'Registered')

Parameters:

  • search_term (String)

    Text to search for

  • entity_status (String) (defaults to: nil)

    Filter by status (Registered, InLiquidation, etc.)

  • entity_type (String) (defaults to: nil)

    Filter by type (NZCompany, SoleTrader, etc.)

  • industry_code (String) (defaults to: nil)

    Filter by industry code

  • page (Integer) (defaults to: nil)

    Page number (zero-indexed)

  • page_size (Integer) (defaults to: nil)

    Results per page

Returns:



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

def search(search_term:, entity_status: nil, entity_type: nil, industry_code: nil, page: nil, page_size: nil)
  params = { 'search-term' => search_term }
  params['entity-status'] = entity_status if entity_status
  params['entity-type'] = entity_type if entity_type
  params['industry-code'] = industry_code if industry_code
  params['page'] = page if page
  params['page-size'] = page_size if page_size

  response = @client.get('/entities', params)
  Models::SearchResponse.new(response, item_class: Models::SearchEntity)
end

#update_abn(nzbn:, abn_data:) ⇒ Hash

Update Australian Business Number

Parameters:

  • nzbn (String)

    13-digit NZBN

  • abn_data (Hash)

    ABN update payload

Returns:

  • (Hash)

    Updated ABN



115
116
117
# File 'lib/nzbn/api/entities.rb', line 115

def update_abn(nzbn:, abn_data:)
  @client.put("/entities/#{nzbn}/australian-business-number", abn_data)
end

#update_status(nzbn:, status:) ⇒ Hash

Update entity status

Parameters:

  • nzbn (String)

    13-digit NZBN

  • status (Hash)

    Status update payload

Returns:

  • (Hash)

    Updated status



105
106
107
# File 'lib/nzbn/api/entities.rb', line 105

def update_status(nzbn:, status:)
  @client.post("/entities/#{nzbn}/entity-statuses", status)
end