Module: Basecampx
- Defined in:
- lib/basecampx/resources/document.rb,
lib/basecampx/base.rb,
lib/basecampx/version.rb,
lib/basecampx/resource.rb,
lib/basecampx/relations.rb,
lib/basecampx/resources/todo.rb,
lib/basecampx/resources/event.rb,
lib/basecampx/resources/topic.rb,
lib/basecampx/resources/person.rb,
lib/basecampx/resources/comment.rb,
lib/basecampx/resources/message.rb,
lib/basecampx/resources/project.rb,
lib/basecampx/resources/calendar.rb,
lib/basecampx/resources/todo_list.rb,
lib/basecampx/resources/attachment.rb,
lib/generators/basecampx/install/install_generator.rb
Overview
Defined Under Namespace
Modules: Generators, Relations
Classes: Attachment, Calendar, Comment, Document, Event, Message, Person, Project, Resource, Todo, TodoList, Topic
Constant Summary
collapse
- VERSION =
"0.0.4"
Class Method Summary
collapse
Class Method Details
.account_endpoint ⇒ Object
21
22
23
24
25
26
27
|
# File 'lib/basecampx/base.rb', line 21
def account_endpoint
if @project.nil?
self.use!
end
"https://basecamp.com/#{@connect_details['project_id']}/api/v#{@connect_details['api_version'] || 1}"
end
|
.delete(url, params = {}) ⇒ Object
62
63
64
65
|
# File 'lib/basecampx/base.rb', line 62
def delete url, params={}
params[:method] = :delete
request url, params
end
|
.get(url, params = {}) ⇒ Object
47
48
49
50
|
# File 'lib/basecampx/base.rb', line 47
def get url, params={}
params[:method] = :get
request url, params
end
|
.handle(response) ⇒ Object
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/basecampx/base.rb', line 29
def handle response
if response.code == 200
JSON.parse(response.body)
elsif response.code == 204
true
elsif response.code == 404
raise Exception, "API can't find specified URL #{response.request.path}"
else
raise Exception, response
end
end
|
.post(url, params = {}) ⇒ Object
57
58
59
60
|
# File 'lib/basecampx/base.rb', line 57
def post url, params={}
params[:method] = :post
request url, params
end
|
.put(url, params = {}) ⇒ Object
52
53
54
55
|
# File 'lib/basecampx/base.rb', line 52
def put url, params={}
params[:method] = :put
request url, params
end
|
.request(url, params = {}) ⇒ Object
41
42
43
44
45
|
# File 'lib/basecampx/base.rb', line 41
def request url, params={}
url = url.sub /https\:\/\/basecamp\.com\/\d*\/api\/v1/, ''
handle HTTParty.send(params[:method] || :get, "#{account_endpoint}/#{url.sub(/^\//, '')}", request_credentials )
end
|
.use!(project = :default) ⇒ Object
3
4
5
6
7
|
# File 'lib/basecampx/base.rb', line 3
def use! project=:default
@project = project
details = YAML.load(File.read(File.join(Rails.root, 'config', 'basecampx.yaml')))
@connect_details = details[project.to_s]
end
|
.use_custom!(username, password, project_id, api_version = 1) ⇒ Object
9
10
11
12
13
14
15
16
17
|
# File 'lib/basecampx/base.rb', line 9
def use_custom! username, password, project_id, api_version=1
@project = :custom
@connect_details = {
'project_id' => project_id,
'username' => username,
'password' => password,
'api_version' => api_version
}
end
|