Class: Usps::Imis::Panel::BasePanel

Inherits:
Object
  • Object
show all
Defined in:
lib/usps/imis/panel/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/panel/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/panel/base_panel.rb', line 11

def api
  @api
end

Instance Method Details

#create(data) ⇒ Object

Create a new object in the Panel

Parameters:

  • data (Hash)

    The record data for the desired object



30
31
32
# File 'lib/usps/imis/panel/base_panel.rb', line 30

def create(data)
  api.on(business_object).post(payload(data))
end

#destroy(ordinal) ⇒ Object

Remove a specific object from the Panel

Parameters:

  • ordinal (Integer)

    The ordinal identifier for the desired object



47
48
49
# File 'lib/usps/imis/panel/base_panel.rb', line 47

def destroy(ordinal)
  api.on(business_object, ordinal:).delete
end

#get(ordinal) ⇒ Object

Get a specific object from the Panel

Parameters:

  • ordinal (Integer)

    The ordinal identifier for the desired object



22
23
24
# File 'lib/usps/imis/panel/base_panel.rb', line 22

def get(ordinal)
  api.on(business_object, ordinal:).get
end

#update(data) ⇒ Object

Update an existing object in the Panel

Parameters:

  • data (Hash)

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



39
40
41
# File 'lib/usps/imis/panel/base_panel.rb', line 39

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