dscf-marketplace 0.2.0 → 0.2.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: df198307c66d8356b9c6087b33670c4658047882587a996d835cd993688f1928
4
- data.tar.gz: 5e020f16c458e74f374462d732c6fe746e5cd122489b4b3c5bff026a9845bd1b
3
+ metadata.gz: b03c9932cc3e31e46ea8ac2689f410b4f78b0cd950340a780b52e67abba8693c
4
+ data.tar.gz: cef9643cb87044521d76d31f930affdeb899cc35a7ab67f9f129b346fd05dfdf
5
5
  SHA512:
6
- metadata.gz: 5a504501c9c8235f1a634e8f0b62c527c1383c87fa36f08c79e2f89e22c4ced206b63bbc80330eb11a44e141dea08ebae506a97f2dcb565ad4dbd7ab58544405
7
- data.tar.gz: df8f9d49b2d9a47cdf68a87e12d07497d8ccffa08a5ee9678982ba5fbc468924a24245f844dfa8a1976f6cda468f91b022cd367a9ef573cbcda7a1eb19d242b6
6
+ metadata.gz: cd00154351d1e038a1f375c2016db715d75ddb8808f8a1e30cebb234eb1f25f4dbaa160bdd8446b897a8542a08f064bee63b89e981dc36b05bd589b2638c4533
7
+ data.tar.gz: c0f0e1b6c4fb9f5dcc8f1bd442058fc9494f0366819e0561ef228141755e3870217ff8512052894857655c55657114c395dd69aa5e84d77f6163bbd42db01395
@@ -0,0 +1,58 @@
1
+ module Dscf
2
+ module Marketplace
3
+ class BusinessesController < ApplicationController
4
+ include Dscf::Core::Common
5
+
6
+ def has_business
7
+ has_business = current_user&.businesses&.exists? || false
8
+ render_success("business.success.has_business_check", data: {has_business: has_business})
9
+ end
10
+
11
+ def create
12
+ business = @clazz.new(model_params.except(:business_license))
13
+ if business.save
14
+ # Add document upload after save
15
+ if params[:business][:business_license].present?
16
+ document = Dscf::Core::Document.new(
17
+ documentable: business,
18
+ document_type: :business_license
19
+ )
20
+ document.file.attach(params[:business][:business_license])
21
+ document.save!
22
+ end
23
+
24
+ business = @clazz.includes(eager_loaded_associations).find(business.id) if eager_loaded_associations.present?
25
+ includes = serializer_includes_for_action(:create)
26
+ options = {include: includes} if includes.present?
27
+ render_success(data: business, serializer_options: options, status: :created)
28
+ else
29
+ render_error(errors: business.errors.full_messages[0], status: :unprocessable_entity)
30
+ end
31
+ rescue => e
32
+ render_error(error: e.message)
33
+ end
34
+
35
+ private
36
+
37
+ def model_params
38
+ params.require(:business).permit(
39
+ :name, :description, :contact_email, :contact_phone, :tin_number,
40
+ :business_type_id, :user_id, business_license: :file
41
+ )
42
+ end
43
+
44
+ def eager_loaded_associations
45
+ [ :business_type, :user, :documents ]
46
+ end
47
+
48
+ def default_serializer_includes
49
+ {
50
+ index: [ :business_type, :user, :documents ],
51
+ show: [ :business_type, :user, :documents ],
52
+ create: [ :business_type, :user, :documents ],
53
+ update: [ :business_type, :user, :documents ]
54
+ }
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,12 @@
1
+ module Dscf
2
+ module Marketplace
3
+ class BusinessSerializer < ActiveModel::Serializer
4
+ attributes :id, :name, :description, :contact_email, :contact_phone,
5
+ :tin_number, :created_at, :updated_at
6
+
7
+ belongs_to :business_type
8
+ belongs_to :user
9
+ has_many :documents
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,7 @@
1
+ module Dscf
2
+ module Marketplace
3
+ class DocumentSerializer < ActiveModel::Serializer
4
+ attributes :id, :document_type, :file_url, :is_verified, :verified_at, :created_at, :updated_at
5
+ end
6
+ end
7
+ end
@@ -241,6 +241,18 @@ en:
241
241
  update: "Failed to update delivery vehicle"
242
242
  destroy: "Failed to delete delivery vehicle"
243
243
 
244
+ # Authentication
245
+ auth:
246
+ success:
247
+ otp_sent: "OTP sent successfully"
248
+ errors:
249
+ invalid_fin: "Invalid FIN number"
250
+
251
+ # Business
252
+ business:
253
+ success:
254
+ has_business_check: "Business check completed successfully"
255
+
244
256
  # Global fallback messages
245
257
  operations:
246
258
  success:
data/config/routes.rb CHANGED
@@ -16,6 +16,12 @@ Dscf::Marketplace::Engine.routes.draw do
16
16
 
17
17
  resources :unit_conversions
18
18
 
19
+ resources :businesses do
20
+ collection do
21
+ get "has_business"
22
+ end
23
+ end
24
+
19
25
  # Trading Models
20
26
  resources :supplier_products do
21
27
  resources :listings, only: [ :index ]
@@ -1,5 +1,5 @@
1
1
  module Dscf
2
2
  module Marketplace
3
- VERSION = "0.2.0".freeze
3
+ VERSION = "0.2.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.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Asrat
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-09-01 00:00:00.000000000 Z
10
+ date: 2025-09-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rails
@@ -417,6 +417,7 @@ 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
420
421
  - app/controllers/dscf/marketplace/categories_controller.rb
421
422
  - app/controllers/dscf/marketplace/delivery_order_items_controller.rb
422
423
  - app/controllers/dscf/marketplace/delivery_orders_controller.rb
@@ -450,10 +451,12 @@ files:
450
451
  - app/models/dscf/marketplace/supplier_product.rb
451
452
  - app/models/dscf/marketplace/unit.rb
452
453
  - app/models/dscf/marketplace/unit_conversion.rb
454
+ - app/serializers/dscf/marketplace/business_serializer.rb
453
455
  - app/serializers/dscf/marketplace/category_serializer.rb
454
456
  - app/serializers/dscf/marketplace/delivery_order_item_serializer.rb
455
457
  - app/serializers/dscf/marketplace/delivery_order_serializer.rb
456
458
  - app/serializers/dscf/marketplace/delivery_vehicle_serializer.rb
459
+ - app/serializers/dscf/marketplace/document_serializer.rb
457
460
  - app/serializers/dscf/marketplace/listing_serializer.rb
458
461
  - app/serializers/dscf/marketplace/order_item_serializer.rb
459
462
  - app/serializers/dscf/marketplace/order_serializer.rb