require 'json' module Mks module Common class MethodResponse attr_accessor :success, :message, :data, :errors, :total def initialize(success = nil, message = nil, data = nil, errors = [], total = nil) @success = success @message = message @data = data @errors = errors @total = total end def self.success_response(data, msg = nil) names = %w(ActiveRecord::Relation ActiveRecord::Associations::CollectionProxy) return MethodResponse.new(true, msg, nil, nil, nil) if data.nil? if data.kind_of?(Array) || names.include?(data.class.name) return MethodResponse.new(true, msg, [], nil, nil) if data.count.zero? return MethodResponse.new(true, msg, data[0].json(data), nil, data.count) else return MethodResponse.new(true, msg, data.json, nil, nil) end end def self.error_response(data) errors = data.is_a?(String) ? data : data.errors return MethodResponse.new(false,nil, nil, errors, nil) end def self.failure_response(data) data.errors.details end end end end