Class: Basecamp::Services::CheckinsService
- Inherits:
-
BaseService
- Object
- BaseService
- Basecamp::Services::CheckinsService
- Defined in:
- lib/basecamp/generated/services/checkins_service.rb
Overview
Service for Checkins operations
Instance Method Summary collapse
-
#answerers(question_id:) ⇒ Enumerator<Hash>
List all people who have answered a question (answerers).
-
#by_person(question_id:, person_id:) ⇒ Enumerator<Hash>
Get all answers from a specific person for a question.
-
#create_answer(question_id:, content:, group_on: nil) ⇒ Hash
Create a new answer for a question.
-
#create_question(questionnaire_id:, title:, schedule:, visible_to_clients: nil) ⇒ Hash
Create a new question in a questionnaire.
-
#get_answer(answer_id:) ⇒ Hash
Get a single answer by id.
-
#get_question(question_id:) ⇒ Hash
Get a single question by id.
-
#get_questionnaire(questionnaire_id:) ⇒ Hash
Get a questionnaire (automatic check-ins container) by id.
-
#list_answers(question_id:) ⇒ Enumerator<Hash>
List all answers for a question.
-
#list_questions(questionnaire_id:) ⇒ Enumerator<Hash>
List all questions in a questionnaire.
-
#pause(question_id:) ⇒ Hash
Pause a check-in question (stops sending reminders).
-
#reminders ⇒ Enumerator<Hash>
Get pending check-in reminders for the current user.
-
#resume(question_id:) ⇒ Hash
Resume a paused check-in question (resumes sending reminders).
-
#update_answer(answer_id:, content:, group_on: nil) ⇒ void
Update an existing answer.
-
#update_notification_settings(question_id:, notify_on_answer: nil, digest_include_unanswered: nil) ⇒ Hash
Update notification settings for a check-in question.
-
#update_question(question_id:, title: nil, schedule: nil, paused: nil) ⇒ Hash
Update an existing question.
Constructor Details
This class inherits a constructor from Basecamp::Services::BaseService
Instance Method Details
#answerers(question_id:) ⇒ Enumerator<Hash>
List all people who have answered a question (answerers)
113 114 115 116 117 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 113 def answerers(question_id:) wrap_paginated(service: "checkins", operation: "answerers", is_mutation: false, resource_id: question_id) do paginate("/questions/#{question_id}/answers/by.json") end end |
#by_person(question_id:, person_id:) ⇒ Enumerator<Hash>
Get all answers from a specific person for a question
123 124 125 126 127 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 123 def by_person(question_id:, person_id:) wrap_paginated(service: "checkins", operation: "by_person", is_mutation: false, resource_id: person_id) do paginate("/questions/#{question_id}/answers/by/#{person_id}") end end |
#create_answer(question_id:, content:, group_on: nil) ⇒ Hash
Create a new answer for a question
104 105 106 107 108 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 104 def create_answer(question_id:, content:, group_on: nil) with_operation(service: "checkins", operation: "create_answer", is_mutation: true, resource_id: question_id) do http_post("/questions/#{question_id}/answers.json", body: compact_params(content: content, group_on: group_on)).json end end |
#create_question(questionnaire_id:, title:, schedule:, visible_to_clients: nil) ⇒ Hash
Create a new question in a questionnaire
63 64 65 66 67 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 63 def create_question(questionnaire_id:, title:, schedule:, visible_to_clients: nil) with_operation(service: "checkins", operation: "create_question", is_mutation: true, resource_id: questionnaire_id) do http_post("/questionnaires/#{questionnaire_id}/questions.json", body: compact_params(title: title, schedule: schedule, visible_to_clients: visible_to_clients)).json end end |
#get_answer(answer_id:) ⇒ Hash
Get a single answer by id
21 22 23 24 25 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 21 def get_answer(answer_id:) with_operation(service: "checkins", operation: "get_answer", is_mutation: false, resource_id: answer_id) do http_get("/question_answers/#{answer_id}").json end end |
#get_question(question_id:) ⇒ Hash
Get a single question by id
72 73 74 75 76 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 72 def get_question(question_id:) with_operation(service: "checkins", operation: "get_question", is_mutation: false, resource_id: question_id) do http_get("/questions/#{question_id}").json end end |
#get_questionnaire(questionnaire_id:) ⇒ Hash
Get a questionnaire (automatic check-ins container) by id
42 43 44 45 46 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 42 def get_questionnaire(questionnaire_id:) with_operation(service: "checkins", operation: "get_questionnaire", is_mutation: false, resource_id: questionnaire_id) do http_get("/questionnaires/#{questionnaire_id}").json end end |
#list_answers(question_id:) ⇒ Enumerator<Hash>
List all answers for a question
93 94 95 96 97 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 93 def list_answers(question_id:) wrap_paginated(service: "checkins", operation: "list_answers", is_mutation: false, resource_id: question_id) do paginate("/questions/#{question_id}/answers.json") end end |
#list_questions(questionnaire_id:) ⇒ Enumerator<Hash>
List all questions in a questionnaire
51 52 53 54 55 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 51 def list_questions(questionnaire_id:) wrap_paginated(service: "checkins", operation: "list_questions", is_mutation: false, resource_id: questionnaire_id) do paginate("/questionnaires/#{questionnaire_id}/questions.json") end end |
#pause(question_id:) ⇒ Hash
Pause a check-in question (stops sending reminders)
143 144 145 146 147 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 143 def pause(question_id:) with_operation(service: "checkins", operation: "pause", is_mutation: true, resource_id: question_id) do http_post("/questions/#{question_id}/pause.json").json end end |
#reminders ⇒ Enumerator<Hash>
Get pending check-in reminders for the current user
12 13 14 15 16 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 12 def reminders() wrap_paginated(service: "checkins", operation: "reminders", is_mutation: false) do paginate("/my/question_reminders.json") end end |
#resume(question_id:) ⇒ Hash
Resume a paused check-in question (resumes sending reminders)
152 153 154 155 156 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 152 def resume(question_id:) with_operation(service: "checkins", operation: "resume", is_mutation: true, resource_id: question_id) do http_delete("/questions/#{question_id}/pause.json").json end end |
#update_answer(answer_id:, content:, group_on: nil) ⇒ void
This method returns an undefined value.
Update an existing answer
32 33 34 35 36 37 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 32 def update_answer(answer_id:, content:, group_on: nil) with_operation(service: "checkins", operation: "update_answer", is_mutation: true, resource_id: answer_id) do http_put("/question_answers/#{answer_id}", body: compact_params(content: content, group_on: group_on)) nil end end |
#update_notification_settings(question_id:, notify_on_answer: nil, digest_include_unanswered: nil) ⇒ Hash
Update notification settings for a check-in question
134 135 136 137 138 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 134 def update_notification_settings(question_id:, notify_on_answer: nil, digest_include_unanswered: nil) with_operation(service: "checkins", operation: "update_notification_settings", is_mutation: true, resource_id: question_id) do http_put("/questions/#{question_id}/notification_settings.json", body: compact_params(notify_on_answer: notify_on_answer, digest_include_unanswered: digest_include_unanswered)).json end end |
#update_question(question_id:, title: nil, schedule: nil, paused: nil) ⇒ Hash
Update an existing question
84 85 86 87 88 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 84 def update_question(question_id:, title: nil, schedule: nil, paused: nil) with_operation(service: "checkins", operation: "update_question", is_mutation: true, resource_id: question_id) do http_put("/questions/#{question_id}", body: compact_params(title: title, schedule: schedule, paused: paused)).json end end |