stay_commerce 0.1.9 → 0.1.10
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 +4 -4
- data/app/controllers/devise/api/tokens_controller.rb +185 -0
- data/app/controllers/stay/api/v1/profiles_controller.rb +27 -0
- data/app/controllers/stay/api/v1/property_categories_controller.rb +1 -1
- data/app/controllers/stay/api/v1/property_types_controller.rb +18 -2
- data/app/serializers/user_serializer.rb +0 -4
- data/app/services/devise/api/resource_owner_service/authenticate.rb +28 -0
- data/app/services/devise/api/resource_owner_service/sign_in.rb +31 -0
- data/app/services/devise/api/resource_owner_service/social_authenticate.rb +26 -0
- data/app/services/devise/api/resource_owner_service/social_sign_in.rb +30 -0
- data/app/services/devise/api/tokens_service/create.rb +45 -0
- data/app/views/stay/admin/shared/_store_switcher.html.erb +0 -30
- data/config/routes.rb +1 -1
- data/lib/stay/version.rb +1 -1
- metadata +9 -4
- data/app/controllers/stay/api/v1/profile_controller.rb +0 -23
- data/app/controllers/stay/users/profiles_controller.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b24ed7bc626048ec0567a639f138b6177756960fb6b4206ec03e85802e016c67
|
4
|
+
data.tar.gz: ee0e76e20df358f79a4199b27678cb47d931adec21fabcb6c52c031737bcf820
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82f905a9fac7c37250665077ced813b2a1e1563250835c0e757df0a506a370a73bf4b4444e0e47d733d0510bcbf6a90cb511e61721b6b6d701b7f3e016862135
|
7
|
+
data.tar.gz: 94e34f1b56d89639347113ea1bd3180fa70d9039446aaef09974d2f2e1d11f1279e18a63f4590f34d75e73b80ce70cae1a13235fcfccd77aec4cfb23b376d576
|
@@ -0,0 +1,185 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# rubocop:disable Metrics/ClassLength
|
4
|
+
module Devise
|
5
|
+
module Api
|
6
|
+
class TokensController < Devise.api.config.base_controller.constantize
|
7
|
+
wrap_parameters false
|
8
|
+
skip_before_action :verify_authenticity_token, raise: false
|
9
|
+
before_action :authenticate_devise_api_token!, only: %i[info]
|
10
|
+
|
11
|
+
respond_to :json
|
12
|
+
|
13
|
+
# rubocop:disable Metrics/AbcSize
|
14
|
+
def sign_up
|
15
|
+
unless Devise.api.config.sign_up.enabled
|
16
|
+
error_response = Devise::Api::Responses::ErrorResponse.new(request, error: :sign_up_disabled,
|
17
|
+
resource_class: resource_class)
|
18
|
+
|
19
|
+
return render json: error_response.body, status: error_response.status
|
20
|
+
end
|
21
|
+
|
22
|
+
Devise.api.config.before_sign_up.call(sign_up_params, request, resource_class)
|
23
|
+
|
24
|
+
service = Devise::Api::ResourceOwnerService::SignUp.new(params: sign_up_params,
|
25
|
+
resource_class: resource_class).call
|
26
|
+
if service.success?
|
27
|
+
token = service.success
|
28
|
+
|
29
|
+
call_devise_trackable!(token.resource_owner)
|
30
|
+
|
31
|
+
token_response = Devise::Api::Responses::TokenResponse.new(request, token: token, action: __method__)
|
32
|
+
Devise.api.config.after_successful_sign_up.call(token.resource_owner, token, request)
|
33
|
+
assign_role(token.resource_owner) if token.resource_owner
|
34
|
+
data = ActiveModelSerializers::SerializableResource.new(token.resource_owner, serializer: UserSerializer).as_json
|
35
|
+
UserMailer.welcome_email(token.resource_owner).deliver_later if token.resource_owner
|
36
|
+
return render json: { access_token: token_response&.token.access_token, success: true }, status: token_response.status
|
37
|
+
end
|
38
|
+
|
39
|
+
error_response = Devise::Api::Responses::ErrorResponse.new(request,
|
40
|
+
resource_class: resource_class,
|
41
|
+
**service.failure)
|
42
|
+
|
43
|
+
error_message = error_response.body[:error_description].is_a?(Array) ? error_response.body[:error_description].join : error_response.body[:error_description].to_s
|
44
|
+
render json: { error: error_message, success: false }, status: error_response.status
|
45
|
+
end
|
46
|
+
# rubocop:enable Metrics/AbcSize
|
47
|
+
|
48
|
+
# rubocop:disable Metrics/AbcSize
|
49
|
+
def sign_in
|
50
|
+
Devise.api.config.before_sign_in.call(sign_in_params, request, resource_class)
|
51
|
+
service = Devise::Api::ResourceOwnerService::SignIn.new(params: sign_in_params,
|
52
|
+
resource_class: resource_class).call
|
53
|
+
|
54
|
+
if service.success?
|
55
|
+
token = service.success
|
56
|
+
|
57
|
+
call_devise_trackable!(token.resource_owner)
|
58
|
+
|
59
|
+
token_response = Devise::Api::Responses::TokenResponse.new(request, token: service.success,
|
60
|
+
action: __method__)
|
61
|
+
Devise.api.config.after_successful_sign_in.call(token.resource_owner, token, request)
|
62
|
+
data = ActiveModelSerializers::SerializableResource.new(token.resource_owner, serializer: UserSerializer).as_json
|
63
|
+
return render json: { access_token: token_response&.token.access_token, success: true }, status: token_response.status
|
64
|
+
end
|
65
|
+
|
66
|
+
error_response = Devise::Api::Responses::ErrorResponse.new(request,
|
67
|
+
resource_class: resource_class,
|
68
|
+
**service.failure)
|
69
|
+
error_message = error_response.body[:error_description].is_a?(Array) ? error_response.body[:error_description].join : error_response.body[:error_description].to_s
|
70
|
+
|
71
|
+
render json: { error: error_message, success: false }, status: :unprocessable_entity
|
72
|
+
end
|
73
|
+
# rubocop:enable Metrics/AbcSize
|
74
|
+
|
75
|
+
def info
|
76
|
+
token_response = Devise::Api::Responses::TokenResponse.new(request, token: current_devise_api_token,
|
77
|
+
action: __method__)
|
78
|
+
data = ActiveModelSerializers::SerializableResource.new(token_response.resource_owner, serializer: UserSerializer).as_json
|
79
|
+
render json: { data: data, success: true }, status: token_response.status
|
80
|
+
end
|
81
|
+
|
82
|
+
# rubocop:disable Metrics/AbcSize
|
83
|
+
def revoke
|
84
|
+
Devise.api.config.before_revoke.call(current_devise_api_token, request)
|
85
|
+
|
86
|
+
service = Devise::Api::TokensService::Revoke.new(devise_api_token: current_devise_api_token).call
|
87
|
+
|
88
|
+
if service.success?
|
89
|
+
token_response = Devise::Api::Responses::TokenResponse.new(request, token: service.success,
|
90
|
+
action: __method__)
|
91
|
+
|
92
|
+
Devise.api.config.after_successful_revoke.call(service.success&.resource_owner, service.success, request)
|
93
|
+
|
94
|
+
return render json: token_response.body, status: token_response.status
|
95
|
+
end
|
96
|
+
|
97
|
+
error_response = Devise::Api::Responses::ErrorResponse.new(request,
|
98
|
+
resource_class: resource_class,
|
99
|
+
**service.failure)
|
100
|
+
|
101
|
+
render json: error_response.body, status: error_response.status
|
102
|
+
end
|
103
|
+
# rubocop:enable Metrics/AbcSize
|
104
|
+
|
105
|
+
# rubocop:disable Metrics/AbcSize
|
106
|
+
def refresh
|
107
|
+
unless Devise.api.config.refresh_token.enabled
|
108
|
+
error_response = Devise::Api::Responses::ErrorResponse.new(request,
|
109
|
+
resource_class: resource_class,
|
110
|
+
error: :refresh_token_disabled)
|
111
|
+
|
112
|
+
return render json: error_response.body, status: error_response.status
|
113
|
+
end
|
114
|
+
|
115
|
+
if current_devise_api_refresh_token.blank?
|
116
|
+
error_response = Devise::Api::Responses::ErrorResponse.new(request, error: :invalid_token,
|
117
|
+
resource_class: resource_class)
|
118
|
+
|
119
|
+
return render json: error_response.body, status: error_response.status
|
120
|
+
end
|
121
|
+
|
122
|
+
if current_devise_api_refresh_token.revoked?
|
123
|
+
error_response = Devise::Api::Responses::ErrorResponse.new(request, error: :revoked_token,
|
124
|
+
resource_class: resource_class)
|
125
|
+
|
126
|
+
return render json: error_response.body, status: error_response.status
|
127
|
+
end
|
128
|
+
|
129
|
+
Devise.api.config.before_refresh.call(current_devise_api_refresh_token, request)
|
130
|
+
|
131
|
+
service = Devise::Api::TokensService::Refresh.new(devise_api_token: current_devise_api_refresh_token).call
|
132
|
+
|
133
|
+
if service.success?
|
134
|
+
token_response = Devise::Api::Responses::TokenResponse.new(request, token: service.success,
|
135
|
+
action: __method__)
|
136
|
+
|
137
|
+
Devise.api.config.after_successful_refresh.call(service.success.resource_owner, service.success, request)
|
138
|
+
|
139
|
+
return render json: token_response.body, status: token_response.status
|
140
|
+
end
|
141
|
+
|
142
|
+
error_response = Devise::Api::Responses::ErrorResponse.new(request,
|
143
|
+
resource_class: resource_class,
|
144
|
+
**service.failure)
|
145
|
+
|
146
|
+
render json: error_response.body, status: error_response.status
|
147
|
+
end
|
148
|
+
# rubocop:enable Metrics/AbcSize
|
149
|
+
|
150
|
+
private
|
151
|
+
|
152
|
+
def sign_up_params
|
153
|
+
params.permit(*Devise.api.config.sign_up.extra_fields, *resource_class.authentication_keys,
|
154
|
+
*::Devise::ParameterSanitizer::DEFAULT_PERMITTED_ATTRIBUTES[:sign_up]).to_h
|
155
|
+
end
|
156
|
+
|
157
|
+
def assign_role(user)
|
158
|
+
role = Stay::Role.find_by(name: params[:type])
|
159
|
+
user.role_users.create(role_id: role&.id) if role.present?
|
160
|
+
token = Random.hex(16)
|
161
|
+
user.update(confirmation_token: token)
|
162
|
+
end
|
163
|
+
|
164
|
+
def sign_in_params
|
165
|
+
params.permit(*resource_class.authentication_keys,
|
166
|
+
*::Devise::ParameterSanitizer::DEFAULT_PERMITTED_ATTRIBUTES[:sign_in]).to_h
|
167
|
+
end
|
168
|
+
|
169
|
+
def call_devise_trackable!(resource_owner)
|
170
|
+
return unless resource_class.supported_devise_modules.trackable?
|
171
|
+
|
172
|
+
resource_owner.update_tracked_fields!(request)
|
173
|
+
end
|
174
|
+
|
175
|
+
def current_devise_api_refresh_token
|
176
|
+
return @current_devise_api_refresh_token if @current_devise_api_refresh_token
|
177
|
+
|
178
|
+
token = find_devise_api_token
|
179
|
+
devise_api_token_model = Devise.api.config.base_token_model.constantize
|
180
|
+
@current_devise_api_refresh_token = devise_api_token_model.find_by(refresh_token: token)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
185
|
+
# rubocop:enable Metrics/ClassLength
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class Stay::Api::V1::ProfilesController < Stay::BaseApiController
|
2
|
+
before_action :set_user, only: [:show, :update]
|
3
|
+
|
4
|
+
def show
|
5
|
+
render json: { profile: @profile }
|
6
|
+
end
|
7
|
+
|
8
|
+
def update
|
9
|
+
if @profile.update(profile_params)
|
10
|
+
data = ActiveModelSerializers::SerializableResource.new(@profile, serializer: UserSerializer)
|
11
|
+
render json: { profile: data, success: true }, status: :ok
|
12
|
+
else
|
13
|
+
render json: { errors: @profile.errors.full_messages, success:false }, status: :unprocessable_entity
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def set_user
|
20
|
+
@profile = current_devise_api_user || Stay::User.find(params[:id])
|
21
|
+
end
|
22
|
+
|
23
|
+
def profile_params
|
24
|
+
params.require(:profile).permit(:first_name, :last_name, :phone, :date_of_birth, :gender, :profile_image )
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -3,12 +3,12 @@ class Stay::Api::V1::PropertyCategoriesController < Stay::BaseApiController
|
|
3
3
|
|
4
4
|
def index
|
5
5
|
@type = Stay::PropertyCategory.all
|
6
|
+
return render json: { error: "no data found", success: false }, status: :not_found unless @type.any?
|
6
7
|
render json: { data: ActiveModelSerializers::SerializableResource.new(@type, each_serializer: PropertyCategorySerializer), message: "data found", success: true }, status: :ok
|
7
8
|
end
|
8
9
|
|
9
10
|
def show
|
10
11
|
@type = Stay::PropertyCategory.find_by(id: params[:id])
|
11
|
-
return render json: { error: "no data found", success: false }, status: :unprocessable_entity if @type.nil?
|
12
12
|
render json: { data: PropertyCategorySerializer.new(@type), message: "data found", success: true }, status: :ok
|
13
13
|
end
|
14
14
|
end
|
@@ -2,9 +2,25 @@ class Stay::Api::V1::PropertyTypesController < Stay::BaseApiController
|
|
2
2
|
before_action :authenticate_devise_api_token!
|
3
3
|
|
4
4
|
def index
|
5
|
-
|
6
|
-
|
5
|
+
property_types = Stay::PropertyType.all
|
6
|
+
|
7
|
+
if property_types.any?
|
8
|
+
serialized_data = ActiveModelSerializers::SerializableResource.new(property_types, each_serializer: PropertyTypeSerializer)
|
9
|
+
|
10
|
+
render json: {
|
11
|
+
data: serialized_data,
|
12
|
+
message: "Data found",
|
13
|
+
success: true
|
14
|
+
}, status: :ok
|
15
|
+
else
|
16
|
+
render json: {
|
17
|
+
data: [],
|
18
|
+
message: "No property types found",
|
19
|
+
success: false
|
20
|
+
}, status: :ok
|
21
|
+
end
|
7
22
|
end
|
23
|
+
|
8
24
|
|
9
25
|
def show
|
10
26
|
@type = Stay::PropertyType.find_by(id: params[:id])
|
@@ -31,10 +31,6 @@ class UserSerializer < ActiveModel::Serializer
|
|
31
31
|
object&.preferences.present? ? object&.preferences["sms_notification"]: false
|
32
32
|
end
|
33
33
|
|
34
|
-
def payment_method_preference
|
35
|
-
object.payment_method_name
|
36
|
-
end
|
37
|
-
|
38
34
|
def image_file_name
|
39
35
|
object.profile_image&.filename&.to_s || nil
|
40
36
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Devise
|
4
|
+
module Api
|
5
|
+
module ResourceOwnerService
|
6
|
+
class Authenticate < Devise::Api::BaseService
|
7
|
+
option :params, type: Types::Hash
|
8
|
+
option :resource_class, type: Types::Class
|
9
|
+
|
10
|
+
def call
|
11
|
+
resource = resource_class.find_for_authentication(email: params[:email])
|
12
|
+
return Failure(error: :invalid_email, record: nil) if resource.blank?
|
13
|
+
return Failure(error: :invalid_authentication, record: resource) unless authenticate!(resource)
|
14
|
+
|
15
|
+
Success(resource)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def authenticate!(resource)
|
21
|
+
resource.valid_for_authentication? do
|
22
|
+
resource.valid_password?(params[:password])
|
23
|
+
end && resource.active_for_authentication?
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Devise
|
4
|
+
module Api
|
5
|
+
module ResourceOwnerService
|
6
|
+
class SignIn < Devise::Api::BaseService
|
7
|
+
option :params, type: Types::Hash
|
8
|
+
option :resource_class, type: Types::Class
|
9
|
+
|
10
|
+
def call
|
11
|
+
resource_owner = yield call_authenticate_service
|
12
|
+
devise_api_token = yield call_create_devise_api_token_service(resource_owner)
|
13
|
+
resource_owner.reset_failed_attempts! if resource_owner.class.supported_devise_modules.lockable?
|
14
|
+
|
15
|
+
Success(devise_api_token)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def call_authenticate_service
|
21
|
+
Devise::Api::ResourceOwnerService::Authenticate.new(params: params,
|
22
|
+
resource_class: resource_class).call
|
23
|
+
end
|
24
|
+
|
25
|
+
def call_create_devise_api_token_service(resource_owner)
|
26
|
+
Devise::Api::TokensService::Create.new(resource_owner: resource_owner).call
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Devise
|
4
|
+
module Api
|
5
|
+
module ResourceOwnerService
|
6
|
+
class SocialAuthenticate < Devise::Api::BaseService
|
7
|
+
option :params, type: Types::Hash
|
8
|
+
option :resource_class, type: Types::Class
|
9
|
+
|
10
|
+
def call
|
11
|
+
resource = resource_class.find_for_authentication(email: params["email"])
|
12
|
+
return Failure(error: :invalid_email, record: nil) if resource.blank?
|
13
|
+
Success(resource)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def authenticate!(resource)
|
19
|
+
resource.valid_for_authentication? do
|
20
|
+
resource.valid_password?(params[:password])
|
21
|
+
end && resource.active_for_authentication?
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Devise
|
4
|
+
module Api
|
5
|
+
module ResourceOwnerService
|
6
|
+
class SocialSignIn < Devise::Api::BaseService
|
7
|
+
option :params, type: Types::Hash
|
8
|
+
option :resource_class, type: Types::Class
|
9
|
+
|
10
|
+
def call
|
11
|
+
resource_owner = yield call_authenticate_service
|
12
|
+
devise_api_token = yield call_create_devise_api_token_service(resource_owner)
|
13
|
+
resource_owner.reset_failed_attempts! if resource_owner.class.supported_devise_modules.lockable?
|
14
|
+
|
15
|
+
Success(devise_api_token)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def call_authenticate_service
|
21
|
+
Devise::Api::ResourceOwnerService::SocialAuthenticate.new(params: params, resource_class: resource_class).call
|
22
|
+
end
|
23
|
+
|
24
|
+
def call_create_devise_api_token_service(resource_owner)
|
25
|
+
Devise::Api::TokensService::Create.new(resource_owner: resource_owner).call
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Devise
|
4
|
+
module Api
|
5
|
+
module TokensService
|
6
|
+
class Create < Devise::Api::BaseService
|
7
|
+
option :resource_owner
|
8
|
+
option :previous_refresh_token, type: Types::String | Types::Nil, default: proc { nil }
|
9
|
+
|
10
|
+
def call
|
11
|
+
return Failure(error: :invalid_resource_owner) unless resource_owner.respond_to?(:access_tokens)
|
12
|
+
|
13
|
+
devise_api_token = yield create_devise_api_token
|
14
|
+
|
15
|
+
Success(devise_api_token)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def authenticate_service
|
21
|
+
Devise::Api::ResourceOwnerService::Authenticate.new(params: params,
|
22
|
+
resource_class: resource_class).call
|
23
|
+
end
|
24
|
+
|
25
|
+
def create_devise_api_token
|
26
|
+
devise_api_token = resource_owner.access_tokens.new(params)
|
27
|
+
|
28
|
+
return Success(devise_api_token) if devise_api_token.save
|
29
|
+
|
30
|
+
Failure(error: :devise_api_token_create_error, record: devise_api_token)
|
31
|
+
end
|
32
|
+
|
33
|
+
def params
|
34
|
+
{
|
35
|
+
access_token: Devise.api.config.base_token_model.constantize.generate_uniq_access_token(resource_owner),
|
36
|
+
refresh_token: Devise.api.config.base_token_model.constantize.generate_uniq_refresh_token(resource_owner),
|
37
|
+
expires_in: Devise.api.config.access_token.expires_in,
|
38
|
+
revoked_at: nil,
|
39
|
+
previous_refresh_token: previous_refresh_token
|
40
|
+
}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
<% if current_store %>
|
2
|
-
<a class="px-0 py-1 btn text-light" id="storeSelectorDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
3
|
-
<span class="d-sm-none"><%= svg_icon name: "store.svg", width: '18', height: '18' %></span>
|
4
|
-
<span class="d-none d-sm-inline"><%= current_store.name %></span> (<%= current_store.code %>) <%= svg_icon name: "chevron-down.svg", width: '12', height: '12', classes: 'ml-1 mb-0' %>
|
5
|
-
</a>
|
6
|
-
|
7
|
-
<div class="dropdown-menu dropdown-menu-left overflow-hidden ml-2" aria-labelledby="storeSelectorDropdown">
|
8
|
-
<% @stores.each do |store| %>
|
9
|
-
<%= store_switcher_link(store) %>
|
10
|
-
<% end %>
|
11
|
-
|
12
|
-
<div class="dropdown-divider m-0"></div>
|
13
|
-
<%= link_to new_admin_store_path, class: 'py-2 px-4 mt-1 mb-0 dropdown-item', id: 'addNewStoreLink' do %>
|
14
|
-
<%= svg_icon name: "plus-circle", width: '18', height: '18' %> Add New Store
|
15
|
-
<% end %>
|
16
|
-
</div>
|
17
|
-
<% end %>
|
18
|
-
|
19
|
-
<script type="text/javascript">
|
20
|
-
$('#storeSelectorDropdown').click(function () {
|
21
|
-
event.preventDefault();
|
22
|
-
$(this).next('.dropdown-menu').toggle();
|
23
|
-
});
|
24
|
-
|
25
|
-
$(document).click(function (e) {
|
26
|
-
if (!$(e.target).closest('#storeSelectorDropdown').length) {
|
27
|
-
$('.dropdown-menu').hide();
|
28
|
-
}
|
29
|
-
});
|
30
|
-
</script>
|
data/config/routes.rb
CHANGED
data/lib/stay/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stay_commerce
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- w3villa-vikaspal
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-04-
|
11
|
+
date: 2025-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -480,6 +480,7 @@ files:
|
|
480
480
|
- app/channels/chat_channel.rb
|
481
481
|
- app/controllers/concerns/stay/booking_validations.rb
|
482
482
|
- app/controllers/concerns/stay/stripe_concern.rb
|
483
|
+
- app/controllers/devise/api/tokens_controller.rb
|
483
484
|
- app/controllers/stay/admin/addresses_controller.rb
|
484
485
|
- app/controllers/stay/admin/amenities_controller.rb
|
485
486
|
- app/controllers/stay/admin/amenity_categories_controller.rb
|
@@ -526,7 +527,7 @@ files:
|
|
526
527
|
- app/controllers/stay/api/v1/invoices_controller.rb
|
527
528
|
- app/controllers/stay/api/v1/messages_controller.rb
|
528
529
|
- app/controllers/stay/api/v1/payments_controller.rb
|
529
|
-
- app/controllers/stay/api/v1/
|
530
|
+
- app/controllers/stay/api/v1/profiles_controller.rb
|
530
531
|
- app/controllers/stay/api/v1/properties_controller.rb
|
531
532
|
- app/controllers/stay/api/v1/property_categories_controller.rb
|
532
533
|
- app/controllers/stay/api/v1/property_types_controller.rb
|
@@ -544,7 +545,6 @@ files:
|
|
544
545
|
- app/controllers/stay/users/confirmations_controller.rb
|
545
546
|
- app/controllers/stay/users/omniauth_callbacks_controller.rb
|
546
547
|
- app/controllers/stay/users/passwords_controller.rb
|
547
|
-
- app/controllers/stay/users/profiles_controller.rb
|
548
548
|
- app/controllers/stay/users/registrations_controller.rb
|
549
549
|
- app/controllers/stay/users/sessions_controller.rb
|
550
550
|
- app/controllers/stay/users/unlocks_controller.rb
|
@@ -624,6 +624,11 @@ files:
|
|
624
624
|
- app/serializers/room_type_serializer.rb
|
625
625
|
- app/serializers/user_listing_serializer.rb
|
626
626
|
- app/serializers/user_serializer.rb
|
627
|
+
- app/services/devise/api/resource_owner_service/authenticate.rb
|
628
|
+
- app/services/devise/api/resource_owner_service/sign_in.rb
|
629
|
+
- app/services/devise/api/resource_owner_service/social_authenticate.rb
|
630
|
+
- app/services/devise/api/resource_owner_service/social_sign_in.rb
|
631
|
+
- app/services/devise/api/tokens_service/create.rb
|
627
632
|
- app/services/stay/bookings/create_booking_service.rb
|
628
633
|
- app/services/stay/bookings/create_line_item_service.rb
|
629
634
|
- app/services/stay/bookings/existing_booking_service.rb
|
@@ -1,23 +0,0 @@
|
|
1
|
-
class Stay::Api::V1::ProfileController < Stay::BaseApiController
|
2
|
-
before_action :set_user, only: [:show, :update]
|
3
|
-
|
4
|
-
def show
|
5
|
-
render json: { profile: @profile }
|
6
|
-
end
|
7
|
-
|
8
|
-
def update
|
9
|
-
@profile.update(profile_params)
|
10
|
-
render json: { profile: @profile }, status: :ok
|
11
|
-
end
|
12
|
-
|
13
|
-
private
|
14
|
-
|
15
|
-
def set_user
|
16
|
-
@profile = current_devise_api_user || Stay::Profile.find(params[:id])
|
17
|
-
end
|
18
|
-
|
19
|
-
def profile_params
|
20
|
-
params.require(:profile).permit(:first_name, :last_name, :phone, :date_of_birth, :gender )
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
File without changes
|