api_responser 1.0.0.7 → 1.0.0.8

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
  SHA256:
3
- metadata.gz: 4484107207909cd242e10f3483f878e621df6558f6ad97e80b83b44d28d52b0b
4
- data.tar.gz: 1860d8aec6d6558e1881c8e0039f26104d73694ede11659f0066b93c3243fd33
3
+ metadata.gz: adee3e3b70fb9ad9b4848000ade2e3e920119d0497ab3d427456016ca1c4e6a4
4
+ data.tar.gz: 18df245fb706daad93eb2130a6a4472d3686f6c3df167ba80e25f8a0d60e9838
5
5
  SHA512:
6
- metadata.gz: 5eff7cc35cd335a7e9f18bb8af57714b75894dbafe7fd01b91b1d62acae8d4a1e321e45583d397903d49db533a24bdb9e37e21ea366b358235dbd561e398292d
7
- data.tar.gz: 3c49b09f092a9538e5311f80f236964ee42d795ee326443f7effb8bddcd94a2ef3c5bffc00ba81c49f5085b6347d082427d8d77aef1737d067d942cc5c69ce25
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
- api_success(code: 201)
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
- api_success(code: 204)
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
- api_success(code: 204)
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.7
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-17 00:00:00.000000000 Z
11
+ date: 2024-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails