Class: Basecamp::Services::ProjectsService
- Inherits:
-
BaseService
- Object
- BaseService
- Basecamp::Services::ProjectsService
- Defined in:
- lib/basecamp/generated/services/projects_service.rb
Overview
Service for Projects operations
Instance Method Summary collapse
-
#archive(project_id:) ⇒ void
Archive a project, removing it from the active project list (returns 204 No Content).
-
#create(name:, description: nil) ⇒ Hash
Create a new project.
-
#get(project_id:) ⇒ Hash
Get a single project by id.
-
#list(status: nil, page: nil, max_items: nil) ⇒ ListEnumerator<Hash>
List projects (active by default; optionally archived/trashed).
-
#trash(project_id:) ⇒ void
Trash a project (returns 204 No Content).
-
#unarchive(project_id:) ⇒ void
Restore a project to active status from trash as well as from the archive (returns 204 No Content).
-
#update(project_id:, name:, description: nil, admissions: nil, schedule_attributes: nil) ⇒ Hash
Update an existing project.
Constructor Details
This class inherits a constructor from Basecamp::Services::BaseService
Instance Method Details
#archive(project_id:) ⇒ void
This method returns an undefined value.
Archive a project, removing it from the active project list (returns 204 No Content).
77 78 79 80 81 82 |
# File 'lib/basecamp/generated/services/projects_service.rb', line 77 def archive(project_id:) with_operation(service: "projects", operation: "archive", is_mutation: true, project_id: project_id) do http_put("/projects/#{project_id}/status/archived.json") nil end end |
#create(name:, description: nil) ⇒ Hash
Create a new project
26 27 28 29 30 |
# File 'lib/basecamp/generated/services/projects_service.rb', line 26 def create(name:, description: nil) with_operation(service: "projects", operation: "create", is_mutation: true) do http_post("/projects.json", body: compact_params(name: name, description: description)).json end end |
#get(project_id:) ⇒ Hash
Get a single project by id
35 36 37 38 39 |
# File 'lib/basecamp/generated/services/projects_service.rb', line 35 def get(project_id:) with_operation(service: "projects", operation: "get", is_mutation: false, project_id: project_id) do http_get("/projects/#{project_id}", operation: "GetProject").json end end |
#list(status: nil, page: nil, max_items: nil) ⇒ ListEnumerator<Hash>
List projects (active by default; optionally archived/trashed)
15 16 17 18 19 20 |
# File 'lib/basecamp/generated/services/projects_service.rb', line 15 def list(status: nil, page: nil, max_items: nil) wrap_paginated(service: "projects", operation: "list", is_mutation: false) do params = compact_query_params(status: status, page: page) paginate("/projects.json", params: params, operation: "ListProjects", max_items: max_items) end end |
#trash(project_id:) ⇒ void
This method returns an undefined value.
Trash a project (returns 204 No Content)
57 58 59 60 61 62 |
# File 'lib/basecamp/generated/services/projects_service.rb', line 57 def trash(project_id:) with_operation(service: "projects", operation: "trash", is_mutation: true, project_id: project_id) do http_delete("/projects/#{project_id}") nil end end |
#unarchive(project_id:) ⇒ void
This method returns an undefined value.
Restore a project to active status from trash as well as from the archive (returns 204 No Content).
67 68 69 70 71 72 |
# File 'lib/basecamp/generated/services/projects_service.rb', line 67 def unarchive(project_id:) with_operation(service: "projects", operation: "unarchive", is_mutation: true, project_id: project_id) do http_put("/projects/#{project_id}/status/active.json") nil end end |
#update(project_id:, name:, description: nil, admissions: nil, schedule_attributes: nil) ⇒ Hash
Update an existing project
48 49 50 51 52 |
# File 'lib/basecamp/generated/services/projects_service.rb', line 48 def update(project_id:, name:, description: nil, admissions: nil, schedule_attributes: nil) with_operation(service: "projects", operation: "update", is_mutation: true, project_id: project_id) do http_put("/projects/#{project_id}", body: compact_params(name: name, description: description, admissions: admissions, schedule_attributes: schedule_attributes)).json end end |