Class: SurveyGizmo::API::Survey
- Inherits:
-
Object
- Object
- SurveyGizmo::API::Survey
show all
- Includes:
- Resource
- Defined in:
- lib/survey_gizmo/api/survey.rb
Overview
Instance Method Summary
collapse
Methods included from Resource
#create_record_in_surveygizmo, descendants, #destroy, #inspect, #reload, #save
Instance Method Details
#belongs_to?(team) ⇒ Boolean
73
74
75
|
# File 'lib/survey_gizmo/api/survey.rb', line 73
def belongs_to?(team)
team_names.any? { |t| t == team }
end
|
#number_of_completed_responses ⇒ Object
Statistics array of arrays looks like:
- [“Partial”, 2], [“Disqualified”, 28], [“Complete”, 15]
44
45
46
47
48
49
50
|
# File 'lib/survey_gizmo/api/survey.rb', line 44
def number_of_completed_responses
if statistics && !statistics.empty? && (completed_data = statistics.find { |a| a[0] == 'Complete' })
completed_data[1]
else
0
end
end
|
#pages ⇒ Object
31
32
33
|
# File 'lib/survey_gizmo/api/survey.rb', line 31
def pages
@pages ||= SurveyGizmo::API::Page.all(survey_id: id)
end
|
#questions ⇒ Object
Sub question handling is in resource.rb. It should probably be here instead but if it gets moved here and people try to request all the questions for a specific page directly from a ::API::Question request, sub questions will not be included! So I left it there for least astonishment.
38
39
40
|
# File 'lib/survey_gizmo/api/survey.rb', line 38
def questions
@questions ||= pages.map { |p| SurveyGizmo::API::Question.all(survey_id: id, page_id: p.id) }.flatten
end
|
#server_has_new_results_since?(time) ⇒ Boolean
52
53
54
55
56
57
58
59
60
|
# File 'lib/survey_gizmo/api/survey.rb', line 52
def server_has_new_results_since?(time)
filters = [{
field: 'datesubmitted',
operator: '>=',
value: time.in_time_zone('Eastern Time (US & Canada)').strftime('%Y-%m-%d %H:%M:%S')
}]
responses = SurveyGizmo::API::Response.all({ survey_id: self.id }, { page: 1, filters: filters })
responses.size > 0
end
|
#team_names ⇒ Object
69
70
71
|
# File 'lib/survey_gizmo/api/survey.rb', line 69
def team_names
teams.map { |t| t['name'] }
end
|
#teams ⇒ Object
As of 2015-08-07, when you request data on multiple surveys from /survey, the team variable comes back as “0”. If you request one survey at a time from /survey/id, it works correctly.
64
65
66
67
|
# File 'lib/survey_gizmo/api/survey.rb', line 64
def teams
@individual_survey ||= SurveyGizmo::API::Survey.first(id: self.id)
@individual_survey.team
end
|
#to_param_options ⇒ Object
27
28
29
|
# File 'lib/survey_gizmo/api/survey.rb', line 27
def to_param_options
{ id: self.id }
end
|