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:, max_items: nil) ⇒ ListEnumerator<Hash>
List all people who have answered a question (answerers).
-
#by_person(question_id:, person_id:, page: nil, max_items: nil) ⇒ ListEnumerator<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:, page: nil, max_items: nil) ⇒ ListEnumerator<Hash>
List all answers for a question.
-
#list_questions(questionnaire_id:, page: nil, max_items: nil) ⇒ ListEnumerator<Hash>
List all questions in a questionnaire.
-
#pause(question_id:) ⇒ Hash
Pause a check-in question (stops sending reminders).
-
#reminders(page: nil, max_items: nil) ⇒ ListEnumerator<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:, max_items: nil) ⇒ ListEnumerator<Hash>
List all people who have answered a question (answerers)
123 124 125 126 127 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 123 def answerers(question_id:, max_items: nil) wrap_paginated(service: "checkins", operation: "answerers", is_mutation: false, resource_id: question_id) do paginate("/questions/#{question_id}/answers/by.json", operation: "ListQuestionAnswerers", max_items: max_items) end end |
#by_person(question_id:, person_id:, page: nil, max_items: nil) ⇒ ListEnumerator<Hash>
Get all answers from a specific person for a question
135 136 137 138 139 140 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 135 def by_person(question_id:, person_id:, page: nil, max_items: nil) wrap_paginated(service: "checkins", operation: "by_person", is_mutation: false, resource_id: person_id) do params = compact_query_params(page: page) paginate("/questions/#{question_id}/answers/by/#{person_id}", params: params, operation: "GetAnswersByPerson", max_items: max_items) end end |
#create_answer(question_id:, content:, group_on: nil) ⇒ Hash
Create a new answer for a question
113 114 115 116 117 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 113 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
69 70 71 72 73 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 69 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
24 25 26 27 28 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 24 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}", operation: "GetAnswer").json end end |
#get_question(question_id:) ⇒ Hash
Get a single question by id
78 79 80 81 82 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 78 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}", operation: "GetQuestion").json end end |
#get_questionnaire(questionnaire_id:) ⇒ Hash
Get a questionnaire (automatic check-ins container) by id
45 46 47 48 49 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 45 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}", operation: "GetQuestionnaire").json end end |
#list_answers(question_id:, page: nil, max_items: nil) ⇒ ListEnumerator<Hash>
List all answers for a question
101 102 103 104 105 106 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 101 def list_answers(question_id:, page: nil, max_items: nil) wrap_paginated(service: "checkins", operation: "list_answers", is_mutation: false, resource_id: question_id) do params = compact_query_params(page: page) paginate("/questions/#{question_id}/answers.json", params: params, operation: "ListAnswers", max_items: max_items) end end |
#list_questions(questionnaire_id:, page: nil, max_items: nil) ⇒ ListEnumerator<Hash>
List all questions in a questionnaire
56 57 58 59 60 61 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 56 def list_questions(questionnaire_id:, page: nil, max_items: nil) wrap_paginated(service: "checkins", operation: "list_questions", is_mutation: false, resource_id: questionnaire_id) do params = compact_query_params(page: page) paginate("/questionnaires/#{questionnaire_id}/questions.json", params: params, operation: "ListQuestions", max_items: max_items) end end |
#pause(question_id:) ⇒ Hash
Pause a check-in question (stops sending reminders)
156 157 158 159 160 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 156 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(page: nil, max_items: nil) ⇒ ListEnumerator<Hash>
Get pending check-in reminders for the current user
14 15 16 17 18 19 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 14 def reminders(page: nil, max_items: nil) wrap_paginated(service: "checkins", operation: "reminders", is_mutation: false) do params = compact_query_params(page: page) paginate("/my/question_reminders.json", params: params, operation: "GetQuestionReminders", max_items: max_items) end end |
#resume(question_id:) ⇒ Hash
Resume a paused check-in question (resumes sending reminders)
165 166 167 168 169 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 165 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
35 36 37 38 39 40 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 35 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
147 148 149 150 151 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 147 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
90 91 92 93 94 |
# File 'lib/basecamp/generated/services/checkins_service.rb', line 90 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 |