api_responser 1.0.0 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 81300d06901f90334a8a2f47154ca0773836b4b0a640923059b62d1e86e48eac
4
- data.tar.gz: d189a7133d7679a0e788d75d21eeb7bf041166dfd0677326cdc4227c0be97cac
3
+ metadata.gz: adee3e3b70fb9ad9b4848000ade2e3e920119d0497ab3d427456016ca1c4e6a4
4
+ data.tar.gz: 18df245fb706daad93eb2130a6a4472d3686f6c3df167ba80e25f8a0d60e9838
5
5
  SHA512:
6
- metadata.gz: 332bc07fd3079cb4c7bb8743609a146dac88e225bf5c71ecb5f94456b3b34794cb66bc0a7c82468fa2b4b8f46e3a9fd58313a5dc8f733a8fa88d139f63d1af7d
7
- data.tar.gz: da4e7d004677798c5ac679c31af48c5fa413ade46f12bdc69cceefa0b3abb56a804b305c44a951673a257bafa69b9a1e8cb8276c54a8f49d738b48df58668672
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
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
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '6.0'
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: '6.0'
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: '0'
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: '0'
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: '0'
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: '0'
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