Sha256: fd58537eb21da695c6cf1e280fed8cb984e61f6a0abe6f374ddbec903f69e569

Contents?: true

Size: 1.05 KB

Versions: 12

Compression:

Stored size: 1.05 KB

Contents

module RestPack::Service
  class Command < Mutations::Command
    attr_accessor :response

    def run
      @response = Response.new

      begin
        init
        mutation = super

        if mutation.errors
          mutation.errors.message.each do |error|
            @response.add_error(error[0], error[1].gsub(error[0].capitalize, ''))
          end

          @response.status ||= :unprocessable_entity
        else
          @response.status ||= :ok
        end

        if @response.status == :ok
          @response.result = mutation.result if mutation.result
        end
      rescue Exception => e
        p e.message #TODO: GJ: logging

        @response.add_error(:base, 'Service Error')
        @response.status = :internal_service_error
      end

      @response
    end

    def init
    end

    def status(status)
      @response.status = status
    end

    def valid?
      !has_errors?
    end

    def service_error(message)
      field_error :base, message
    end

    def field_error(key, message)
      add_error key, key, message
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
restpack_service-0.0.36 lib/restpack_service/command.rb
restpack_service-0.0.35 lib/restpack_service/command.rb
restpack_service-0.0.34 lib/restpack_service/command.rb
restpack_service-0.0.33 lib/restpack_service/command.rb
restpack_service-0.0.32 lib/restpack_service/command.rb
restpack_service-0.0.31 lib/restpack_service/command.rb
restpack_service-0.0.30 lib/restpack_service/command.rb
restpack_service-0.0.29 lib/restpack_service/command.rb
restpack_service-0.0.28 lib/restpack_service/command.rb
restpack_service-0.0.27 lib/restpack_service/command.rb
restpack_service-0.0.26 lib/restpack_service/command.rb
restpack_service-0.0.25 lib/restpack_service/command.rb