Class: PactBroker::Matrix::ParseQuery

Inherits:
Object
  • Object
show all
Defined in:
lib/pact_broker/matrix/parse_query.rb

Class Method Summary collapse

Class Method Details

.call(query) ⇒ Object

rubocop: disable Metrics/CyclomaticComplexity rubocop: disable Metrics/MethodLength



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/pact_broker/matrix/parse_query.rb', line 9

def self.call query
  params = Rack::Utils.parse_nested_query(query)
  selectors = (params["q"] || []).collect do |i|
    parse_selector(i)
  end
  options = {}
  if params.key?("success") && params["success"].is_a?(Array)
    options[:success] = params["success"].collect do | value |
      value == "" ? nil : value == "true"
    end
  end

  if params.key?("success") && params["success"].is_a?(String)
    options[:success] = [params["success"] == "" ? nil : params["success"] == "true"]
  end

  if params.key?("latestby") && params["latestby"] != ""
    options[:latestby] = params["latestby"]
  end

  if params.key?("days") && params["days"] != ""
    options[:days] = params["days"].to_i
  end

  if params.key?("limit") && params["limit"] != ""
    options[:limit] = params["limit"]
  else
    options[:limit] = "100"
  end

  if params.key?("latest") && params["latest"] != ""
    options[:latest] = params["latest"] == "true"
  end

  if params.key?("tag") && params["tag"] != ""
    options[:tag] = params["tag"]
  end

  if params.key?("environment") && params["environment"] != ""
    options[:environment_name] = params["environment"]
  end

  if params["ignore"].is_a?(Array)
    options[:ignore_selectors] = params["ignore"].collect{ |i| parse_selector(i) }
  else
    options[:ignore_selectors] = []
  end

  return selectors, options
end

.parse_selector(i) ⇒ Object



60
61
62
63
64
65
66
67
68
69
# File 'lib/pact_broker/matrix/parse_query.rb', line 60

def self.parse_selector(i)
  p = PactBroker::Matrix::UnresolvedSelector.new
  p.pacticipant_name = i["pacticipant"] if i["pacticipant"] && i["pacticipant"] != ""
  p.pacticipant_version_number = i["version"] if i["version"] && i["version"] != ""
  p.latest = true if i["latest"] == "true"
  p.branch = i["branch"] if i["branch"] && i["branch"] != ""
  p.tag = i["tag"] if i["tag"] && i["tag"] != ""
  p.environment_name = i["environment"] if i["environment"] && i["environment"] != ""
  p
end