Class: Dscf::Marketplace::ProductInclusionRequest
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Dscf::Marketplace::ProductInclusionRequest
- Defined in:
- app/models/dscf/marketplace/product_inclusion_request.rb
Class Method Summary collapse
- .ransackable_associations(_auth_object = nil) ⇒ Object
- .ransackable_attributes(_auth_object = nil) ⇒ Object
Instance Method Summary collapse
- #approve!(reviewer, comment = nil) ⇒ Object
- #decline!(reviewer, comment) ⇒ Object
- #modify!(reviewer, comment) ⇒ Object
Class Method Details
.ransackable_associations(_auth_object = nil) ⇒ Object
23 24 25 |
# File 'app/models/dscf/marketplace/product_inclusion_request.rb', line 23 def self.ransackable_associations(_auth_object = nil) %w[supplier requested_by reviewer product_images_attachments product_images_blobs] end |
.ransackable_attributes(_auth_object = nil) ⇒ Object
18 19 20 21 |
# File 'app/models/dscf/marketplace/product_inclusion_request.rb', line 18 def self.ransackable_attributes(_auth_object = nil) %w[id supplier_id product_name product_description unit_of_measure status requested_by_id reviewer_id review_comment reviewed_at created_at updated_at] end |
Instance Method Details
#approve!(reviewer, comment = nil) ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'app/models/dscf/marketplace/product_inclusion_request.rb', line 27 def approve!(reviewer, comment = nil) raise "Cannot approve a request that is #{status}" unless pending? update!( reviewer: reviewer, reviewed_at: Time.current, review_comment: comment, status: :approved ) end |
#decline!(reviewer, comment) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 |
# File 'app/models/dscf/marketplace/product_inclusion_request.rb', line 50 def decline!(reviewer, comment) raise "Cannot decline a request that is #{status}" unless pending? raise "Comment is required for decline" if comment.blank? update!( reviewer: reviewer, reviewed_at: Time.current, review_comment: comment, status: :declined ) end |
#modify!(reviewer, comment) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 |
# File 'app/models/dscf/marketplace/product_inclusion_request.rb', line 38 def modify!(reviewer, comment) raise "Cannot modify a request that is #{status}" unless pending? raise "Comment is required for modification" if comment.blank? update!( reviewer: reviewer, reviewed_at: Time.current, review_comment: comment, status: :modified ) end |