Class: GroupDocs::Questionnaire
- Inherits:
-
Api::Entity
- Object
- Api::Entity
- GroupDocs::Questionnaire
- Defined in:
- lib/groupdocs/questionnaire.rb
Defined Under Namespace
Classes: Execution, Page, Question
Instance Attribute Summary collapse
- #descr ⇒ Object (also: #description)
- #id ⇒ Object
- #name ⇒ Object
- #pages ⇒ Object
Class Method Summary collapse
-
.all!(access = {}) ⇒ Array<GroupDocs::Questionnaire>
Returns an array of all questionnaires.
-
.executions!(access = {}) ⇒ Array<GroupDocs::Questionnaire::Execution>
Returns an array of all executions.
-
.get!(id, access = {}) ⇒ GroupDocs::Questionnaire?
Returns questionnaire by identifier.
Instance Method Summary collapse
-
#add_page(page) ⇒ Object
Adds page to questionnaire.
-
#create!(access = {}) ⇒ Object
Creates questionnaire.
-
#create_execution!(execution, email, access = {}) ⇒ GroupDocs::Questionnaire::Execution
Creates new questionnaire execution.
-
#datasources!(access = {}) ⇒ Array<GroupDocs::DataSource>
Returns array of datasources for questionnaire.
-
#remove!(access = {}) ⇒ Object
Removes questionnaire.
-
#update!(access = {}) ⇒ Object
Updates questionnaire.
Methods inherited from Api::Entity
#initialize, #inspect, #to_hash
Constructor Details
This class inherits a constructor from GroupDocs::Api::Entity
Instance Attribute Details
#descr ⇒ Object Also known as: description
74 75 76 |
# File 'lib/groupdocs/questionnaire.rb', line 74 def descr @descr end |
#id ⇒ Object
70 71 72 |
# File 'lib/groupdocs/questionnaire.rb', line 70 def id @id end |
#name ⇒ Object
72 73 74 |
# File 'lib/groupdocs/questionnaire.rb', line 72 def name @name end |
#pages ⇒ Object
76 77 78 |
# File 'lib/groupdocs/questionnaire.rb', line 76 def pages @pages end |
Class Method Details
.all!(access = {}) ⇒ Array<GroupDocs::Questionnaire>
Returns an array of all questionnaires.
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/groupdocs/questionnaire.rb', line 16 def self.all!(access = {}) json = Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = '/merge/{{client_id}}/questionnaires' end.execute! json[:questionnaires].map do |questionnaire| Questionnaire.new(questionnaire) end end |
.executions!(access = {}) ⇒ Array<GroupDocs::Questionnaire::Execution>
Returns an array of all executions.
57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/groupdocs/questionnaire.rb', line 57 def self.executions!(access = {}) json = Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = '/merge/{{client_id}}/questionnaires/executions' end.execute! json[:executions].map do |execution| Questionnaire::Execution.new(execution) end end |
.get!(id, access = {}) ⇒ GroupDocs::Questionnaire?
Returns questionnaire by identifier.
37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/groupdocs/questionnaire.rb', line 37 def self.get!(id, access = {}) json = Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = "/merge/{{client_id}}/questionnaires/#{id}" end.execute! Questionnaire.new(json[:questionnaire]) rescue RestClient::BadRequest nil end |
Instance Method Details
#add_page(page) ⇒ Object
Adds page to questionnaire.
105 106 107 108 109 110 111 |
# File 'lib/groupdocs/questionnaire.rb', line 105 def add_page(page) page.is_a?(GroupDocs::Questionnaire::Page) or raise ArgumentError, "Page should be GroupDocs::Questionnaire::Page object, received: #{page.inspect}" @pages ||= Array.new @pages << page end |
#create!(access = {}) ⇒ Object
Creates questionnaire.
120 121 122 123 124 125 126 127 128 129 |
# File 'lib/groupdocs/questionnaire.rb', line 120 def create!(access = {}) json = Api::Request.new do |request| request[:access] = access request[:method] = :POST request[:path] = '/merge/{{client_id}}/questionnaires' request[:request_body] = to_hash end.execute! self.id = json[:questionnaire_id] end |
#create_execution!(execution, email, access = {}) ⇒ GroupDocs::Questionnaire::Execution
Creates new questionnaire execution.
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 |
# File 'lib/groupdocs/questionnaire.rb', line 201 def create_execution!(execution, email, access = {}) execution.is_a?(GroupDocs::Questionnaire::Execution) or raise ArgumentError, "Execution should be GroupDocs::Questionnaire::Execution object, received: #{execution.inspect}" json = Api::Request.new do |request| request[:access] = access request[:method] = :POST request[:path] = "/merge/{{client_id}}/questionnaires/#{id}/executions" request[:request_body] = execution.to_hash.merge(executive: { primary_email: email }) end.execute! execution.id = json[:execution_id] execution.questionnaire_id = json[:questionnaire_id] execution end |
#datasources!(access = {}) ⇒ Array<GroupDocs::DataSource>
Returns array of datasources for questionnaire.
173 174 175 176 177 178 179 180 181 182 183 |
# File 'lib/groupdocs/questionnaire.rb', line 173 def datasources!(access = {}) json = Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = "/merge/{{client_id}}/questionnaires/#{id}/datasources" end.execute! json[:datasources].map do |datasource| DataSource.new(datasource) end end |
#remove!(access = {}) ⇒ Object
Removes questionnaire.
154 155 156 157 158 159 160 161 162 163 |
# File 'lib/groupdocs/questionnaire.rb', line 154 def remove!(access = {}) Api::Request.new do |request| request[:access] = access request[:method] = :DELETE request[:path] = "/merge/{{client_id}}/questionnaires/#{id}" end.execute! # TODO: fix this in API rescue RestClient::BadRequest nil end |
#update!(access = {}) ⇒ Object
Updates questionnaire.
138 139 140 141 142 143 144 145 |
# File 'lib/groupdocs/questionnaire.rb', line 138 def update!(access = {}) Api::Request.new do |request| request[:access] = access request[:method] = :PUT request[:path] = "/merge/{{client_id}}/questionnaires/#{id}" request[:request_body] = to_hash end.execute! end |