Class: Wsapi::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/wsapi/session.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(session_id, opts = {}) ⇒ Session

Returns a new instance of Session.



40
41
42
43
44
45
# File 'lib/wsapi/session.rb', line 40

def initialize(session_id, opts = {})
  @api_version = opts[:version] || "3.0"
  @workspace_id = opts[:workspace_id]
  @timeout = opts[:timeout]
  @conn = connection(session_id)
end

Instance Attribute Details

#workspace_idObject

Returns the value of attribute workspace_id.



38
39
40
# File 'lib/wsapi/session.rb', line 38

def workspace_id
  @workspace_id
end

Instance Method Details

#get_current_userObject



82
83
84
85
# File 'lib/wsapi/session.rb', line 82

def get_current_user
  response = wsapi_get(wsapi_resource_url("User"))
  Mapper.get_object(response)
end

#get_editors(project_id, opts = {}) ⇒ Object



114
115
116
117
118
# File 'lib/wsapi/session.rb', line 114

def get_editors(project_id, opts = {})
  fetch_with_pages(opts) do |page_query|
    wsapi_get(wsapi_resource_url("Project/#{project_id}/Editors"), opts.merge(page_query))
  end
end

#get_project(id) ⇒ Object



77
78
79
80
# File 'lib/wsapi/session.rb', line 77

def get_project(id)
  response = wsapi_get(wsapi_resource_url("Project/#{id}"))
  Mapper.get_object(response)
end

#get_projects(opts = {}) ⇒ Object



71
72
73
74
75
# File 'lib/wsapi/session.rb', line 71

def get_projects(opts = {})
  fetch_with_pages(opts) do |page_query|
    wsapi_get(wsapi_resource_url("Project"), opts.merge(page_query))
  end
end

#get_subscription(id) ⇒ Object



61
62
63
64
# File 'lib/wsapi/session.rb', line 61

def get_subscription(id)
  response = wsapi_get(wsapi_resource_url("Subscription/#{id}"))
  Mapper.get_object(response)
end

#get_subscription_by_subscription_id(subscription_id) ⇒ Object



66
67
68
69
# File 'lib/wsapi/session.rb', line 66

def get_subscription_by_subscription_id(subscription_id)
  response = wsapi_get(wsapi_resource_url("Subscription"), query: "(SubscriptionId = #{subscription_id})", pagesize: 1)
  (Mapper.get_objects(response) ||[]).first
end

#get_team_members(project_id, opts = {}) ⇒ Object



108
109
110
111
112
# File 'lib/wsapi/session.rb', line 108

def get_team_members(project_id, opts = {})
  fetch_with_pages(opts) do |page_query|
    wsapi_get(wsapi_resource_url("Project/#{project_id}/TeamMembers"), opts.merge(page_query))
  end
end

#get_user(id) ⇒ Object



98
99
100
101
# File 'lib/wsapi/session.rb', line 98

def get_user(id)
  response = wsapi_get(wsapi_resource_url("User/#{id}"))
  Mapper.get_object(response)
end

#get_user_by_username(username) ⇒ Object



103
104
105
106
# File 'lib/wsapi/session.rb', line 103

def get_user_by_username(username)
  response = wsapi_get(wsapi_resource_url("User"), query: "(UserName = \"#{username}\")", pagesize: 1)
  (Mapper.get_objects(response) ||[]).first
end

#get_user_subscriptionObject



56
57
58
59
# File 'lib/wsapi/session.rb', line 56

def get_user_subscription
  response = wsapi_get(wsapi_resource_url("Subscription"))
  Mapper.get_object(response)
end

#get_users(query = nil) ⇒ Object



87
88
89
90
91
92
93
94
95
96
# File 'lib/wsapi/session.rb', line 87

def get_users(query = nil)
  fetch_with_pages do |page_query|
    if query
      query_hash = { query: "(#{query})" }
      wsapi_get(wsapi_resource_url("User"), query_hash.merge(page_query))
    else
      wsapi_get(wsapi_resource_url("Users"), page_query)
    end
  end
end

#setup_refresh_token(client_id, client_secret, refresh_token, &block) ⇒ Object



47
48
49
50
51
52
53
54
# File 'lib/wsapi/session.rb', line 47

def setup_refresh_token(client_id, client_secret, refresh_token, &block)
  @oauth2 = {
    client_id: client_id,
    client_secret: client_secret,
    refresh_token: refresh_token,
    refresh_token_updated: block
  }
end

#update_artifact(type, id, update_hash) ⇒ Object



120
121
122
123
# File 'lib/wsapi/session.rb', line 120

def update_artifact(type, id, update_hash)
  response = wsapi_post(wsapi_resource_url("#{type}/#{id}"), "#{type}" => update_hash)
  Mapper.get_object(response)
end