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
# File 'lib/backlog-api-client/client.rb', line 7

def initialize(space_name, api_key)
  @space_name = space_name
  @api_key = { apiKey: api_key }
  @http_cli = Faraday.new(url: "https://#{space_name}#{API_PATH}")
end

Instance Method Details

#delete(resource_path) ⇒ Object



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

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

#file_upload(resource_path, file) ⇒ Object



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

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



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

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

#issuesObject



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

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

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



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

def patch(resource_path, request_body = {})
  @http_cli.patch do |req|
    req.url "#{resource_path}#{to_request_params(@api_key)}"
    req.headers['Content-Type'] = 'application/json'
    req.body = request_body.to_json
  end
end

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



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

def post(resource_path, request_body = {})
  @http_cli.post do |req|
    req.url "#{resource_path}#{to_request_params(@api_key)}"
    req.headers['Content-Type'] = 'application/json'
    req.body = request_body.to_json
  end
end

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



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

def put(resource_path, request_body = {})
  @http_cli.put do |req|
    req.url "#{resource_path}#{to_request_params(@api_key)}"
    req.headers['Content-Type'] = 'application/json'
    req.body = request_body.to_json
  end
end

#spaceObject



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

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

#usersObject



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

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