dscf-marketplace 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0582ea15ed7f2ed54a2de719fb3ad10fc370ba4f0970f8f4eddce28fcaeb691e'
4
- data.tar.gz: 613ed7646eba81daace3b5fe0e77fad4eab6eaff70e2213b2650526482b94b5c
3
+ metadata.gz: a36cea2c52f86ddd9e201a684e5392883e7e9ea75b9f8a51de3ee205f9868883
4
+ data.tar.gz: 79743b73e332628ca62d6dcb139c8340f6ffebd681a81a0e158b29afadee7185
5
5
  SHA512:
6
- metadata.gz: 7e42ed4742f2fd0e28d1e57bea40e74c6994c21e90977383818abe83feb26e8e94ee69aa9d9851371570c7f1bc9c05b9cd28290aa5036b7e2b1f622a4f94475d
7
- data.tar.gz: f32221713776581a14b6a98ca6459dec58fb4e27e020c0f49709191b7ace5be5f5d515a712e6c9ce01b14f48a704be46f935f53ded5d049e1502490faddeb3c2
6
+ metadata.gz: a6efaf45a41ce405b3f433b1b475ea75e362abaa4eae679b66e7087a1bdb0856ce8f8f1f516deeabdf9a8138ea48a831a102cdd5eaaca2290725f5c81ab407d5
7
+ data.tar.gz: 9dc8436d4ff38cad70ae33fdea699deb8af22aaac6263d47986995d14bbacb98ca6a247b5e6f4c4c01fa2da1d6a5722f6424a639468dad3c013ab9816246eaae
@@ -40,11 +40,16 @@ module Dscf
40
40
  businesses = service.my_businesses(params)
41
41
 
42
42
  options = {
43
- include: default_serializer_includes[:index] || [],
43
+ include: [ :business_type, :user, :documents, {reviews: {reviewed_by: :user_profile}} ],
44
44
  meta: {resource_type: "my_businesses"}
45
45
  }
46
46
 
47
- render_success("businesses.success.index", data: businesses, serializer_options: options)
47
+ # Manually serialize to ensure reviews are included
48
+ serialized = businesses.map do |business|
49
+ BusinessSerializer.new(business, options).as_json
50
+ end
51
+
52
+ render_success(data: serialized, meta: {resource_type: "my_businesses"})
48
53
  end
49
54
 
50
55
  private
@@ -90,20 +95,6 @@ module Dscf
90
95
  def allowed_order_columns
91
96
  %w[id name description contact_email contact_phone tin_number created_at updated_at]
92
97
  end
93
-
94
- def render_success(message = nil, data: nil, serializer_options: {}, status: :ok)
95
- # Ensure reviews are included in serializer options for business-related responses
96
- unless serializer_options[:include]&.any? { |inc| inc.is_a?(Hash) && inc.key?(:reviews) }
97
- if action_name == "index" || action_name == "my_businesses"
98
- includes = default_serializer_includes[:index] || []
99
- serializer_options = serializer_options.merge(include: includes)
100
- elsif action_name == "show"
101
- includes = default_serializer_includes[:show] || []
102
- serializer_options = serializer_options.merge(include: includes)
103
- end
104
- end
105
- super
106
- end
107
98
  end
108
99
  end
109
100
  end
@@ -7,8 +7,11 @@ module Dscf
7
7
  belongs_to :business_type
8
8
  belongs_to :user
9
9
  has_many :documents
10
+ has_many :reviews, serializer: ReviewSerializer
10
11
 
11
- has_many :reviews, serializer: Dscf::Core::ReviewSerializer
12
+ def reviews
13
+ object.reviews.includes(reviewed_by: :user_profile)
14
+ end
12
15
  end
13
16
  end
14
17
  end
@@ -0,0 +1,13 @@
1
+ module Dscf
2
+ module Marketplace
3
+ class ReviewSerializer < ActiveModel::Serializer
4
+ attributes :id, :context, :status, :feedback, :reviewed_at, :created_at, :updated_at
5
+
6
+ attribute :reviewed_by do
7
+ if object.reviewed_by
8
+ UserSerializer.new(object.reviewed_by).as_json
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -28,7 +28,7 @@ module Dscf
28
28
  end
29
29
 
30
30
  def my_businesses(params = {})
31
- @current_user.businesses.includes(:business_type, :user, :documents)
31
+ @current_user.businesses.includes(:business_type, :user, :documents, reviews: {reviewed_by: :user_profile})
32
32
  end
33
33
 
34
34
  def my_listings(params = {})
@@ -1,5 +1,5 @@
1
1
  module Dscf
2
2
  module Marketplace
3
- VERSION = "0.5.2".freeze
3
+ VERSION = "0.5.3".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dscf-marketplace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Asrat
@@ -464,6 +464,7 @@ files:
464
464
  - app/serializers/dscf/marketplace/quotation_item_serializer.rb
465
465
  - app/serializers/dscf/marketplace/quotation_serializer.rb
466
466
  - app/serializers/dscf/marketplace/request_for_quotation_serializer.rb
467
+ - app/serializers/dscf/marketplace/review_serializer.rb
467
468
  - app/serializers/dscf/marketplace/rfq_item_serializer.rb
468
469
  - app/serializers/dscf/marketplace/supplier_product_serializer.rb
469
470
  - app/serializers/dscf/marketplace/unit_conversion_serializer.rb