Class: Usps::Imis::BusinessObject
- Inherits:
-
Object
- Object
- Usps::Imis::BusinessObject
- Includes:
- Requests
- Defined in:
- lib/usps/imis/business_object.rb
Overview
DEV
Constant Summary collapse
- API_PATH =
Endpoint for general API requests
'api'
Instance Attribute Summary collapse
-
#api ⇒ Object
readonly
The parent
Apiobject. -
#business_object_name ⇒ Object
readonly
Name of the iMIS Business Object.
-
#ordinal ⇒ Object
readonly
Ordinal to build override ID param of the URL (e.g. used for Panels).
Instance Method Summary collapse
-
#delete ⇒ true
(also: #destroy)
Remove a business object for the current member.
-
#get(*fields) ⇒ Hash+
(also: #read)
Get a business object for the current member.
-
#get_field(field) ⇒ Hash
(also: #fetch)
Get a single named field from a business object for the current member.
-
#get_fields(*fields) ⇒ Array<Hash>
(also: #fetch_all)
Get named fields from a business object for the current member.
-
#initialize(api, business_object_name, ordinal: nil) ⇒ BusinessObject
constructor
A new instance of
BusinessObject. -
#post(body) ⇒ Hash
(also: #create)
Create a business object for the current member.
-
#put(body) ⇒ Hash
(also: #update)
Update a business object for the current member.
-
#put_fields(fields) ⇒ Hash
(also: #patch)
Update only specific fields on a business object for the current member.
Constructor Details
#initialize(api, business_object_name, ordinal: nil) ⇒ BusinessObject
A new instance of BusinessObject
29 30 31 32 33 |
# File 'lib/usps/imis/business_object.rb', line 29 def initialize(api, business_object_name, ordinal: nil) @api = api @business_object_name = business_object_name @ordinal = ordinal end |
Instance Attribute Details
#api ⇒ Object (readonly)
The parent Api object
17 18 19 |
# File 'lib/usps/imis/business_object.rb', line 17 def api @api end |
#business_object_name ⇒ Object (readonly)
Name of the iMIS Business Object
21 22 23 |
# File 'lib/usps/imis/business_object.rb', line 21 def business_object_name @business_object_name end |
#ordinal ⇒ Object (readonly)
Ordinal to build override ID param of the URL (e.g. used for Panels)
25 26 27 |
# File 'lib/usps/imis/business_object.rb', line 25 def ordinal @ordinal end |
Instance Method Details
#delete ⇒ true Also known as: destroy
Remove a business object for the current member
100 |
# File 'lib/usps/imis/business_object.rb', line 100 def delete = submit(uri, (Net::HTTP::Delete.new(uri))).body == '' # rubocop:disable Naming/PredicateMethod |
#get(*fields) ⇒ Hash+ Also known as: read
Get a business object for the current member
If fields is provided, will return only those field values
43 |
# File 'lib/usps/imis/business_object.rb', line 43 def get(*fields) = fields.any? ? get_fields(*fields) : raw_object |
#get_field(field) ⇒ Hash Also known as: fetch
Get a single named field from a business object for the current member
52 |
# File 'lib/usps/imis/business_object.rb', line 52 def get_field(field) = extract_field_value(raw_object_values, field) |
#get_fields(*fields) ⇒ Array<Hash> Also known as: fetch_all
Get named fields from a business object for the current member
61 62 63 64 |
# File 'lib/usps/imis/business_object.rb', line 61 def get_fields(*fields) values = raw_object_values fields.map { extract_field_value(values, it) } end |
#post(body) ⇒ Hash Also known as: create
Create a business object for the current member
93 |
# File 'lib/usps/imis/business_object.rb', line 93 def post(body) = put_object(Net::HTTP::Post.new(uri(id: '')), body) |
#put(body) ⇒ Hash Also known as: update
Update a business object for the current member
Any properties not included will be left unmodified
84 |
# File 'lib/usps/imis/business_object.rb', line 84 def put(body) = put_object(Net::HTTP::Put.new(uri), body) |
#put_fields(fields) ⇒ Hash Also known as: patch
Update only specific fields on a business object for the current member
73 |
# File 'lib/usps/imis/business_object.rb', line 73 def put_fields(fields) = put(filter_fields(fields)) |