Sha256: 04ac154b9e86b61a52c6783e68a4f250eda61a748cb3b7b08e651c81bd8816e2

Contents?: true

Size: 1.8 KB

Versions: 5

Compression:

Stored size: 1.8 KB

Contents

module Xcal
  module Parktronic
    module Routes

      module StackChanges

        # Fetches stack changes
        #
        # ==== Parameters
        # * +element+ stack change element
        # * +time_range+ time range interval
        # * +page+ page number, defaults to 1
        # * +per_page+ per page value, defaults to 100
        #
        # ==== Examples
        #   api.get_paged_stack_changes
        #   api.stack_changes(element: 'TEST', page: 1, per_page: 5)
        def get_paged_stack_changes(args = {})
          args.merge!(access_token: access_token)
          args[:time_range] = args[:time_range].to_json if args[:time_range]

          response = get_response("/#{api_version}/stack_changes?#{URI.encode_www_form(args)}")

          generic_response = Xcal::Parktronic::GenericResponse.new(response.body)
          if response.code == '200' && generic_response.has_key?(:stack_changes)
            generic_response.stack_changes.map { |stack| Xcal::Parktronic::GenericResponse.new(stack.stack_change, self) }
          else
            generic_response
          end
        end
        alias :stack_changes :get_paged_stack_changes


        # Posts new stack change
        #
        # ==== Parameters
        # * +stack_change+ hash of Stack Change data.
        #
        # ==== Examples
        #   api.post_stack_change( ticket_id: 'CHANGE-14725', ticket_summary: 'test', element: 'TEST' )
        def post_stack_change(stack_change = {})
          request = Net::HTTP::Post.new("/#{api_version}/stack_changes", 'Content-Type' => 'application/json')
          request.body = { access_token: access_token, stack_change: stack_change }.to_json
          response = http.start { |net| net.request(request) }

          Xcal::Parktronic::GenericResponse.new(response.body)
        end
      end

    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
xcal-parktronic-1.3.0 lib/xcal/parktronic/routes/stack_changes.rb
xcal-parktronic-1.2.0 lib/xcal/parktronic/routes/stack_changes.rb
xcal-parktronic-1.1.1 lib/xcal/parktronic/routes/stack_changes.rb
xcal-parktronic-1.0.2 lib/xcal/parktronic/routes/stack_changes.rb
xcal-parktronic-1.0.1 lib/xcal/parktronic/routes/stack_changes.rb