dscf-marketplace 0.6.0 → 0.6.2

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: 94ef418a66a854b9de0a65de1f6a80c74df2bd68405f8f740b2932fcfcafd0d9
4
- data.tar.gz: d2f34207221866d38ab5731c747020ef5a872d9629bf917b253a0ac8bc6ba052
3
+ metadata.gz: bfa46fc885aefb7b4b067535f283dbb08cad16dcab9af6d93efce72ea1e9603f
4
+ data.tar.gz: 49af3e8d2cabaaa5df1b6e86d5c6da015fbc7c2c64a66a72a3685ba990aceeae
5
5
  SHA512:
6
- metadata.gz: 5440a9b49a77d92affca53ab2de03fe1e8dc208102c06a624f81b6e0f85ca34fe834d17cdcd98ad5d39e6d425eaea4e56b0d1a7c512e47cbe12893a1df861c53
7
- data.tar.gz: 1d2b12caeab32c53195b3d72b50d193ae22a66d2b99d71cd0ae05187e5ec374baf22ed655a9e12b4b74f4bfff7299452bfd7da288d704caf5a2b4cabc2bc5f21
6
+ metadata.gz: d43a1e2332f25519099b776a4eb38b794f796cf1849045d14427c01f83f3e5cd6c40f9773e923039b0a603dd07ff9ad9f726ed95b2debe6bb7c79261cdbd6e24
7
+ data.tar.gz: 145b811fbedc48519fd7e5ce9146075f1bff70f30ec6579e1f4dff0f2733f8f9afa8184bd6e38c7b9fbe9cdec4e381cee0d052d0cc23481a534b03c6275c0620
@@ -15,7 +15,7 @@ module Dscf
15
15
  documentable: vehicle,
16
16
  document_type: :business_license
17
17
  )
18
- document.file.attach(params[:delivery_vehicle][:vehicle_license])
18
+ document.files.attach(params[:delivery_vehicle][:vehicle_license])
19
19
  document.save!
20
20
  end
21
21
 
@@ -25,7 +25,7 @@ module Dscf
25
25
  documentable: vehicle.driver,
26
26
  document_type: :drivers_license
27
27
  )
28
- driver_document.file.attach(params[:delivery_vehicle][:driver_license])
28
+ driver_document.files.attach(params[:delivery_vehicle][:driver_license])
29
29
  driver_document.save!
30
30
  end
31
31
 
@@ -53,7 +53,7 @@ module Dscf
53
53
  documentable: vehicle,
54
54
  document_type: :business_license
55
55
  )
56
- document.file.attach(params[:delivery_vehicle][:vehicle_license])
56
+ document.files.attach(params[:delivery_vehicle][:vehicle_license])
57
57
  document.save!
58
58
  end
59
59
 
@@ -67,7 +67,7 @@ module Dscf
67
67
  documentable: vehicle.driver,
68
68
  document_type: :drivers_license
69
69
  )
70
- driver_document.file.attach(params[:delivery_vehicle][:driver_license])
70
+ driver_document.files.attach(params[:delivery_vehicle][:driver_license])
71
71
  driver_document.save!
72
72
  end
73
73
 
@@ -27,10 +27,6 @@ module Dscf
27
27
  apply_filters(quotes, params)
28
28
  end
29
29
 
30
- def my_businesses(params = {})
31
- @current_user.businesses.includes(:business_type, :user, :documents, reviews: :reviewed_by)
32
- end
33
-
34
30
  def my_listings(params = {})
35
31
  listings = Dscf::Marketplace::Listing.joins(:business)
36
32
  .where(dscf_core_businesses: {user_id: @current_user.id})
@@ -6,7 +6,7 @@ module Dscf
6
6
  end
7
7
 
8
8
  def respond_to_rfq(rfq, params = {})
9
- return {success: false, errors: [ "RFQ not found or invalid" ]} unless rfq.present? && rfq.sent?
9
+ return {success: false, errors: [ "RFQ not found or invalid" ]} unless rfq.present? && (rfq.draft? || rfq.sent?)
10
10
 
11
11
  business = Dscf::Core::Business.find_by(user: @current_user)
12
12
  return {success: false, errors: [ "No business associated with user" ]} unless business.present?
data/config/routes.rb CHANGED
@@ -19,19 +19,6 @@ Dscf::Marketplace::Engine.routes.draw do
19
19
 
20
20
  resources :unit_conversions
21
21
 
22
- resources :businesses do
23
- collection do
24
- get "has_business"
25
- get "my_businesses"
26
- end
27
- member do
28
- patch :approve
29
- patch :reject
30
- patch :request_modification
31
- patch :resubmit
32
- end
33
- end
34
-
35
22
  # Trading Models
36
23
  resources :supplier_products do
37
24
  resources :listings, only: [ :index ]
@@ -20,11 +20,6 @@ module Dscf
20
20
  end
21
21
 
22
22
  require "active_storage/engine"
23
-
24
- # Extend core Business model with ReviewableModel for review workflow
25
- config.to_prepare do
26
- Dscf::Core::Business.include Dscf::Core::ReviewableModel if defined?(Dscf::Core::Business)
27
- end
28
23
  end
29
24
  end
30
25
  end
@@ -1,5 +1,5 @@
1
1
  module Dscf
2
2
  module Marketplace
3
- VERSION = "0.6.0".freeze
3
+ VERSION = "0.6.2".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dscf-marketplace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Asrat
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-10-13 00:00:00.000000000 Z
10
+ date: 2025-10-19 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rails
@@ -417,7 +417,6 @@ files:
417
417
  - MIT-LICENSE
418
418
  - Rakefile
419
419
  - app/controllers/dscf/marketplace/application_controller.rb
420
- - app/controllers/dscf/marketplace/businesses_controller.rb
421
420
  - app/controllers/dscf/marketplace/categories_controller.rb
422
421
  - app/controllers/dscf/marketplace/delivery_order_items_controller.rb
423
422
  - app/controllers/dscf/marketplace/delivery_orders_controller.rb
@@ -1,110 +0,0 @@
1
- module Dscf
2
- module Marketplace
3
- class BusinessesController < ApplicationController
4
- include Dscf::Core::Common
5
- include Dscf::Core::ReviewableController
6
-
7
- reviewable_model Dscf::Core::Business
8
-
9
- def has_business
10
- has_business = current_user&.businesses&.exists? || false
11
- render_success("business.success.has_business_check", data: {has_business: has_business})
12
- end
13
-
14
- def create
15
- business = @clazz.new(model_params.except(:business_license))
16
- if business.save
17
- # Add document upload after save
18
- if params[:business][:business_license].present?
19
- document = Dscf::Core::Document.new(
20
- documentable: business,
21
- document_type: :business_license
22
- )
23
- document.file.attach(params[:business][:business_license])
24
- document.save!
25
- end
26
-
27
- # Create pending review
28
- business.reviews.create!
29
-
30
- business = @clazz.includes(eager_loaded_associations).find(business.id) if eager_loaded_associations.present?
31
- includes = serializer_includes_for_action(:create)
32
- options = {include: includes} if includes.present?
33
- render_success(data: business, serializer_options: options, status: :created)
34
- else
35
- render_error(errors: business.errors.full_messages[0], status: :unprocessable_entity)
36
- end
37
- rescue => e
38
- render_error(error: e.message)
39
- end
40
-
41
- def my_businesses
42
- service = MyResourceService.new(current_user)
43
- businesses = service.my_businesses(params)
44
-
45
- # Ensure reviewed_by is loaded for reviews
46
- businesses.each do |business|
47
- business.reviews.each do |review|
48
- review.reviewed_by
49
- end
50
- end
51
-
52
- options = {
53
- include: [ :business_type, :user, :documents, {reviews: :reviewed_by} ],
54
- meta: {resource_type: "my_businesses"}
55
- }
56
-
57
- # Manually serialize to ensure reviews are included
58
- serialized = businesses.map do |business|
59
- Dscf::Core::BusinessSerializer.new(business, options).as_json
60
- end
61
-
62
- render_success(data: serialized, meta: {resource_type: "my_businesses"})
63
- end
64
-
65
- private
66
-
67
- def model_params
68
- params.require(:business).permit(
69
- :name, :description, :contact_email, :contact_phone, :tin_number,
70
- :business_type_id, :user_id, business_license: :file
71
- )
72
- end
73
-
74
- def eager_loaded_associations
75
- [
76
- :business_type, :user, :documents,
77
- reviews: :reviewed_by
78
- ]
79
- end
80
-
81
- def default_serializer_includes
82
- {
83
- index: [
84
- :business_type, :user, :documents,
85
- {
86
- reviews: :reviewed_by
87
- }
88
- ],
89
- show: [
90
- :business_type, :user, :documents,
91
- {
92
- reviews: :reviewed_by
93
- }
94
- ],
95
- create: [ :business_type, :user, :documents, :reviews ],
96
- update: [
97
- :business_type, :user, :documents,
98
- {
99
- reviews: :reviewed_by
100
- }
101
- ]
102
- }
103
- end
104
-
105
- def allowed_order_columns
106
- %w[id name description contact_email contact_phone tin_number created_at updated_at]
107
- end
108
- end
109
- end
110
- end