Project

General

Profile

Download (1.31 KB) Statistics
| Branch: | Tag: | Revision:

hammer-cli-csv / lib / hammer_cli_csv / headpin_api.rb @ d76bdbc0

1
require 'csv'
2

    
3
module HammerCLICsv
4
  class HeadpinApi
5
    def initialize(config)
6
      @server = config[:server]
7
      @username = config[:username]
8
      @password = config[:password]
9
    end
10

    
11
    def get(name)
12
      url = "#{@server}/api/#{name}"
13
      uri = URI(url)
14
      nethttp = Net::HTTP.new(uri.host, uri.port)
15
      nethttp.use_ssl = uri.scheme == 'https'
16
      nethttp.verify_mode = OpenSSL::SSL::VERIFY_NONE
17
      results = nethttp.start do |http|
18
        request = Net::HTTP::Get.new uri.request_uri
19
        request.basic_auth(@username, @password)
20
        response = http.request(request)
21
        JSON.parse(response.body)
22
      end
23
      results
24
    end
25

    
26
    def environment(id)
27
      @environments ||= {}
28
      environment = @environments[id]
29
      if environment.nil?
30
        environment = get("environments/#{id}")
31
        raise environment['displayMessage'] if environment['displayMessage']
32
        @environments[id] = environment
33
      end
34

    
35
      return environment
36
    end
37

    
38
    def content_view(id)
39
      @content_views ||= {}
40
      content_view = @content_views[id]
41
      if content_view.nil?
42
        content_view = get("content_views/#{id}")
43
        raise content_view['displayMessage'] if content_view['displayMessage']
44
        @content_views[id] = content_view
45
      end
46

    
47
      return content_view
48
    end
49
  end
50
end