module PIM::Services::ReviewService
Constants
- REVIEW_STATUS
Public Instance Methods
# File services.rb, line 3975 def get_item_review_as_reviewer primary_key __review_service.getReviewerItemReview(primary_key) end
# File services.rb, line 3979 def get_item_review_as_supplier primary_key, reviewer __review_service.getSupplierItemReview(primary_key, reviewer) end
# File services.rb, line 4086 def item_review_map_for_java item_review PIM.javaify(PIM::Utils.as_json(item_review)) end
# File services.rb, line 4082 def normalize_item_review item_review __convert(item_review, to: ItemReview, force: true) end
Save a single supplier-side review for the item specified in item_review.
item_review must be a PIM::Services::ReviewService::ItemReview, or a Hash with the corresponding keys. The following members must be set:
-
primary_key(MANDATORY) -
channel_id(MANDATORY) -
reviewer(MANDATORY) — channel sub-destination / GLN string -
review_status(MANDATORY) — any of RECEIVED, APPROVED, REJECTED, REVIEWED
Optional members include comment, generated_comment, review_errors, review_warnings, review_remarks, custom_values and date.
# File services.rb, line 4038 def save_supplier_item_review item_review review = normalize_item_review(item_review) validate_supplier_item_review!(review, require_primary_key: true) __review_service.saveSupplierItemReviewFromRuby(item_review_map_for_java(review)) end
Save the same supplier-side review for each of the specified items.
channel_id, reviewer and review_status must be set in item_review. items are the primary keys of the items to review (one or more strings).
# File services.rb, line 4052 def save_supplier_item_reviews item_review, *items review = normalize_item_review(item_review) validate_supplier_item_review!(review, require_primary_key: false) primary_keys = PIM.javaify(items.flatten.compact) raise "Item review 'primaryKeys' must not be empty" if primary_keys.empty? __review_service.saveSupplierItemReviewsFromRuby(item_review_map_for_java(review), primary_keys) end
Save and send a review containing data from the specified review hash.
The hash can include the following keys:
-
primary_key: Primary key of the item the review is for (MANDATORY!)
-
review_status: Status for the review, any of RECEIVED, APPROVED, REJECTED, REVIEWED (MANDATORY!)
-
comment: The review’s comment (OPTIONAL, not set if nil)
-
generated_comment: The review’s “generated comment”, i.e. it can not be overwritten by a user (OPTIONAL, not set if nil)
-
custom_values: An optional Hash containing arbitrary values which can be used e.g. in
XMLtransformations (OPTIONAL, not set if nil)
NOTE: If NO ‘generated_comment’ is provided, the ‘comment’ value is used as ‘generated_comment’ instead!
# File services.rb, line 3996 def send_review review_hash comment = PIM.get_value(review_hash, :comment) generated_comment = PIM.get_value(review_hash, :generated_comment, :generatedComment) # Legacy behavior: If only a 'comment' was specified, use that as 'generated_comment' instead if generated_comment.nil? generated_comment = comment comment = nil end primary_key = PIM.get_value(review_hash, :primary_key, :primaryKey) raise "Item review 'primaryKey' must not be empty" if PIM.is_empty?(primary_key) review_status = PIM.get_value(review_hash, :review_status, :reviewStatus) raise "Item review 'review_status' must not be empty" if PIM.is_empty?(review_status) review_status = review_status.to_s raise "Item review review status '#{review_status}' for primary key '#{primary_key}' must by any of #{REVIEW_STATUS.join(', ')}" unless REVIEW_STATUS.include?(review_status) __review_service.saveReviewerItemReviewFromRuby( primary_key, review_status, comment, generated_comment, PIM.get_value(review_hash, :custom_values, :customValues) ) end
# File services.rb, line 4090 def validate_supplier_item_review! item_review, require_primary_key: if require_primary_key raise "Item review 'primaryKey' must not be empty" if PIM.is_empty?(item_review.primary_key) end