From 6b50511ede002bf8bead925786826dfa0b1ab53d Mon Sep 17 00:00:00 2001 From: Aurélio A. Heckert Date: Sat, 13 Jun 2015 01:29:40 +0000 Subject: [PATCH] API response with error block --- lib/noosfero/api/entity.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+), 0 deletions(-) diff --git a/lib/noosfero/api/entity.rb b/lib/noosfero/api/entity.rb index 6a0d869..401cb60 100644 --- a/lib/noosfero/api/entity.rb +++ b/lib/noosfero/api/entity.rb @@ -1,5 +1,26 @@ class Noosfero::API::Entity < Grape::Entity + def initialize(object, options = {}) + object = nil if object.is_a? Exception + super object, options + end + + def self.represent(objects, options = {}) + if options[:is_inner_data] + super objects, options + else + data = super objects, options.merge(is_inner_data: true) + if objects.is_a? Exception + data.merge ok: false, error: { + type: objects.class.name, + message: objects.message + } + else + data.merge ok: true, error: { type: 'Success', message: '' } + end + end + end + def self.fields_condition(fields) lambda do |object, options| return true if options[:fields].blank? -- libgit2 0.21.2