usman 0.2.3 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
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