Class: JIRA::JIRAService

Inherits:
Handsoap::Service
  • Object
show all
Includes:
RemoteAPI, RemoteAPIAdditions
Defined in:
lib/jiraSOAP/JIRAservice.rb

Overview

TODO:

consider adding a finalizer that will try to logout

Note:

HTTPS is not supported in this version.

Interface to the JIRA endpoint server.

Due to limitations in Handsoap::Service, there can only be one endpoint. You can have multiple instances of that one endpoint if you would like; but if you try to set a differnt endpoint for a new instance you will end up messing up any other instances currently being used.

It is best to treat this class as a singleton, but it is not enforced in case you want to be able to login as multiple users to the same endpoint.

Constant Summary

Constants included from RemoteAPI

RemoteAPI::RESPONSE_XPATH

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from RemoteAPIAdditions

#get_custom_field_with_name

Methods included from RemoteAPI

#add_base64_encoded_attachments_to_issue_with_key, #add_comment_to_issue_with_key, #add_version_to_project_with_key, #create_issue_with_issue, #create_project_role_with_role, #create_project_with_project, #create_user, #delete_project_avatar_with_id, #delete_project_role, #delete_project_with_key, #delete_user_with_name, #get_attachments_for_issue_with_key, #get_comment_with_id, #get_comments_for_issue_with_key, #get_custom_fields, #get_favourite_filters, #get_issue_count_for_filter_with_id, #get_issue_types, #get_issue_types_for_project_with_id, #get_issue_with_id, #get_issue_with_key, #get_issues_from_filter_with_id, #get_issues_from_jql_search, #get_notification_schemes, #get_priorities, #get_project_avatar_for_key, #get_project_avatars_for_key, #get_project_including_schemes_with_id, #get_project_role_with_id, #get_project_roles, #get_project_with_id, #get_project_with_key, #get_projects_without_schemes, #get_resolution_date_for_issue_with_id, #get_resolution_date_for_issue_with_key, #get_resolutions, #get_server_configuration, #get_server_info, #get_statuses, #get_subtask_issue_types, #get_subtask_issue_types_for_project_with_id, #get_user_with_name, #get_versions_for_project, #login, #logout, #project_role_name_unique?, #refresh_custom_fields, #release_state_for_version_for_project, #set_archive_state_for_version_for_project, #set_new_project_avatar_for_project_with_key, #set_project_avatar_for_project_with_key, #update_comment, #update_issue, #update_project_role_with_role, #update_project_with_project

Constructor Details

#initialize(endpoint_url) ⇒ JIRAService

Returns a new instance of JIRAService.

Parameters:

  • endpoint_url (String, URL)

    for the JIRA server



37
38
39
40
41
42
43
# File 'lib/jiraSOAP/JIRAservice.rb', line 37

def initialize endpoint_url
  @endpoint_url = endpoint_url
  JIRA::JIRAService.endpoint({
    uri:"#{endpoint_url.to_s}/rpc/soap/jirasoapservice-v2",
    version:2
  })
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args) ⇒ nil

Deprecated.

This will be removed in v1.0 when the API is stable.

An extra note for users when things break.

Returns:

  • (nil)


48
49
50
51
52
53
# File 'lib/jiraSOAP/JIRAservice.rb', line 48

def method_missing method, *args
  message  = "#{method} is not a valid method. Check the documentation; the "
  message << 'API is not stabale yet and the method name likely changed.'
  STDERR.puts message
  super method, *args
end

Instance Attribute Details

#auth_tokenString (readonly)

Returns:

  • (String)


17
18
19
# File 'lib/jiraSOAP/JIRAservice.rb', line 17

def auth_token
  @auth_token
end

#endpoint_urlURL (readonly)

Returns:



23
24
25
# File 'lib/jiraSOAP/JIRAservice.rb', line 23

def endpoint_url
  @endpoint_url
end

#userString (readonly)

Returns:

  • (String)


20
21
22
# File 'lib/jiraSOAP/JIRAservice.rb', line 20

def user
  @user
end

Class Method Details

.instance_with_endpoint(url, user, password) ⇒ JIRA::JIRAService

Initialize and log in.

Parameters:

  • url (String, URL)

    URL for the JIRA server

  • user (String)

    JIRA user name to login with

  • password (String)

Returns:



30
31
32
33
34
# File 'lib/jiraSOAP/JIRAservice.rb', line 30

def self.instance_with_endpoint url, user, password
  jira = JIRA::JIRAService.new url
  jira. user, password
  jira
end