Class: Api::ReviewsIo::ReviewProxy
- Inherits:
-
Object
- Object
- Api::ReviewsIo::ReviewProxy
- Defined in:
- app/services/api/reviews_io/reviews_fetcher.rb
Overview
Lightweight proxy object that mimics Review model for display purposes
Instance Attribute Summary collapse
-
#created_at ⇒ Object
readonly
Returns the value of attribute created_at.
-
#full_review ⇒ Object
readonly
Returns the value of attribute full_review.
-
#headline_review ⇒ Object
readonly
Returns the value of attribute headline_review.
-
#reviewer_city ⇒ Object
readonly
Returns the value of attribute reviewer_city.
-
#reviewer_name ⇒ Object
readonly
Returns the value of attribute reviewer_name.
-
#reviewer_state ⇒ Object
readonly
Returns the value of attribute reviewer_state.
-
#star_rating_level ⇒ Object
readonly
Returns the value of attribute star_rating_level.
-
#updated_at ⇒ Object
readonly
Returns the value of attribute updated_at.
Instance Method Summary collapse
-
#digital_assets ⇒ Object
Reviews.io reviews don't have associated digital assets in our DB.
-
#id ⇒ Object
Reviews from Reviews.io don't have database IDs.
-
#initialize(headline:, full_review:, reviewer_name:, reviewer_city:, reviewer_state:, star_rating_level:, created_at:, updated_at:) ⇒ ReviewProxy
constructor
A new instance of ReviewProxy.
-
#is_public ⇒ Object
Reviews.io reviews are public by default.
-
#items ⇒ Object
Reviews.io reviews don't have associated items.
-
#obfuscated_reviewer_name ⇒ Object
Return obfuscated name for privacy.
-
#order ⇒ Object
Reviews.io reviews don't have associated orders.
-
#product_line ⇒ Object
Reviews.io reviews don't have associated product lines.
-
#schema_dot_org_structure ⇒ Object
Schema.org structure for reviews.
-
#support_case ⇒ Object
Reviews.io reviews don't have associated support cases.
-
#wy_comment ⇒ Object
Reviews.io reviews don't have WarmlyYours comments.
Constructor Details
#initialize(headline:, full_review:, reviewer_name:, reviewer_city:, reviewer_state:, star_rating_level:, created_at:, updated_at:) ⇒ ReviewProxy
Returns a new instance of ReviewProxy.
306 307 308 309 310 311 312 313 314 315 316 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 306 def initialize(headline:, full_review:, reviewer_name:, reviewer_city:, reviewer_state:, star_rating_level:, created_at:, updated_at:) @headline_review = headline @full_review = full_review @reviewer_name = reviewer_name @reviewer_city = reviewer_city @reviewer_state = reviewer_state @star_rating_level = @created_at = created_at @updated_at = updated_at end |
Instance Attribute Details
#created_at ⇒ Object (readonly)
Returns the value of attribute created_at.
303 304 305 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 303 def created_at @created_at end |
#full_review ⇒ Object (readonly)
Returns the value of attribute full_review.
303 304 305 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 303 def full_review @full_review end |
#headline_review ⇒ Object (readonly)
Returns the value of attribute headline_review.
303 304 305 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 303 def headline_review @headline_review end |
#reviewer_city ⇒ Object (readonly)
Returns the value of attribute reviewer_city.
303 304 305 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 303 def reviewer_city @reviewer_city end |
#reviewer_name ⇒ Object (readonly)
Returns the value of attribute reviewer_name.
303 304 305 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 303 def reviewer_name @reviewer_name end |
#reviewer_state ⇒ Object (readonly)
Returns the value of attribute reviewer_state.
303 304 305 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 303 def reviewer_state @reviewer_state end |
#star_rating_level ⇒ Object (readonly)
Returns the value of attribute star_rating_level.
303 304 305 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 303 def @star_rating_level end |
#updated_at ⇒ Object (readonly)
Returns the value of attribute updated_at.
303 304 305 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 303 def updated_at @updated_at end |
Instance Method Details
#digital_assets ⇒ Object
Reviews.io reviews don't have associated digital assets in our DB
329 330 331 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 329 def digital_assets [] end |
#id ⇒ Object
Reviews from Reviews.io don't have database IDs
319 320 321 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 319 def id nil end |
#is_public ⇒ Object
Reviews.io reviews are public by default
324 325 326 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 324 def is_public true end |
#items ⇒ Object
Reviews.io reviews don't have associated items
354 355 356 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 354 def items [] end |
#obfuscated_reviewer_name ⇒ Object
Return obfuscated name for privacy
359 360 361 362 363 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 359 def return nil if reviewer_name.blank? PersonNameParser.new(reviewer_name). end |
#order ⇒ Object
Reviews.io reviews don't have associated orders
339 340 341 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 339 def order nil end |
#product_line ⇒ Object
Reviews.io reviews don't have associated product lines
349 350 351 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 349 def product_line nil end |
#schema_dot_org_structure ⇒ Object
Schema.org structure for reviews
366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 366 def schema_dot_org_structure SchemaDotOrg::Review.new( name: headline_review&.squish, author: SchemaDotOrg::Person.new( name: , address: ( if reviewer_city.present? || reviewer_state.present? SchemaDotOrg::PostalAddress.new( addressLocality: reviewer_city.presence, addressRegion: reviewer_state.presence ) end ) ), reviewBody: full_review&.squish, reviewRating: SchemaDotOrg::Rating.new( bestRating: 5, worstRating: 1, ratingValue: .to_i ), datePublished: created_at.to_date ) end |
#support_case ⇒ Object
Reviews.io reviews don't have associated support cases
344 345 346 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 344 def support_case nil end |
#wy_comment ⇒ Object
Reviews.io reviews don't have WarmlyYours comments
334 335 336 |
# File 'app/services/api/reviews_io/reviews_fetcher.rb', line 334 def wy_comment nil end |