Class: Usps::Imis::Panels::BasePanel

Inherits:
Object
  • Object
show all
Defined in:
lib/usps/imis/panels/base_panel.rb

Overview

Base class for configuring Panels

Direct Known Subclasses

Education, Vsc

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api = nil, imis_id: nil) ⇒ BasePanel

Returns a new instance of BasePanel.



17
18
19
20
21
# File 'lib/usps/imis/panels/base_panel.rb', line 17

def initialize(api = nil, imis_id: nil)
  @api = api || Api.new
  @api.imis_id = imis_id if imis_id
  @logger ||= Imis.logger('Panel')
end

Instance Attribute Details

#apiObject (readonly)

The parent Api object



11
12
13
# File 'lib/usps/imis/panels/base_panel.rb', line 11

def api
  @api
end

#loggerObject (readonly)

Tagged logger



15
16
17
# File 'lib/usps/imis/panels/base_panel.rb', line 15

def logger
  @logger
end

Instance Method Details

#delete(ordinal) ⇒ true Also known as: destroy

Remove a specific object from the Panel

Parameters:

  • ordinal (Integer)

    The ordinal identifier for the desired object

Returns:

  • (true)

    Only on success response (i.e. blank string from the API)



103
# File 'lib/usps/imis/panels/base_panel.rb', line 103

def delete(ordinal) = api.on(business_object, ordinal:).delete

#get(ordinal, *fields) ⇒ Usps::Imis::Data+ Also known as: read

Get a specific object from the Panel

If fields is provided, will return only those field values

Parameters:

  • fields (String)

    Field names to return

  • ordinal (Integer)

    The ordinal identifier for the desired object

Returns:



33
# File 'lib/usps/imis/panels/base_panel.rb', line 33

def get(ordinal, *fields) = api.on(business_object, ordinal:).get(*fields)

#get_field(ordinal, field) ⇒ Object Also known as: fetch, []

Get a single named field from a Panel for the current member

Parameters:

  • ordinal (Integer)

    The ordinal identifier for the desired object

  • field (String)

    Field name to return

Returns:

  • Response data field value from the API



43
# File 'lib/usps/imis/panels/base_panel.rb', line 43

def get_field(ordinal, field) = api.on(business_object, ordinal:).get_field(field)

#get_fields(ordinal, *fields) ⇒ Array Also known as: fetch_all

Get named fields from a Panel for the current member

Parameters:

  • ordinal (Integer)

    The ordinal identifier for the desired object

  • fields (Array<String>)

    Field names to return

Returns:

  • (Array)

    Response data from the API



54
# File 'lib/usps/imis/panels/base_panel.rb', line 54

def get_fields(ordinal, *fields) = api.on(business_object, ordinal:).get_fields(*fields)

#instance_variables_to_inspectObject

Ruby 3.5 instance variable filter



108
# File 'lib/usps/imis/panels/base_panel.rb', line 108

def instance_variables_to_inspect = instance_variables - %i[@api @logger]

#post(data) ⇒ Usps::Imis::Data Also known as: create

Create a new object in the Panel

Parameters:

  • data (Hash)

    The record data for the desired object

Returns:



94
# File 'lib/usps/imis/panels/base_panel.rb', line 94

def post(data) = api.on(business_object).post(payload(data))

#put(data) ⇒ Usps::Imis::Data Also known as: update

Update an existing object in the Panel

Parameters:

  • data (Hash)

    The record data for the desired object – including the required ordinal identifier

Returns:



85
# File 'lib/usps/imis/panels/base_panel.rb', line 85

def put(data) = api.on(business_object, ordinal: data[:ordinal]).put(payload(data))

#put_field(ordinal, field, value) ⇒ Usps::Imis::Data Also known as: []=

Update a single named field on a business object for the current member

Parameters:

  • ordinal (Integer)

    The ordinal identifier for the desired object

  • field (String)

    Name of the field

  • value

    Value of the field

Returns:



65
# File 'lib/usps/imis/panels/base_panel.rb', line 65

def put_field(ordinal, field, value) = api.on(business_object, ordinal:).put_field(field, value)

#put_fields(ordinal, fields) ⇒ Usps::Imis::Data Also known as: patch

Update only specific fields on a Panel for the current member

Parameters:

  • ordinal (Integer)

    The ordinal identifier for the desired object

  • fields (Hash)

    Conforms to pattern { field_key => value }

Returns:



75
# File 'lib/usps/imis/panels/base_panel.rb', line 75

def put_fields(ordinal, fields) = api.on(business_object, ordinal:).put_fields(fields)