Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/service_response.rb')
-rw-r--r--app/services/service_response.rb26
1 files changed, 19 insertions, 7 deletions
diff --git a/app/services/service_response.rb b/app/services/service_response.rb
index c7ab75a4426..848f90e7f25 100644
--- a/app/services/service_response.rb
+++ b/app/services/service_response.rb
@@ -2,20 +2,28 @@
class ServiceResponse
def self.success(message: nil, payload: {}, http_status: :ok)
- new(status: :success, message: message, payload: payload, http_status: http_status)
+ new(status: :success,
+ message: message,
+ payload: payload,
+ http_status: http_status)
end
- def self.error(message:, payload: {}, http_status: nil)
- new(status: :error, message: message, payload: payload, http_status: http_status)
+ def self.error(message:, payload: {}, http_status: nil, reason: nil)
+ new(status: :error,
+ message: message,
+ payload: payload,
+ http_status: http_status,
+ reason: reason)
end
- attr_reader :status, :message, :http_status, :payload
+ attr_reader :status, :message, :http_status, :payload, :reason
- def initialize(status:, message: nil, payload: {}, http_status: nil)
+ def initialize(status:, message: nil, payload: {}, http_status: nil, reason: nil)
self.status = status
self.message = message
self.payload = payload
self.http_status = http_status
+ self.reason = reason
end
def track_exception(as: StandardError, **extra_data)
@@ -41,7 +49,11 @@ class ServiceResponse
end
def to_h
- (payload || {}).merge(status: status, message: message, http_status: http_status)
+ (payload || {}).merge(
+ status: status,
+ message: message,
+ http_status: http_status,
+ reason: reason)
end
def success?
@@ -60,5 +72,5 @@ class ServiceResponse
private
- attr_writer :status, :message, :http_status, :payload
+ attr_writer :status, :message, :http_status, :payload, :reason
end