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.



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

def initialize(api = nil, imis_id: nil)
  @api = api || Api.new
  @api.imis_id = imis_id if imis_id
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

Instance Method Details

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

Remove a specific object from the Panel

Parameters:

  • ordinal (Integer)

    The ordinal identifier for the desired object



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

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

#get(ordinal, *fields) ⇒ Hash+ 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:

  • (Hash, Array<Hash>)

    Response data from the API



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

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

#get_field(ordinal, field) ⇒ Hash 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:

  • (Hash)

    Response data from the API



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

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

#get_fields(ordinal, *fields) ⇒ Hash 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:

  • (Hash)

    Response data from the API



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

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

#post(data) ⇒ Object Also known as: create

Create a new object in the Panel

Parameters:

  • data (Hash)

    The record data for the desired object



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

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

#put(data) ⇒ Object 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



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

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

#put_fields(ordinal, fields) ⇒ Hash 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:

  • (Hash)

    Response data from the API



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

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