Class: Basecamp::Services::CheckinsService

Inherits:
BaseService
  • Object
show all
Defined in:
lib/basecamp/generated/services/checkins_service.rb

Overview

Service for Checkins operations

Instance Method Summary collapse

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)

Parameters:

  • question_id (Integer)

    question id ID

Returns:

  • (Enumerator<Hash>)

    paginated results



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

Parameters:

  • question_id (Integer)

    question id ID

  • person_id (Integer)

    person id ID

Returns:

  • (Enumerator<Hash>)

    paginated results



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

Parameters:

  • question_id (Integer)

    question id ID

  • content (String)

    content

  • group_on (String, nil) (defaults to: nil)

    group on (YYYY-MM-DD)

Returns:

  • (Hash)

    response data



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

Parameters:

  • questionnaire_id (Integer)

    questionnaire id ID

  • title (String)

    title

  • schedule (Hash)

    schedule

  • visible_to_clients (Boolean, nil) (defaults to: nil)

    visible to clients

Returns:

  • (Hash)

    response data



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

Parameters:

  • answer_id (Integer)

    answer id ID

Returns:

  • (Hash)

    response data



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

Parameters:

  • question_id (Integer)

    question id ID

Returns:

  • (Hash)

    response data



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

Parameters:

  • questionnaire_id (Integer)

    questionnaire id ID

Returns:

  • (Hash)

    response data



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

Parameters:

  • question_id (Integer)

    question id ID

Returns:

  • (Enumerator<Hash>)

    paginated results



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

Parameters:

  • questionnaire_id (Integer)

    questionnaire id ID

Returns:

  • (Enumerator<Hash>)

    paginated results



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)

Parameters:

  • question_id (Integer)

    question id ID

Returns:

  • (Hash)

    response data



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

#remindersEnumerator<Hash>

Get pending check-in reminders for the current user

Returns:

  • (Enumerator<Hash>)

    paginated results



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)

Parameters:

  • question_id (Integer)

    question id ID

Returns:

  • (Hash)

    response data



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

Parameters:

  • answer_id (Integer)

    answer id ID

  • content (String)

    content

  • group_on (String, nil) (defaults to: nil)

    group on (YYYY-MM-DD)



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

Parameters:

  • question_id (Integer)

    question id ID

  • notify_on_answer (Boolean, nil) (defaults to: nil)

    Notify when someone answers

  • digest_include_unanswered (Boolean, nil) (defaults to: nil)

    Include unanswered in digest

Returns:

  • (Hash)

    response data



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

Parameters:

  • question_id (Integer)

    question id ID

  • title (String, nil) (defaults to: nil)

    title

  • schedule (Hash, nil) (defaults to: nil)

    schedule

  • paused (Boolean, nil) (defaults to: nil)

    paused

Returns:

  • (Hash)

    response data



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