Class: BacklogApiClient::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/backlog-api-client/space.rb,
lib/backlog-api-client/users.rb,
lib/backlog-api-client/client.rb,
lib/backlog-api-client/issues.rb

Defined Under Namespace

Classes: Issues, Space, Users

Constant Summary collapse

API_PATH =
'/api/v2'

Instance Method Summary collapse

Constructor Details

#initialize(space_name, api_key) ⇒ Client

Returns a new instance of Client.



7
8
9
10
11
12
# File 'lib/backlog-api-client/client.rb', line 7

def initialize(space_name, api_key)
  @space_name = space_name
  @api_key = { apiKey: api_key }
  backlog_url = (space_name =~ %r{^https?://.*} ? space_name : "https://#{space_name}")
  @http_cli = Faraday.new(url: "#{backlog_url}#{API_PATH}")
end

Instance Method Details

#delete(resource_path) ⇒ Object



49
50
51
# File 'lib/backlog-api-client/client.rb', line 49

def delete(resource_path)
  @http_cli.delete "#{resource_path}#{to_request_params(@api_key)}"
end

#file_upload(resource_path, file) ⇒ Object



43
44
45
46
47
# File 'lib/backlog-api-client/client.rb', line 43

def file_upload(resource_path, file)
  @file_upload_cli ||= file_upload_cli
  payload = { file: Faraday::UploadIO.new(file, 'application/octet-stream') }
  @file_upload_cli.post "#{resource_path}#{to_request_params(@api_key)}", payload
end

#get(resource_path, params = {}) ⇒ Object



14
15
16
17
# File 'lib/backlog-api-client/client.rb', line 14

def get(resource_path, params = {})
  params.merge!(@api_key)
  @http_cli.get "#{resource_path}#{to_request_params(params)}"
end

#issuesObject



57
58
59
# File 'lib/backlog-api-client/client.rb', line 57

def issues
  BacklogApiClient::Client::Issues.new(self)
end

#patch(resource_path, request = {}) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/backlog-api-client/client.rb', line 27

def patch(resource_path, request = {})
  @http_cli.patch do |req|
    req.url "#{resource_path}#{to_request_params(@api_key)}"
    req.headers['Content-Type'] = 'application/x-www-form-urlencoded'
    req.body = build_request_body(request)
  end
end

#post(resource_path, request = {}) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/backlog-api-client/client.rb', line 19

def post(resource_path, request = {})
  @http_cli.post do |req|
    req.url "#{resource_path}#{to_request_params(@api_key)}"
    req.headers['Content-Type'] = 'application/x-www-form-urlencoded'
    req.body = build_request_body(request)
  end
end

#put(resource_path, request = {}) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/backlog-api-client/client.rb', line 35

def put(resource_path, request = {})
  @http_cli.put do |req|
    req.url "#{resource_path}#{to_request_params(@api_key)}"
    req.headers['Content-Type'] = 'application/x-www-form-urlencoded'
    req.body = build_request_body(request)
  end
end

#spaceObject



53
54
55
# File 'lib/backlog-api-client/client.rb', line 53

def space
  BacklogApiClient::Client::Space.new(self)
end

#usersObject



61
62
63
# File 'lib/backlog-api-client/client.rb', line 61

def users
  BacklogApiClient::Client::Users.new(self)
end