usman 0.2.3 → 0.2.5

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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/usman/api/v1/base_controller.rb +15 -0
  3. data/app/controllers/usman/api/v1/docs_base_controller.rb +25 -0
  4. data/app/controllers/usman/api/v1/docs_controller.rb +165 -0
  5. data/app/controllers/usman/api/v1/profile_controller.rb +60 -0
  6. data/app/controllers/usman/api/v1/registrations_controller.rb +159 -0
  7. data/app/controllers/usman/registration_devices_controller.rb +141 -0
  8. data/app/controllers/usman/registrations_controller.rb +68 -0
  9. data/app/helpers/usman/api_helper.rb +21 -36
  10. data/app/helpers/usman/authentication_helper.rb +1 -1
  11. data/app/models/device.rb +30 -3
  12. data/app/models/registration.rb +12 -3
  13. data/app/models/user.rb +54 -4
  14. data/app/services/usman/mobile_registration_service.rb +3 -5
  15. data/app/views/kuppayam/api/docs/_navigation.html.erb +43 -0
  16. data/app/views/usman/api/v1/docs/register/_neg_case_1.html.erb +46 -0
  17. data/app/views/usman/api/v1/docs/register/_neg_case_2.html.erb +39 -0
  18. data/app/views/usman/api/v1/docs/register/_neg_case_3.html.erb +47 -0
  19. data/app/views/usman/api/v1/docs/register/_pos_case_1.html.erb +65 -0
  20. data/app/views/usman/api/v1/docs/resend_otp/_neg_case_1.html.erb +30 -0
  21. data/app/views/usman/api/v1/docs/resend_otp/_pos_case_1.html.erb +31 -0
  22. data/app/views/usman/api/v1/docs/verify_otp/_neg_case_1.html.erb +34 -0
  23. data/app/views/usman/api/v1/docs/verify_otp/_neg_case_2.html.erb +39 -0
  24. data/app/views/usman/api/v1/docs/verify_otp/_neg_case_3.html.erb +33 -0
  25. data/app/views/usman/api/v1/docs/verify_otp/_pos_case_1.html.erb +35 -0
  26. data/app/views/usman/registration_devices/_form.html.erb +24 -0
  27. data/app/views/usman/registration_devices/_index.html.erb +80 -0
  28. data/app/views/usman/registration_devices/_row.html.erb +34 -0
  29. data/app/views/usman/registrations/_form.html.erb +23 -0
  30. data/app/views/usman/registrations/_index.html.erb +60 -0
  31. data/app/views/usman/registrations/_row.html.erb +24 -0
  32. data/app/views/usman/registrations/_show.html.erb +112 -0
  33. data/app/views/usman/registrations/index.html.erb +47 -0
  34. data/config/locales/usman/api.ar.yml +43 -0
  35. data/config/locales/usman/api.en.yml +43 -0
  36. data/config/locales/usman/authentication.ar.yml +14 -14
  37. data/config/locales/usman/authentication.en.yml +15 -18
  38. data/config/routes.rb +28 -9
  39. data/db/migrate/20170904080436_add_tac_accepted_at_to_devices.rb +5 -0
  40. data/db/migrate/20170905041104_add_gender_to_users.rb +6 -0
  41. data/lib/usman/version.rb +1 -1
  42. metadata +36 -15
  43. data/app/controllers/api/v1/base_controller.rb +0 -13
  44. data/app/controllers/api/v1/registrations_controller.rb +0 -115
  45. data/app/controllers/usman/docs_controller.rb +0 -41
  46. data/app/views/usman/docs/index.html.erb +0 -502
  47. data/app/views/usman/docs/register.html.erb +0 -0
  48. data/config/locales/usman/general.ar.yml +0 -5
  49. data/config/locales/usman/general.en.yml +0 -5
  50. data/config/locales/usman/mobile_registration.ar.yml +0 -26
  51. data/config/locales/usman/mobile_registration.en.yml +0 -26
@@ -1,28 +1,25 @@
1
1
  en:
2
2
  authentication:
3
- login_required:
4
- heading: "Login Required / Session Expired"
5
- message: "You need to login to perform this action."
6
3
  permission_denied:
7
- heading: "Permission Denied"
8
- message: "You don't have permission to perform this action"
4
+ heading: "Permission Denied"
5
+ message: "You don't have permission to perform this action"
9
6
  session_expired:
10
- heading: "Session Expired"
11
- message: "Your session has been expired. Please sign in again"
7
+ heading: "Session Expired"
8
+ message: "Your session has been expired. Please sign in again"
12
9
  invalid_login:
13
- heading: "Invalid Login"
14
- message: "Invalid Username/Email or password."
10
+ heading: "Invalid Login"
11
+ message: "Invalid Username/Email or password."
15
12
  user_is_pending:
16
- heading: "Account Pending"
17
- message: "Your account is not yet approved, please contact administrator to activate your account"
13
+ heading: "Account Pending"
14
+ message: "Your account is not yet approved, please contact administrator to activate your account"
18
15
  user_is_suspended:
19
- heading: "Account Suspended"
20
- message: "Your account is suspended, please contact administrator"
16
+ heading: "Account Suspended"
17
+ message: "Your account is suspended, please contact administrator"
21
18
  logged_in:
22
- heading: "Signed In"
23
- message: "You have successfully signed in"
19
+ heading: "Signed In"
20
+ message: "You have successfully signed in"
24
21
  logged_out:
25
- heading: "Signed Out"
26
- message: "You have successfully signed out"
27
- masquerade: "You have successfully logged in as - %{user}"
22
+ heading: "Signed Out"
23
+ message: "You have successfully signed out"
24
+ masquerade: "لقد سجلت الدخول بنجاح - %{user}"
28
25
  sign_in_back: "You have successfully signed in back as %{user}"
data/config/routes.rb CHANGED
@@ -14,6 +14,10 @@ Usman::Engine.routes.draw do
14
14
  get '/my_account', to: "my_account#index", as: :my_account
15
15
  get '/dashboard/usman', to: "dashboard#index", as: :dashboard
16
16
 
17
+ resources :registrations, only: [:index, :show] do
18
+ resources :devices, :controller => "registration_devices"
19
+ end
20
+
17
21
  resources :users do
18
22
  member do
19
23
  put :masquerade, as: :masquerade
@@ -34,19 +38,34 @@ Usman::Engine.routes.draw do
34
38
  end
35
39
 
36
40
  resources :permissions
37
-
41
+
38
42
  namespace :api do
39
43
  namespace :v1 do
40
- post :register, :controller => "/api/v1/registrations"
41
- post :resend_otp, :controller => "/api/v1/registrations"
42
- post :verify, :controller => "/api/v1/registrations"
44
+
45
+ # Registrations
46
+ post :register, :controller => "registrations"
47
+ post :resend_otp, :controller => "registrations"
48
+ post :verify, :controller => "registrations"
49
+ post :accept_tac, :controller => "registrations"
50
+
51
+ # Profile
52
+ post :create_profile, :controller => "profile"
53
+ post :update_profile, :controller => "profile"
43
54
  end
44
55
  end
45
-
46
- get '/api/v1/docs/usman', to: "docs#index", as: :docs_index
47
56
 
48
- #get "/api/v1/docs/register", :controller => "/usman/api_docs"
49
- #get "/api/v1/docs/resend_otp", :controller => "/usman/api_docs"
50
- #get "/api/v1/docs/verify", :controller => "/usman/api_docs"
57
+ scope :docs do
58
+ namespace :api do
59
+ namespace :v1 do
60
+ get 'index', :controller => "docs"
61
+ get 'register', :controller => "docs"
62
+ get 'resend_otp', :controller => "docs"
63
+ get 'verify_otp', :controller => "docs"
64
+ get 'accept_tac', :controller => "docs"
65
+ get 'create_profile', :controller => "docs"
66
+ get 'update_profile', :controller => "docs"
67
+ end
68
+ end
69
+ end
51
70
 
52
71
  end
@@ -0,0 +1,5 @@
1
+ class AddTacAcceptedAtToDevices < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :devices, :tac_accepted_at, :datetime
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class AddGenderToUsers < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :users, :gender, :string, default: :nogender
4
+ add_column :users, :date_of_birth, :date
5
+ end
6
+ end
data/lib/usman/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Usman
2
- VERSION = '0.2.3'
2
+ VERSION = '0.2.5'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: usman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - kpvarma
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-28 00:00:00.000000000 Z
11
+ date: 2017-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -90,28 +90,28 @@ dependencies:
90
90
  requirements:
91
91
  - - "~>"
92
92
  - !ruby/object:Gem::Version
93
- version: 0.1.7
93
+ version: 0.1.10
94
94
  type: :runtime
95
95
  prerelease: false
96
96
  version_requirements: !ruby/object:Gem::Requirement
97
97
  requirements:
98
98
  - - "~>"
99
99
  - !ruby/object:Gem::Version
100
- version: 0.1.7
100
+ version: 0.1.10
101
101
  - !ruby/object:Gem::Dependency
102
102
  name: pattana
103
103
  requirement: !ruby/object:Gem::Requirement
104
104
  requirements:
105
105
  - - "~>"
106
106
  - !ruby/object:Gem::Version
107
- version: 0.1.1
107
+ version: 0.1.4
108
108
  type: :runtime
109
109
  prerelease: false
110
110
  version_requirements: !ruby/object:Gem::Requirement
111
111
  requirements:
112
112
  - - "~>"
113
113
  - !ruby/object:Gem::Version
114
- version: 0.1.1
114
+ version: 0.1.4
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: bcrypt
117
117
  requirement: !ruby/object:Gem::Requirement
@@ -345,15 +345,19 @@ files:
345
345
  - app/assets/images/ms-icon-310x310.png
346
346
  - app/assets/images/ms-icon-70x70.png
347
347
  - app/assets/sketches/logo.sketch
348
- - app/controllers/api/v1/base_controller.rb
349
- - app/controllers/api/v1/registrations_controller.rb
350
348
  - app/controllers/usman/admin_controller.rb
349
+ - app/controllers/usman/api/v1/base_controller.rb
350
+ - app/controllers/usman/api/v1/docs_base_controller.rb
351
+ - app/controllers/usman/api/v1/docs_controller.rb
352
+ - app/controllers/usman/api/v1/profile_controller.rb
353
+ - app/controllers/usman/api/v1/registrations_controller.rb
351
354
  - app/controllers/usman/application_controller.rb
352
355
  - app/controllers/usman/dashboard_controller.rb
353
- - app/controllers/usman/docs_controller.rb
354
356
  - app/controllers/usman/features_controller.rb
355
357
  - app/controllers/usman/my_account_controller.rb
356
358
  - app/controllers/usman/permissions_controller.rb
359
+ - app/controllers/usman/registration_devices_controller.rb
360
+ - app/controllers/usman/registrations_controller.rb
357
361
  - app/controllers/usman/resource_controller.rb
358
362
  - app/controllers/usman/roles_controller.rb
359
363
  - app/controllers/usman/sessions_controller.rb
@@ -378,14 +382,23 @@ files:
378
382
  - app/uploaders/feature_image_uploader.rb
379
383
  - app/uploaders/image_uploader.rb
380
384
  - app/uploaders/profile_picture_uploader.rb
385
+ - app/views/kuppayam/api/docs/_navigation.html.erb
381
386
  - app/views/layouts/kuppayam/_footer.html.erb
382
387
  - app/views/layouts/kuppayam/_header.html.erb
383
388
  - app/views/layouts/kuppayam/_navbar.html.erb
384
389
  - app/views/layouts/kuppayam/_sidebar.html.erb
385
390
  - app/views/layouts/kuppayam/profile.html.erb
391
+ - app/views/usman/api/v1/docs/register/_neg_case_1.html.erb
392
+ - app/views/usman/api/v1/docs/register/_neg_case_2.html.erb
393
+ - app/views/usman/api/v1/docs/register/_neg_case_3.html.erb
394
+ - app/views/usman/api/v1/docs/register/_pos_case_1.html.erb
395
+ - app/views/usman/api/v1/docs/resend_otp/_neg_case_1.html.erb
396
+ - app/views/usman/api/v1/docs/resend_otp/_pos_case_1.html.erb
397
+ - app/views/usman/api/v1/docs/verify_otp/_neg_case_1.html.erb
398
+ - app/views/usman/api/v1/docs/verify_otp/_neg_case_2.html.erb
399
+ - app/views/usman/api/v1/docs/verify_otp/_neg_case_3.html.erb
400
+ - app/views/usman/api/v1/docs/verify_otp/_pos_case_1.html.erb
386
401
  - app/views/usman/dashboard/index.html.erb
387
- - app/views/usman/docs/index.html.erb
388
- - app/views/usman/docs/register.html.erb
389
402
  - app/views/usman/features/_form.html.erb
390
403
  - app/views/usman/features/_index.html.erb
391
404
  - app/views/usman/features/_row.html.erb
@@ -398,6 +411,14 @@ files:
398
411
  - app/views/usman/permissions/_row.html.erb
399
412
  - app/views/usman/permissions/_show.html.erb
400
413
  - app/views/usman/permissions/index.html.erb
414
+ - app/views/usman/registration_devices/_form.html.erb
415
+ - app/views/usman/registration_devices/_index.html.erb
416
+ - app/views/usman/registration_devices/_row.html.erb
417
+ - app/views/usman/registrations/_form.html.erb
418
+ - app/views/usman/registrations/_index.html.erb
419
+ - app/views/usman/registrations/_row.html.erb
420
+ - app/views/usman/registrations/_show.html.erb
421
+ - app/views/usman/registrations/index.html.erb
401
422
  - app/views/usman/roles/_form.html.erb
402
423
  - app/views/usman/roles/_index.html.erb
403
424
  - app/views/usman/roles/_row.html.erb
@@ -414,12 +435,10 @@ files:
414
435
  - app/views/usman/users/_row.html.erb
415
436
  - app/views/usman/users/_show.html.erb
416
437
  - app/views/usman/users/index.html.erb
438
+ - config/locales/usman/api.ar.yml
439
+ - config/locales/usman/api.en.yml
417
440
  - config/locales/usman/authentication.ar.yml
418
441
  - config/locales/usman/authentication.en.yml
419
- - config/locales/usman/general.ar.yml
420
- - config/locales/usman/general.en.yml
421
- - config/locales/usman/mobile_registration.ar.yml
422
- - config/locales/usman/mobile_registration.en.yml
423
442
  - config/routes.rb
424
443
  - db/data/dummy/features.csv
425
444
  - db/data/dummy/permissions.csv
@@ -437,6 +456,8 @@ files:
437
456
  - db/migrate/20170819113218_add_registration_id_to_users.rb
438
457
  - db/migrate/20170819113219_create_devices.rb
439
458
  - db/migrate/20170825020624_add_otp_verified_at_to_devices.rb
459
+ - db/migrate/20170904080436_add_tac_accepted_at_to_devices.rb
460
+ - db/migrate/20170905041104_add_gender_to_users.rb
440
461
  - lib/tasks/usman/data.rake
441
462
  - lib/tasks/usman/master_data.rake
442
463
  - lib/temp/features.rake
@@ -1,13 +0,0 @@
1
- module Api
2
- module V1
3
- class BaseController < ActionController::API
4
-
5
- include ActionController::HttpAuthentication::Token::ControllerMethods
6
- include Usman::ApiHelper
7
-
8
- before_action :require_auth_token
9
-
10
- end
11
- end
12
-
13
- end
@@ -1,115 +0,0 @@
1
- module Api
2
- module V1
3
- class RegistrationsController < BaseController
4
-
5
- skip_before_action :require_auth_token
6
-
7
- def register
8
- proc_code = Proc.new do
9
- @reg_data = Usman::MobileRegistrationService.new(params)
10
- @errors = @reg_data.errors
11
- @success = false
12
- if @errors[:heading].blank?
13
- @success = true
14
- @alert = {
15
- heading: I18n.translate("mobile_registration.otp_sent.heading"),
16
- message: I18n.translate("mobile_registration.otp_sent.message")
17
- }
18
- @data = {
19
- registration: @reg_data.registration,
20
- device: @reg_data.device
21
- }
22
- end
23
- end
24
- render_json_response(proc_code)
25
- end
26
-
27
- def resend_otp
28
- proc_code = Proc.new do
29
- @device = Device.where("uuid = ?", params[:uuid]).first
30
- if @device
31
- if @device.blocked?
32
- @success = false
33
- @errors = {
34
- heading: I18n.translate("mobile_registration.device_blocked.heading"),
35
- message: I18n.translate("mobile_registration.device_blocked.message"),
36
- details: {}
37
- }
38
- else
39
- valid, validation_errors = @device.resend_otp(params[:dialing_prefix], params[:mobile_number])
40
- if valid
41
- @success = true
42
- @alert = {
43
- heading: I18n.translate("mobile_registration.new_otp_sent.heading"),
44
- message: I18n.translate("mobile_registration.new_otp_sent.message")
45
- }
46
- @data = {}
47
- else
48
- @success = false
49
- @errors = {
50
- heading: I18n.translate("mobile_registration.otp_not_matching.heading"),
51
- message: I18n.translate("mobile_registration.otp_not_matching.message"),
52
- details: validation_errors
53
- }
54
- end
55
- end
56
- else
57
- @success = false
58
- @errors = {
59
- heading: I18n.translate("general.unexpected_failure.heading"),
60
- message: I18n.translate("general.unexpected_failure.message"),
61
- details: {
62
- uuid: "is invalid"
63
- }
64
- }
65
- end
66
- end
67
- render_json_response(proc_code)
68
- end
69
-
70
- def verify
71
- proc_code = Proc.new do
72
- @device = Device.where("uuid = ?", params[:uuid]).first
73
- if @device
74
- if @device.blocked?
75
- @success = false
76
- @errors = {
77
- heading: I18n.translate("mobile_registration.device_blocked.heading"),
78
- message: I18n.translate("mobile_registration.device_blocked.message"),
79
- details: {}
80
- }
81
- else
82
- valid, validation_errors = @device.validate_otp(params[:otp], params[:dialing_prefix], params[:mobile_number])
83
- if valid
84
- @success = true
85
- @alert = {
86
- heading: I18n.translate("mobile_registration.verification_success.heading"),
87
- message: I18n.translate("mobile_registration.verification_success.message")
88
- }
89
- @data = { api_token: @device.api_token }
90
- else
91
- @success = false
92
- @errors = {
93
- heading: I18n.translate("mobile_registration.otp_not_matching.heading"),
94
- message: I18n.translate("mobile_registration.otp_not_matching.message"),
95
- details: validation_errors
96
- }
97
- end
98
- end
99
- else
100
- @success = false
101
- @errors = {
102
- heading: I18n.translate("general.unexpected_failure.heading"),
103
- message: I18n.translate("general.unexpected_failure.message"),
104
- details: {
105
- uuid: "is invalid"
106
- }
107
- }
108
- end
109
- end
110
- render_json_response(proc_code)
111
- end
112
- end
113
- end
114
- end
115
-
@@ -1,41 +0,0 @@
1
- module Usman
2
- class DocsController < Kuppayam::BaseController
3
-
4
- include Usman::AuthenticationHelper
5
-
6
- layout 'kuppayam/docs'
7
-
8
- before_action :current_user
9
-
10
- def index
11
- end
12
-
13
- def register
14
- end
15
-
16
- def resend_otp
17
- end
18
-
19
- def verify
20
- end
21
-
22
- private
23
-
24
- def set_default_title
25
- set_title("API Docs | #{params[:action].to_s.titleize}")
26
- end
27
-
28
- def breadcrumbs_configuration
29
- {
30
- heading: "API Documentation",
31
- description: "Requests and response structures with examples",
32
- links: [{name: "Index", link: docs_index_path, icon: 'fa-list'}]
33
- }
34
- end
35
-
36
- def set_navs
37
- set_nav("docs")
38
- end
39
-
40
- end
41
- end