Class: Tickspot::Client
- Inherits:
-
Object
- Object
- Tickspot::Client
- Includes:
- HTTParty
- Defined in:
- lib/tickspot/client.rb
Instance Attribute Summary collapse
-
#company ⇒ Object
readonly
Returns the value of attribute company.
-
#email ⇒ Object
readonly
Returns the value of attribute email.
-
#password ⇒ Object
readonly
Returns the value of attribute password.
Instance Method Summary collapse
-
#clients(options = {}) ⇒ Object
The clients method will return a list of all clients and can only be accessed by admins on the subscription.
-
#clients_projects_tasks ⇒ Object
The method will return a list of all clients, projects, and tasks that are assigned to the user and available for time entries (open).
-
#create_entry(options = {}) ⇒ Object
The create_entry method will accept a time entry for a specified task_id and return the created entry along with the task and project stats.
-
#entries(options = {}) ⇒ Object
The entries method will return a list of all entries that meet the provided criteria.
-
#initialize(company = Tickspot.company, email = Tickspot.email, password = Tickspot.password) ⇒ Client
constructor
A new instance of Client.
-
#projects(options = {}) ⇒ Object
The projects method will return projects filtered by the parameters provided.
-
#recent_tasks ⇒ Object
The users method will return a list of the most recently used tasks.
-
#tasks(options = {}) ⇒ Object
The tasks method will return a list of all the current tasks for a specified project and can only be accessed by admins on the subscription.
-
#update_entry(options = {}) ⇒ Object
The update_entry method will allow you to modify attributes of an existing entry.
-
#users(options = {}) ⇒ Object
The users method will return a list of users.
Constructor Details
#initialize(company = Tickspot.company, email = Tickspot.email, password = Tickspot.password) ⇒ Client
Returns a new instance of Client.
10 11 12 13 14 15 16 |
# File 'lib/tickspot/client.rb', line 10 def initialize(company = Tickspot.company, email = Tickspot.email, password = Tickspot.password) @company = company @email = email @password = password self.class.base_uri "https://#{@company}.tickspot.com/api" end |
Instance Attribute Details
#company ⇒ Object (readonly)
Returns the value of attribute company.
8 9 10 |
# File 'lib/tickspot/client.rb', line 8 def company @company end |
#email ⇒ Object (readonly)
Returns the value of attribute email.
8 9 10 |
# File 'lib/tickspot/client.rb', line 8 def email @email end |
#password ⇒ Object (readonly)
Returns the value of attribute password.
8 9 10 |
# File 'lib/tickspot/client.rb', line 8 def password @password end |
Instance Method Details
#clients(options = {}) ⇒ Object
The clients method will return a list of all clients and can only be accessed by admins on the subscription.
Optional paramaters:
open => [true|false]
23 24 25 |
# File 'lib/tickspot/client.rb', line 23 def clients( = {}) post("/clients", )["clients"].map {|obj| Hashie::Mash.new obj } end |
#clients_projects_tasks ⇒ Object
The method will return a list of all clients, projects, and tasks that are assigned to the user and available for time entries (open).
58 59 60 |
# File 'lib/tickspot/client.rb', line 58 def clients_projects_tasks post("/clients_projects_tasks")["clients"].map {|obj| Hashie::Mash.new obj } end |
#create_entry(options = {}) ⇒ Object
The create_entry method will accept a time entry for a specified task_id and return the created entry along with the task and project stats.
Require parameters:
task_id
hours
date
Optional parameters:
notes
114 115 116 |
# File 'lib/tickspot/client.rb', line 114 def create_entry( = {}) post("/create_entry", ) end |
#entries(options = {}) ⇒ Object
The entries method will return a list of all entries that meet the provided criteria. Either a start and end date have to be provided or an updated_at time. The entries will be in the start and end date range or they will be after the updated_at time depending on what criteria is provided. Each of the optional parameters will further filter the response.
Required parameters:
start_date
end_date
OR
updated_at
Optional Parameters:
project_id
task_id
user_id
user_email
client_id
entry_billable [true|false]
billed [true|false]
83 84 85 |
# File 'lib/tickspot/client.rb', line 83 def entries( = {}) post("/entries", )["entries"].map {|obj| Hashie::Mash.new obj } end |
#projects(options = {}) ⇒ Object
The projects method will return projects filtered by the parameters provided. Admin can see all projects on the subscription, while non-admins can only access the projects they are assigned.
Optional parameters:
project_id
open [true|false]
project_billable [true|false]
36 37 38 |
# File 'lib/tickspot/client.rb', line 36 def projects( = {}) post("/projects", )["projects"].map {|obj| Hashie::Mash.new obj } end |
#recent_tasks ⇒ Object
The users method will return a list of the most recently used tasks. This is useful for generating quick links for a user to select a task they have been using recently.
90 91 92 |
# File 'lib/tickspot/client.rb', line 90 def recent_tasks post("/recent_tasks")['recent_tasks'].map {|obj| Hashie::Mash.new obj } end |
#tasks(options = {}) ⇒ Object
The tasks method will return a list of all the current tasks for a specified project and can only be accessed by admins on the subscription.
Required parameters:
project_id
Optional Parameters:
task_id
open [true|false]
task_billable [true|false]
51 52 53 |
# File 'lib/tickspot/client.rb', line 51 def tasks( = {}) post("/tasks", )["tasks"].map {|obj| Hashie::Mash.new obj } end |
#update_entry(options = {}) ⇒ Object
The update_entry method will allow you to modify attributes of an existing entry. The only required parameter is the id of the entry. Additional parameters must be provided for any attribute that you wish to update. For example, if you are only changing the billed attribute, your post should only include the required parameters and the billed parameter.
Require parameters:
id
Optional parameters:
hours
date
billed
task_id
user_id
notes
135 136 137 |
# File 'lib/tickspot/client.rb', line 135 def update_entry( = {}) post("/update_entry", ) end |
#users(options = {}) ⇒ Object
The users method will return a list of users.
Optional parameters:
project_id
99 100 101 |
# File 'lib/tickspot/client.rb', line 99 def users( = {}) post("/users", )['users'].map {|obj| Hashie::Mash.new obj } end |