api_responser 1.0.0.7 → 1.0.0.8
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/views/api_responser/error.json.erb +1 -1
- data/app/views/api_responser/success.json.erb +1 -1
- data/lib/api_responser.rb +21 -9
- data/readme.md +10 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adee3e3b70fb9ad9b4848000ade2e3e920119d0497ab3d427456016ca1c4e6a4
|
4
|
+
data.tar.gz: 18df245fb706daad93eb2130a6a4472d3686f6c3df167ba80e25f8a0d60e9838
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bf274f302575673ef57194ffca8bf312ebbcaa7411cd3ba12c846275fbc30884b34b33f2de024884f95641d40d4f0426eaf4162726b20f1e5a125c424ab3126
|
7
|
+
data.tar.gz: 302d3c281bc263de67aa3d477b843f4ed7e473526f057cb92488aae5519124a43ff34dc175050276174d03ad8b39b05e83a2f50bacdbbb1c4e028f7347e70d60
|
@@ -1 +1 @@
|
|
1
|
-
{"status":"error","code":<%= @code %>,"message":"<%= @message %>"}
|
1
|
+
{"data": {"status":"error","code":<%= @code %>,"message":"<%= @message %>"}}
|
@@ -1 +1 @@
|
|
1
|
-
{"status":"success","code":<%= @code %>,"message":"<%= @message %>","records":<%= @records.to_json %>,"records_count":<%= @records_count %>}
|
1
|
+
{"data": {"status":"success","code":<%= @code %>,"message":"<%= @message %>","records":<%= @records.to_json %>,"records_count":<%= @records_count %>}}
|
data/lib/api_responser.rb
CHANGED
@@ -11,16 +11,28 @@ module ApiResponser
|
|
11
11
|
success_render(code: 200, message: i18n_message(__method__, status:"success"), records: records)
|
12
12
|
end
|
13
13
|
|
14
|
-
def record_created
|
15
|
-
|
14
|
+
def record_created(records = nil)
|
15
|
+
if records.nil?
|
16
|
+
api_success(code: 201)
|
17
|
+
else
|
18
|
+
success_render(code: 201, message: i18n_message(__method__, status:"success"), records: records)
|
19
|
+
end
|
16
20
|
end
|
17
21
|
|
18
|
-
def record_updated
|
19
|
-
|
22
|
+
def record_updated(records = nil)
|
23
|
+
if records.nil?
|
24
|
+
api_success(code: 204)
|
25
|
+
else
|
26
|
+
success_render(code: 204, message: i18n_message(__method__, status:"success"), records: records)
|
27
|
+
end
|
20
28
|
end
|
21
29
|
|
22
|
-
def record_deleted
|
23
|
-
|
30
|
+
def record_deleted(records = nil)
|
31
|
+
if records.nil?
|
32
|
+
api_success(code: 204)
|
33
|
+
else
|
34
|
+
success_render(code: 204, message: i18n_message(__method__, status:"success"), records: records)
|
35
|
+
end
|
24
36
|
end
|
25
37
|
|
26
38
|
# Error responses
|
@@ -48,8 +60,8 @@ module ApiResponser
|
|
48
60
|
error_render(code: 400, message: i18n_message(__method__, status:"error"), debug_message: debug_message, report:report)
|
49
61
|
end
|
50
62
|
|
51
|
-
def unauthorized(debug_message = "", report:false)
|
52
|
-
error_render(code: 401, message: i18n_message(__method__, status:"error"), debug_message: debug_message, report:report)
|
63
|
+
def unauthorized(debug_message = "", message: nil,report:false)
|
64
|
+
error_render(code: 401, message: message.nil? ? i18n_message(__method__, status:"error") : message, debug_message: debug_message, report:report)
|
53
65
|
end
|
54
66
|
|
55
67
|
def forbidden(debug_message = "", report:false)
|
@@ -105,7 +117,7 @@ module ApiResponser
|
|
105
117
|
@message = message
|
106
118
|
@records = records
|
107
119
|
@records_count = determine_records_count(records, records_count)
|
108
|
-
{json:ERB.new(file_read("success")).result(binding), status: code}
|
120
|
+
{json: ERB.new(file_read("success")).result(binding), status: code}
|
109
121
|
end
|
110
122
|
|
111
123
|
def error_render(code: 500, message: "", debug_message: "", report: false)
|
data/readme.md
CHANGED
@@ -122,12 +122,13 @@ def record_not_deleted(message, debug_message = "", report:false)
|
|
122
122
|
The *debug_message* argument is optional.\
|
123
123
|
The *report* argument is optional and is useful if you would like to handle *debug_message*.\
|
124
124
|
The *debug_message* is useful for providing the real reason for the error (if *report* is **true**).
|
125
|
+
The *message* argument is optional and is useful if you would like to provide your custom message. For example "Incorrect login or password"
|
125
126
|
|
126
127
|
```ruby
|
127
128
|
def bad_request(debug_message = "", report:false)
|
128
129
|
```
|
129
130
|
```ruby
|
130
|
-
def unauthorized(debug_message = "", report:false)
|
131
|
+
def unauthorized(debug_message = "", message:nil, report:false)
|
131
132
|
```
|
132
133
|
```ruby
|
133
134
|
def forbidden(debug_message = "", report:false)
|
@@ -144,7 +145,7 @@ Templates should be located in **app/views/api_responser/**
|
|
144
145
|
The default templates are:
|
145
146
|
#### success.json.erb
|
146
147
|
``` ruby
|
147
|
-
{
|
148
|
+
"data":{
|
148
149
|
"status": "success",
|
149
150
|
"code": <%= @code %>,
|
150
151
|
"message": "<%= @message %>",
|
@@ -154,7 +155,7 @@ The default templates are:
|
|
154
155
|
```
|
155
156
|
#### error.json.erb
|
156
157
|
``` ruby
|
157
|
-
{
|
158
|
+
"data":{
|
158
159
|
"status": "error",
|
159
160
|
"code": <%= @code %>,
|
160
161
|
"message": "<%= @message %>"
|
@@ -165,7 +166,7 @@ The default templates are:
|
|
165
166
|
The gem provides a default error handler in **ApiResponserHelper**:
|
166
167
|
``` ruby
|
167
168
|
module ApiResponserHelper
|
168
|
-
def error_handling(code: nil, debug_message: nil, message: nil)
|
169
|
+
def self.error_handling(code: nil, debug_message: nil, message: nil)
|
169
170
|
Logger.new(STDOUT).fatal("Error with code #{code}. Debug message: #{debug_message}. Message: #{message}")
|
170
171
|
end
|
171
172
|
end
|
@@ -183,8 +184,13 @@ Default localization located in config/locale/en.yml
|
|
183
184
|
|
184
185
|
## Example
|
185
186
|
```ruby
|
187
|
+
|
186
188
|
class ApplicationController < ActionController::Base
|
189
|
+
#include ApiResponser in ApplicationController
|
187
190
|
include ApiResponser
|
191
|
+
end
|
192
|
+
|
193
|
+
class SomeController < ApplicationController
|
188
194
|
before_action do
|
189
195
|
set_model_variable("ModelName")
|
190
196
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: api_responser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nazim Mehdiyev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-07-
|
11
|
+
date: 2024-07-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|