Sha256: 1873f1cd9d1a0b59bb9cf0d5084de783bbb0a384c8cfc71b83106d90bacdcf2c

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

module Houston
  module Adapters
    module TicketTracker
      class UnfuddleAdapter
        
        class << self
          
          def errors_with_parameters(project, project_id)
            return {unfuddle_project_id: ["cannot be blank"]} if project_id.blank?
            return {unfuddle_project_id: ["must be a number"]} unless project_id.to_s =~ /\d+/
            begin
              new_connection(project_id).fetch!
            rescue Unfuddle::UnauthorizedError
              return {unfuddle_project_id: ["is not a project that you have permission to access"]}
            rescue Unfuddle::InvalidResponseError => e
              return {unfuddle_project_id: ["is not a valid project"]} if e.response.status == 404
              raise $!
            end
            {}
          end
          
          def build(project, project_id)
            return Houston::Adapters::TicketTracker::NullConnection if project_id.blank?
            
            self::Connection.new new_connection(project_id)
          end
          
          def parameters
            [:unfuddle_project_id]
          end
          
        private
          
          def new_connection(project_id)
            ::Unfuddle.instance.project(project_id)
          end
          
        end
        
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
houston-core-0.5.0.beta1 app/adapters/houston/adapters/ticket_tracker/unfuddle_adapter.rb