nifty_services 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ecb01584fa196dbc0885c27d09a913dcad6cb78
|
4
|
+
data.tar.gz: 80eac1cc0ca04a6f16fafd9cc9eff9e29d0079bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 18e82bfb9c763ffdfb00ae3a5a1908a5991b63f9d73bea81693f61a24680036db456db242a582b2cdf1253199cd741377118bf6ff88ba80ce0a1bef4dca3f944
|
7
|
+
data.tar.gz: 174cc9ab744aa6dc8d4cf7dbfca1e6b28ecaf14602172ce5991c6d38142308106c9539adeb4316fe15b1e8bbe6dc40bc02d9d1b07fe67edf6b921bd2600d42fc
|
@@ -61,15 +61,6 @@ module NiftyServices
|
|
61
61
|
alias :record_safe_params :record_allowed_params
|
62
62
|
|
63
63
|
private
|
64
|
-
|
65
|
-
def valid_user?
|
66
|
-
user_class = NiftyServices.config.user_class
|
67
|
-
|
68
|
-
raise 'Invalid User class. Use NitfyService.config.user_class = ClassName' if user_class.blank?
|
69
|
-
|
70
|
-
valid_object?(@user, user_class)
|
71
|
-
end
|
72
|
-
|
73
64
|
def array_values_from_hash(options, key, root = nil)
|
74
65
|
options = options.symbolize_keys
|
75
66
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module NiftyServices
|
2
2
|
class BaseService
|
3
3
|
|
4
|
-
attr_reader :options, :response_status, :errors
|
4
|
+
attr_reader :options, :response_status, :response_status_code, :errors
|
5
5
|
|
6
6
|
CALLBACKS = [
|
7
7
|
:after_initialize,
|
@@ -60,9 +60,9 @@ module NiftyServices
|
|
60
60
|
|
61
61
|
def initialize(options = {}, initial_response_status = 400)
|
62
62
|
@options = options.to_options!
|
63
|
-
@response_status = initial_response_status
|
64
63
|
@errors = []
|
65
64
|
|
65
|
+
set_response_status(initial_response_status)
|
66
66
|
initial_callbacks_setup
|
67
67
|
|
68
68
|
call_callback(:after_initialize)
|
@@ -81,13 +81,21 @@ module NiftyServices
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def response_status
|
84
|
-
@response_status ||=
|
84
|
+
@response_status ||= :bad_request
|
85
85
|
end
|
86
86
|
|
87
87
|
def changed?
|
88
88
|
changed_attributes.any?
|
89
89
|
end
|
90
90
|
|
91
|
+
def valid_user?
|
92
|
+
user_class = NiftyServices.config.user_class
|
93
|
+
|
94
|
+
raise 'Invalid User class. Use NitfyService.config.user_class = ClassName' if user_class.blank?
|
95
|
+
|
96
|
+
valid_object?(@user, user_class)
|
97
|
+
end
|
98
|
+
|
91
99
|
def callback_fired?(callback_name)
|
92
100
|
return (
|
93
101
|
callback_fired_in?(@fired_callbacks, callback_name) ||
|
@@ -133,22 +141,54 @@ module NiftyServices
|
|
133
141
|
@registered_callbacks = Hash.new {|k,v| k[v] = [] }
|
134
142
|
end
|
135
143
|
|
136
|
-
def success_response(status =
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
@success = true
|
144
|
+
def success_response(status = :ok)
|
145
|
+
unless Configuration::SUCCESS_RESPONSE_STATUS.key?(status.to_sym)
|
146
|
+
raise "#{status} is not a valid success response status"
|
147
|
+
end
|
141
148
|
|
142
|
-
|
149
|
+
with_before_and_after_callbacks(:success) do
|
150
|
+
@success = true
|
151
|
+
set_response_status(status)
|
152
|
+
end
|
143
153
|
end
|
144
154
|
|
145
155
|
def success_created_response
|
146
|
-
success_response(
|
156
|
+
success_response(:created)
|
157
|
+
end
|
158
|
+
|
159
|
+
def set_response_status(status)
|
160
|
+
@response_status = response_status_reason_for(status)
|
161
|
+
@response_status_code = response_status_code_for(status)
|
162
|
+
end
|
163
|
+
|
164
|
+
def response_status_for(status)
|
165
|
+
error_list = Configuration::ERROR_RESPONSE_STATUS
|
166
|
+
success_list = Configuration::SUCCESS_RESPONSE_STATUS
|
167
|
+
|
168
|
+
select_method = [Symbol, String].member?(status.class) ? :key : :value
|
169
|
+
|
170
|
+
response_list = error_list.merge(success_list)
|
171
|
+
|
172
|
+
selected_status = response_list.select do |status_key, status_code|
|
173
|
+
if select_method == :key
|
174
|
+
status_key == status
|
175
|
+
else
|
176
|
+
status_code == status
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
def response_status_code_for(status)
|
182
|
+
response_status_for(status).values.first
|
183
|
+
end
|
184
|
+
|
185
|
+
def response_status_reason_for(status)
|
186
|
+
response_status_for(status).keys.first
|
147
187
|
end
|
148
188
|
|
149
|
-
def error(status, message_key, options={})
|
189
|
+
def error(status, message_key, options = {})
|
150
190
|
with_before_and_after_callbacks(:error) do
|
151
|
-
|
191
|
+
set_response_status(status)
|
152
192
|
error_message = process_error_message_for_key(message_key, options)
|
153
193
|
|
154
194
|
add_error(error_message)
|
@@ -6,7 +6,7 @@ module NiftyServices
|
|
6
6
|
DEFAULT_I18N_NAMESPACE = "nifty_services"
|
7
7
|
DEFAULT_SERVICE_CONCERN_NAMESPACE = 'NitfyServices::Concerns'
|
8
8
|
|
9
|
-
|
9
|
+
ERROR_RESPONSE_STATUS = {
|
10
10
|
:bad_request => 400,
|
11
11
|
:not_authorized => 401,
|
12
12
|
:forbidden => 403,
|
@@ -16,9 +16,14 @@ module NiftyServices
|
|
16
16
|
:not_implemented => 501
|
17
17
|
}
|
18
18
|
|
19
|
+
SUCCESS_RESPONSE_STATUS = {
|
20
|
+
:ok => 200,
|
21
|
+
:created => 201
|
22
|
+
}
|
23
|
+
|
19
24
|
class << self
|
20
25
|
def response_errors_list
|
21
|
-
|
26
|
+
ERROR_RESPONSE_STATUS
|
22
27
|
end
|
23
28
|
|
24
29
|
def add_response_error_method(reason, status_code)
|