Class: MessagingLog
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- MessagingLog
- Defined in:
- app/models/messaging_log.rb
Overview
== Schema Information
Table name: messaging_logs
Database name: primary
id :integer not null, primary key
category :string not null
message :jsonb
resource_type :string
created_at :datetime
resource_id :integer
Indexes
index_messaging_logs_on_category (category)
index_messaging_logs_on_created_at (created_at) USING brin
index_messaging_logs_on_resource_type (resource_type)
rsrc_id_rsrc_type (resource_id,resource_type)
Constant Summary
Constants included from Models::Schedulable
Models::Schedulable::SIMPLE_FORM_OPTIONS
Instance Attribute Summary collapse
-
#category ⇒ String
Log category, currently only
shipping_rate_request.
Belongs to collapse
Class Method Summary collapse
-
.last_shipping_rate_message_error(rel) ⇒ String?
Pass a scoped relation, e.g.
-
.most_recent_first ⇒ ActiveRecord::Relation<MessagingLog>
A relation of MessagingLogs that are most recent first.
-
.non_ok ⇒ ActiveRecord::Relation<MessagingLog>
A relation of MessagingLogs that are non ok.
-
.shipping_rate_requests ⇒ ActiveRecord::Relation<MessagingLog>
A relation of MessagingLogs that are shipping rate requests.
-
.with_message ⇒ ActiveRecord::Relation<MessagingLog>
A relation of MessagingLogs that are with message.
Instance Method Summary collapse
Methods inherited from ApplicationRecord
ransackable_associations, ransackable_attributes, ransackable_scopes, ransortable_attributes, #to_relation
Methods included from Models::Schedulable
Methods included from Models::AfterCommittable
Methods included from Models::EventPublishable
Instance Attribute Details
#category ⇒ String
Returns Log category, currently only shipping_rate_request.
29 |
# File 'app/models/messaging_log.rb', line 29 validates :category, presence: true, inclusion: { in: ['shipping_rate_request'] } |
Class Method Details
.last_shipping_rate_message_error(rel) ⇒ String?
Pass a scoped relation, e.g. quote.messaging_logs
47 48 49 50 51 52 |
# File 'app/models/messaging_log.rb', line 47 def self.(rel) ml = rel.shipping_rate_requests.most_recent_first.first if ml && (err_msgs = [ml.].flatten.compact.filter_map { |m| m['message'].presence }).present? err_msgs.join('. ')[0..255] end end |
.most_recent_first ⇒ ActiveRecord::Relation<MessagingLog>
A relation of MessagingLogs that are most recent first. Active Record Scope
34 |
# File 'app/models/messaging_log.rb', line 34 scope :most_recent_first, -> { order(:id).reverse_order } |
.non_ok ⇒ ActiveRecord::Relation<MessagingLog>
A relation of MessagingLogs that are non ok. Active Record Scope
32 |
# File 'app/models/messaging_log.rb', line 32 scope :non_ok, -> { where("message ->> 'code' <> 'ok'") } |
.shipping_rate_requests ⇒ ActiveRecord::Relation<MessagingLog>
A relation of MessagingLogs that are shipping rate requests. Active Record Scope
31 |
# File 'app/models/messaging_log.rb', line 31 scope :shipping_rate_requests, -> { where(category: 'shipping_rate_request') } |
.with_message ⇒ ActiveRecord::Relation<MessagingLog>
A relation of MessagingLogs that are with message. Active Record Scope
33 |
# File 'app/models/messaging_log.rb', line 33 scope :with_message, -> { where("message ->> 'message' <> ''") } |
Instance Method Details
#full_message ⇒ String?
37 38 39 40 41 |
# File 'app/models/messaging_log.rb', line 37 def [].flatten.pluck('message').join('. ') rescue StandardError nil end |
#resource ⇒ ActiveRecord::Base
23 |
# File 'app/models/messaging_log.rb', line 23 belongs_to :resource, polymorphic: true, optional: true |