Class: Dscf::Marketplace::Supplier
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Dscf::Marketplace::Supplier
- Includes:
- Core::ReviewableModel
- Defined in:
- app/models/dscf/marketplace/supplier.rb
Class Method Summary collapse
- .ransackable_associations(_auth_object = nil) ⇒ Object
- .ransackable_attributes(_auth_object = nil) ⇒ Object
Instance Method Summary collapse
- #approve!(reviewer, reason = nil) ⇒ Object
- #document_urls ⇒ Object
- #modify!(reviewer, reason) ⇒ Object
- #reject!(reviewer, reason) ⇒ Object
- #review_status(context = :default) ⇒ Object
Class Method Details
.ransackable_associations(_auth_object = nil) ⇒ Object
35 36 37 |
# File 'app/models/dscf/marketplace/supplier.rb', line 35 def self.ransackable_associations(_auth_object = nil) %w[business supplier_products addresses reviews] end |
.ransackable_attributes(_auth_object = nil) ⇒ Object
31 32 33 |
# File 'app/models/dscf/marketplace/supplier.rb', line 31 def self.ransackable_attributes(_auth_object = nil) %w[id name code address contact_phone business_type business_id created_at updated_at] end |
Instance Method Details
#approve!(reviewer, reason = nil) ⇒ Object
39 40 41 42 43 44 45 46 47 48 |
# File 'app/models/dscf/marketplace/supplier.rb', line 39 def approve!(reviewer, reason = nil) Dscf::Core::Review.create!( reviewable: self, context: :default, status: "approved", reviewed_by: reviewer, reviewed_at: Time.current, feedback: reason.present? ? {reason: reason} : nil ) end |
#document_urls ⇒ Object
80 81 82 83 84 85 86 |
# File 'app/models/dscf/marketplace/supplier.rb', line 80 def document_urls return [] unless documents.attached? documents.map do |doc| Rails.application.routes.url_helpers.rails_blob_url(doc, only_path: true) end end |
#modify!(reviewer, reason) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'app/models/dscf/marketplace/supplier.rb', line 63 def modify!(reviewer, reason) raise ArgumentError, "Reason is required for modification request" if reason.blank? Dscf::Core::Review.create!( reviewable: self, context: :default, status: "modify", reviewed_by: reviewer, reviewed_at: Time.current, feedback: {reason: reason} ) end |
#reject!(reviewer, reason) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'app/models/dscf/marketplace/supplier.rb', line 50 def reject!(reviewer, reason) raise ArgumentError, "Reason is required for rejection" if reason.blank? Dscf::Core::Review.create!( reviewable: self, context: :default, status: "rejected", reviewed_by: reviewer, reviewed_at: Time.current, feedback: {reason: reason} ) end |
#review_status(context = :default) ⇒ Object
76 77 78 |
# File 'app/models/dscf/marketplace/supplier.rb', line 76 def review_status(context = :default) current_status_for(context) end |