Class: MessagingLog

Inherits:
ApplicationRecord show all
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 Schedulable

Schedulable::SIMPLE_FORM_OPTIONS

Instance Attribute Summary collapse

Belongs to collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ApplicationRecord

ransackable_associations, ransackable_attributes, ransackable_scopes, ransortable_attributes, #to_relation

Methods included from Schedulable

config

Methods included from Models::AfterCommittable

#after_commit

Methods included from Models::EventPublishable

#publish_event

Instance Attribute Details

#categoryObject (readonly)



26
# File 'app/models/messaging_log.rb', line 26

validates :category, presence: true, inclusion: { in: ['shipping_rate_request'] }

Class Method Details

.last_shipping_rate_message_error(rel) ⇒ Object

Pass a scoped relation, e.g. quote.messaging_logs



40
41
42
43
44
45
# File 'app/models/messaging_log.rb', line 40

def self.last_shipping_rate_message_error(rel)
  ml = rel.shipping_rate_requests.most_recent_first.first
  if ml && (err_msgs = [ml.message].flatten.compact.filter_map { |m| m['message'].presence }).present?
    err_msgs.join('. ')[0..255]
  end
end

.most_recent_firstActiveRecord::Relation<MessagingLog>

A relation of MessagingLogs that are most recent first. Active Record Scope

Returns:

See Also:



31
# File 'app/models/messaging_log.rb', line 31

scope :most_recent_first, -> { order(:id).reverse_order }

.non_okActiveRecord::Relation<MessagingLog>

A relation of MessagingLogs that are non ok. Active Record Scope

Returns:

See Also:



29
# File 'app/models/messaging_log.rb', line 29

scope :non_ok, -> { where("message ->> 'code' <> 'ok'") }

.shipping_rate_requestsActiveRecord::Relation<MessagingLog>

A relation of MessagingLogs that are shipping rate requests. Active Record Scope

Returns:

See Also:



28
# File 'app/models/messaging_log.rb', line 28

scope :shipping_rate_requests, -> { where(category: 'shipping_rate_request') }

.with_messageActiveRecord::Relation<MessagingLog>

A relation of MessagingLogs that are with message. Active Record Scope

Returns:

See Also:



30
# File 'app/models/messaging_log.rb', line 30

scope :with_message, -> { where("message ->> 'message' <> ''") }

Instance Method Details

#full_messageObject



33
34
35
36
37
# File 'app/models/messaging_log.rb', line 33

def full_message
  [message].flatten.pluck('message').join('. ')
rescue StandardError
  nil
end

#resourceResource

Returns:

  • (Resource)

See Also:



22
# File 'app/models/messaging_log.rb', line 22

belongs_to :resource, polymorphic: true, optional: true