Module: TeamworkApi::API::Projects
- Included in:
- Client
- Defined in:
- lib/teamwork_api/api/projects.rb
Overview
Client methods for Projects developer.teamwork.com/projects/projects
Constant Summary collapse
- OPTIONAL_GET_ATTRIBUTES =
[ :status, :updated_after_date, :order_by, :created_after_date, :created_after_time, :cat_id, :include_people, :include_project_owner, :page, :page_size, :order_mode, :only_starred_projects, :company_id, :project_owner_ids, :search_term, :get_deleted, :include_tags, :user_id, :updated_after_date_time ].freeze
- OPTIONAL_CREATE_ATTRIBUTES =
[ :description, :start_date, :end_date, :company_id, :new_company, :'harvest-timers-enabled', :tags, :reply_by_email_enabled, :privacy_enabled ].freeze
- OPTIONAL_UPDATE_ATTRIBUTES =
[ :name, :description, :start_date, :end_date, :company_id, :new_company, :status, :'category-id', :'harvest-timers-enabled', :tags, :reply_by_email_enabled, :privacy_enabled, :'use-tasks', :'use-messages', :'use-time', :'use-risk-register', :'use-billing', :'use-milestones', :'use-files', :'use-notebook', :'use-links', :default_privacy ].freeze
Instance Method Summary collapse
- #create_project(args) ⇒ Object
- #delete_project(project_id) ⇒ Object
- #project(project_id, args = {}) ⇒ Object
- #projects(args = {}) ⇒ Object
- #update_project(project_id, args) ⇒ Object
Instance Method Details
#create_project(args) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/teamwork_api/api/projects.rb', line 65 def create_project(args) args = API.params(args) .required(:name) .default('category-id': '0') .optional(*OPTIONAL_CREATE_ATTRIBUTES) .to_h response = post 'projects.json', project: args response['id']&.to_i end |
#delete_project(project_id) ⇒ Object
95 96 97 |
# File 'lib/teamwork_api/api/projects.rb', line 95 def delete_project(project_id) delete "/projects/#{project_id}.json" end |
#project(project_id, args = {}) ⇒ Object
83 84 85 86 87 |
# File 'lib/teamwork_api/api/projects.rb', line 83 def project(project_id, args = {}) args = { project: args } unless args.empty? response = get "/projects/#{project_id}.json", args response.body['project'] end |
#projects(args = {}) ⇒ Object
89 90 91 92 93 |
# File 'lib/teamwork_api/api/projects.rb', line 89 def projects(args = {}) args = API.params(args).optional(*OPTIONAL_GET_ATTRIBUTES).to_h response = get '/projects.json', args response.body['projects'] end |
#update_project(project_id, args) ⇒ Object
77 78 79 80 81 |
# File 'lib/teamwork_api/api/projects.rb', line 77 def update_project(project_id, args) args = API.params(args).optional(*OPTIONAL_UPDATE_ATTRIBUTES).to_h put "projects/#{project_id}.json", project: args end |