Class: ZephyrRuby::Client

Inherits:
Object
  • Object
show all
Includes:
Resource::Automations, Resource::Environments, Resource::Folders, Resource::HealthCheck, Resource::IssueLinks, Resource::Links, Resource::Priorities, Resource::Projects, Resource::Statuses, Resource::TestCases, Resource::TestCycles, Resource::TestExecutions, Resource::TestPlans, Connection
Defined in:
lib/zephyr_ruby/client.rb,
lib/zephyr_ruby/resource/links.rb,
lib/zephyr_ruby/resource/folders.rb,
lib/zephyr_ruby/resource/projects.rb,
lib/zephyr_ruby/resource/statuses.rb,
lib/zephyr_ruby/resource/priorities.rb,
lib/zephyr_ruby/resource/test_cases.rb,
lib/zephyr_ruby/resource/test_plans.rb,
lib/zephyr_ruby/resource/automations.rb,
lib/zephyr_ruby/resource/healthcheck.rb,
lib/zephyr_ruby/resource/issue_links.rb,
lib/zephyr_ruby/resource/test_cycles.rb,
lib/zephyr_ruby/resource/environments.rb,
lib/zephyr_ruby/resource/test_executions.rb

Overview

Client provides methods for interacting with all zephyr scale endpoints

Defined Under Namespace

Modules: Resource

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Connection

#delete, #get, #post, #put

Methods included from Resource::TestPlans

#create_testplan, #create_testplan_issuelink, #create_testplan_testcycle_link, #create_testplan_weblink, #get_testplan, #list_testplans

Methods included from Resource::TestExecutions

#create_test_execution, #create_test_execution_issue_link, #create_test_execution_link, #get_test_execution, #get_test_execution_links, #get_test_steps, #list_test_executions, #sync_test_execution, #update_test_execution, #update_test_steps

Methods included from Resource::TestCycles

#create_testcycle, #create_testcycle_issue_link, #create_testcycle_web_link, #get_testcycle, #get_testcycle_links, #list_testcycles, #update_testcycle

Methods included from Resource::TestCases

#create_testcase, #create_testcase_issue_link, #create_testcase_testscript, #create_testcase_teststeps, #create_testcase_web_link, #get_testcase, #get_testcase_links, #get_testcase_testscript, #get_testcase_teststeps, #get_testcase_version, #list_testcase_versions, #list_testcases, #update_testcase

Methods included from Resource::Statuses

#create_status, #get_status, #list_statuses, #update_status

Methods included from Resource::Projects

#get_project, #list_projects

Methods included from Resource::Priorities

#create_priority, #get_priority, #list_priorities, #update_priority

Methods included from Resource::Links

#delete_link

Methods included from Resource::IssueLinks

#get_issuelinks_testcases, #get_issuelinks_testplans

Methods included from Resource::HealthCheck

#healthcheck_status

Methods included from Resource::Folders

#create_folder, #get_folder, #list_folders

Methods included from Resource::Environments

#get_environment, #list_environments

Methods included from Resource::Automations

#create_automation_cucumber, #create_automation_custom, #create_automation_junit, #get_zip_file

Constructor Details

#initialize(api_token) ⇒ Client

Returns a new instance of Client.



40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/zephyr_ruby/client.rb', line 40

def initialize(api_token)
  @base_url = 'https://api.zephyrscale.smartbear.com/v2'
  @api_token = api_token
  @client = Faraday.new(@base_url) do |f|
    f.request :multipart
    f.request :url_encoded
    f.adapter Faraday.default_adapter
  end
  @headers = {
    'Authorization' => "Bearer #{@api_token}",
    'Content-Type' => 'application/json'
  }
end

Instance Attribute Details

#base_urlObject (readonly)

Returns the value of attribute base_url.



54
55
56
# File 'lib/zephyr_ruby/client.rb', line 54

def base_url
  @base_url
end

Instance Method Details

#build_middlewareObject



61
62
63
64
65
# File 'lib/zephyr_ruby/client.rb', line 61

def build_middleware
  Faraday::RackBuilder.new do |builder|
    builder.response :json
  end
end

#request(method, path, params, headers = @headers) ⇒ Object



56
57
58
59
# File 'lib/zephyr_ruby/client.rb', line 56

def request(method, path, params, headers = @headers)
  path = URI.parse("#{@base_url}#{path}").normalize.to_s
  @client.send(method, path, params, headers)
end