api_responser 1.0.0 → 1.0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- 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 +12 -12
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
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '7.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '7.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: minitest
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '5.1'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '5.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: webrick
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '1.8'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '1.8'
|
55
55
|
description: "\n The api_responser gem provides a standardized way to handle API
|
56
56
|
responses in a Rails application. \n It includes methods for rendering success
|
57
57
|
and error responses, making it easier to manage and maintain \n consistent response
|