dscf-core 0.3.4 → 0.3.6

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: 411df39f071d6148439e3e9b6ad6e9b67bf6f41a303f822d37becb0fa7f6b709
4
- data.tar.gz: e8140291f06f4e6221ad9ab86920cfee9c2c978bb83deced1c32c7cae6a269c5
3
+ metadata.gz: c79b0bd46b44ace100520a0a873e5a6dce32e9f13caf6c72c5ea7a729e1db870
4
+ data.tar.gz: 6715fc56d379b5600c71a4a78cccd4991a381f9a9a5d8ab0a80d5bc78b4c468d
5
5
  SHA512:
6
- metadata.gz: 4377884adbc0f72a0055e8bba6507c37ebf576c113b2193a4cc7eae59fb900406b7ac28ebf6edb624d18fb8efdda8208ecad86aae59f17c58cf0881461ba7ff1
7
- data.tar.gz: a4269a8c6f9aaf0bd08d256b171d23d7639a3fbd1e6a2dff4b0da254fa88b48b8bbe475f88a2e66ddf929fd252ea8b3962bd573778fa8fd97feccfe3527cfceb
6
+ metadata.gz: a8b2df9c292d42b1331e30f05af007a2e45d416b4af9863fba943e329130a8705951cbf407c96fe014d0d2d4c9112abcafca38be10a47d8b24ac9e48ccdcce7e
7
+ data.tar.gz: 8268c64be459eacf7f1afa2c0f80b6b5370fcaad0d2f95f9744fde90c7e7e70add2a5f345fd70b53bf5eb1f1852f01f7261576ea623dee23308f2230c61623bc
@@ -0,0 +1,15 @@
1
+ module Dscf
2
+ module Core
3
+ module RoleAssignable
4
+ extend ActiveSupport::Concern
5
+
6
+ def assign_default_role(user)
7
+ role = Role.find_or_create_by!(code: "USER") do |r|
8
+ r.name = "User"
9
+ end
10
+
11
+ UserRole.find_or_create_by!(user: user, role: role)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,6 +1,8 @@
1
1
  module Dscf
2
2
  module Core
3
3
  class AuthController < ApplicationController
4
+ include Dscf::Core::RoleAssignable
5
+
4
6
  skip_before_action :authenticate_user, only: %i[login signup refresh]
5
7
  skip_before_action :validate_token_expiry, only: %i[login signup refresh]
6
8
  skip_before_action :validate_device_consistency, only: %i[login signup refresh]
@@ -46,6 +48,11 @@ module Dscf
46
48
  ActiveRecord::Base.transaction do
47
49
  if user.save
48
50
  assign_default_role(user)
51
+
52
+ # Optionally create marketplace records when onboarding via mobile app
53
+ create_agent_from_signup! if params[:agent].present?
54
+ create_retailer_from_signup! if params[:retailer].present?
55
+
49
56
  user_with_includes = User.includes(roles: :permissions, user_profile: {}).find(user.id)
50
57
  render_success(
51
58
  "auth.success.signup",
@@ -123,12 +130,36 @@ module Dscf
123
130
  params.permit(:refresh_token)
124
131
  end
125
132
 
126
- def assign_default_role(user)
127
- role = Role.find_or_create_by!(code: "USER") do |r|
128
- r.name = "User"
129
- end
133
+ # Creates an Agent record when included in signup request (mobile onboarding)
134
+ def create_agent_from_signup!
135
+ return unless defined?(Dscf::Marketplace::Agent)
136
+
137
+ Dscf::Marketplace::Agent.create!(
138
+ name: agent_signup_params[:name],
139
+ phone: agent_signup_params[:phone],
140
+ service_area: agent_signup_params[:service_area],
141
+ fayda_number: agent_signup_params[:fayda_number]
142
+ )
143
+ end
144
+
145
+ # Creates a Retailer record when included in signup request (mobile onboarding)
146
+ def create_retailer_from_signup!
147
+ return unless defined?(Dscf::Marketplace::Retailer)
148
+
149
+ Dscf::Marketplace::Retailer.create!(
150
+ name: retailer_signup_params[:name],
151
+ phone: retailer_signup_params[:phone],
152
+ tin_number: retailer_signup_params[:tin_number],
153
+ location: retailer_signup_params[:location]
154
+ )
155
+ end
156
+
157
+ def agent_signup_params
158
+ params.fetch(:agent, {}).permit(:name, :phone, :service_area, :fayda_number)
159
+ end
130
160
 
131
- UserRole.find_or_create_by!(user: user, role: role)
161
+ def retailer_signup_params
162
+ params.fetch(:retailer, {}).permit(:name, :phone, :tin_number, :location)
132
163
  end
133
164
  end
134
165
  end
@@ -1,5 +1,5 @@
1
1
  module Dscf
2
2
  module Core
3
- VERSION = "0.3.4".freeze
3
+ VERSION = "0.3.6".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dscf-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Asrat
@@ -434,6 +434,7 @@ files:
434
434
  - app/controllers/concerns/dscf/core/json_response.rb
435
435
  - app/controllers/concerns/dscf/core/pagination.rb
436
436
  - app/controllers/concerns/dscf/core/reviewable_controller.rb
437
+ - app/controllers/concerns/dscf/core/role_assignable.rb
437
438
  - app/controllers/concerns/dscf/core/token_authenticatable.rb
438
439
  - app/controllers/dscf/core/account_management_controller.rb
439
440
  - app/controllers/dscf/core/addresses_controller.rb