Class: GroupDocs::Questionnaire
- Inherits:
-
Api::Entity
- Object
- Api::Entity
- GroupDocs::Questionnaire
- Includes:
- Api::Helpers::Status
- Defined in:
- lib/groupdocs/questionnaire.rb
Defined Under Namespace
Classes: Collector, Execution, Page, Question
Instance Attribute Summary collapse
- #assigned_questions ⇒ Object
- #descr ⇒ Object
- #document_ids ⇒ Object
- #expires ⇒ Object
- #guid ⇒ Object
- #id ⇒ Object
- #modified ⇒ Object
- #name ⇒ Object
- #pages ⇒ Object
- #resolved_executions ⇒ Object
-
#status ⇒ Symbol
Converts status to human-readable format.
- #total_questions ⇒ Object
Class Method Summary collapse
-
.all!(options = {}, access = {}) ⇒ Array<GroupDocs::Questionnaire>
Returns an array of all questionnaires.
-
.get!(id, access = {}) ⇒ GroupDocs::Questionnaire?
Returns questionnaire by identifier.
Instance Method Summary collapse
-
#add_page(page) ⇒ Object
Adds page to questionnaire.
-
#collectors!(options = {}, access = {}) ⇒ Array<GroupDocs::Questionnaire::Collector>
Returns an array of questionnaire collectors.
-
#copy_to_templates!(path, mode, options = {}, access = {}) ⇒ Array
Copy file to given path.
-
#create!(access = {}) ⇒ Object
Creates questionnaire.
-
#datasources!(access = {}) ⇒ Array<GroupDocs::DataSource>
Returns array of datasources for questionnaire.
-
#executions!(access = {}) ⇒ Array<GroupDocs::Questionnaire::Execution>
Returns an array of questionnaire executions.
-
#fields!(access = {}) ⇒ Array<GroupDocs::Document::Field>
Returns an array of document fields for questionnaire.
-
#metadata!(access = {}) ⇒ GroupDocs::Questionnaire
Returns questionnaire metadata.
-
#remove!(access = {}) ⇒ Object
Removes questionnaire.
-
#update!(access = {}) ⇒ Object
Updates questionnaire.
-
#update_metadata!(metadata, access = {}) ⇒ Object
Updates questionnaire metadata.
Methods inherited from Api::Entity
#initialize, #inspect, #to_hash
Methods included from Api::Helpers::Accessor
Constructor Details
This class inherits a constructor from GroupDocs::Api::Entity
Instance Attribute Details
#assigned_questions ⇒ Object
80 81 82 |
# File 'lib/groupdocs/questionnaire.rb', line 80 def assigned_questions @assigned_questions end |
#descr ⇒ Object
74 75 76 |
# File 'lib/groupdocs/questionnaire.rb', line 74 def descr @descr end |
#document_ids ⇒ Object
88 89 90 |
# File 'lib/groupdocs/questionnaire.rb', line 88 def document_ids @document_ids end |
#expires ⇒ Object
86 87 88 |
# File 'lib/groupdocs/questionnaire.rb', line 86 def expires @expires end |
#guid ⇒ Object
68 69 70 |
# File 'lib/groupdocs/questionnaire.rb', line 68 def guid @guid end |
#id ⇒ Object
66 67 68 |
# File 'lib/groupdocs/questionnaire.rb', line 66 def id @id end |
#modified ⇒ Object
84 85 86 |
# File 'lib/groupdocs/questionnaire.rb', line 84 def modified @modified end |
#name ⇒ Object
70 71 72 |
# File 'lib/groupdocs/questionnaire.rb', line 70 def name @name end |
#pages ⇒ Object
76 77 78 |
# File 'lib/groupdocs/questionnaire.rb', line 76 def pages @pages end |
#resolved_executions ⇒ Object
78 79 80 |
# File 'lib/groupdocs/questionnaire.rb', line 78 def resolved_executions @resolved_executions end |
#status ⇒ Symbol
Converts status to human-readable format.
72 73 74 |
# File 'lib/groupdocs/questionnaire.rb', line 72 def status @status end |
#total_questions ⇒ Object
82 83 84 |
# File 'lib/groupdocs/questionnaire.rb', line 82 def total_questions @total_questions end |
Class Method Details
.all!(options = {}, access = {}) ⇒ Array<GroupDocs::Questionnaire>
Returns an array of all questionnaires.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/groupdocs/questionnaire.rb', line 25 def self.all!( = {}, access = {}) if [:status] # TODO find better way to parse status [:status] = new.send(:parse_status, [:status]) end api = Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = '/merge/{{client_id}}/questionnaires' end api.add_params() json = api.execute! json[:questionnaires].map do |questionnaire| new(questionnaire) end end |
.get!(id, access = {}) ⇒ GroupDocs::Questionnaire?
Returns questionnaire by identifier.
53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/groupdocs/questionnaire.rb', line 53 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! new(json[:questionnaire]) rescue RestClient::ResourceNotFound nil end |
Instance Method Details
#add_page(page) ⇒ Object
Adds page to questionnaire.
125 126 127 128 129 130 131 |
# File 'lib/groupdocs/questionnaire.rb', line 125 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 |
#collectors!(options = {}, access = {}) ⇒ Array<GroupDocs::Questionnaire::Collector>
Returns an array of questionnaire collectors.
240 241 242 243 244 245 246 247 248 249 250 251 252 253 |
# File 'lib/groupdocs/questionnaire.rb', line 240 def collectors!( = {}, access = {}) api = Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/collectors" end api = add_params() json = api.execute! json[:collectors].map do |collector| collector.merge!(:questionnaire => self) Collector.new(collector) end end |
#copy_to_templates!(path, mode, options = {}, access = {}) ⇒ Array
Copy file to given path.
333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 |
# File 'lib/groupdocs/questionnaire.rb', line 333 def copy_to_templates!(path, mode, = {}, access = {}) [:name] ||= name path = prepare_path("#{path}/#{[:name]}") api = Api::Request.new do |request| request[:access] = access request[:method] = :PUT request[:headers] = { :'Groupdocs-Copy' => id } request[:path] = "/merge/{{client_id}}/files/#{path}" end api = add_params(:mode => mode) json = api.execute! json[:templates] end |
#create!(access = {}) ⇒ Object
Creates questionnaire.
141 142 143 144 145 146 147 148 149 150 151 152 |
# File 'lib/groupdocs/questionnaire.rb', line 141 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] self.guid = json[:questionnaire_guid] self.name = json[:adjusted_name] end |
#datasources!(access = {}) ⇒ Array<GroupDocs::DataSource>
Returns array of datasources for questionnaire.
196 197 198 199 200 201 202 203 204 205 206 |
# File 'lib/groupdocs/questionnaire.rb', line 196 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 |
#executions!(access = {}) ⇒ Array<GroupDocs::Questionnaire::Execution>
Returns an array of questionnaire executions.
216 217 218 219 220 221 222 223 224 225 226 |
# File 'lib/groupdocs/questionnaire.rb', line 216 def executions!(access = {}) json = Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/executions" end.execute! json[:executions].map do |execution| Execution.new(execution) end end |
#fields!(access = {}) ⇒ Array<GroupDocs::Document::Field>
Returns an array of document fields for questionnaire.
307 308 309 310 311 312 313 314 315 316 317 318 319 |
# File 'lib/groupdocs/questionnaire.rb', line 307 def fields!(access = {}) api = Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/fields" end api.add_params(:include_geometry => true) json = api.execute! json[:fields].map do |field| Document::Field.new(field) end end |
#metadata!(access = {}) ⇒ GroupDocs::Questionnaire
Returns questionnaire metadata.
263 264 265 266 267 268 269 270 271 |
# File 'lib/groupdocs/questionnaire.rb', line 263 def (access = {}) json = Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/metadata" end.execute! Questionnaire.new(json[:questionnaire]) end |
#remove!(access = {}) ⇒ Object
Removes questionnaire.
177 178 179 180 181 182 183 184 185 186 |
# File 'lib/groupdocs/questionnaire.rb', line 177 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 - http://scotland.groupdocs.com/jira/browse/CORE-391 rescue RestClient::BadRequest nil end |
#update!(access = {}) ⇒ Object
Updates questionnaire.
161 162 163 164 165 166 167 168 |
# File 'lib/groupdocs/questionnaire.rb', line 161 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 |
#update_metadata!(metadata, access = {}) ⇒ Object
Updates questionnaire metadata.
287 288 289 290 291 292 293 294 295 296 297 |
# File 'lib/groupdocs/questionnaire.rb', line 287 def (, access = {}) .is_a?(GroupDocs::Questionnaire) or raise ArgumentError, "Metadata should be GroupDocs::Questionnaire object, received: #{.inspect}" Api::Request.new do |request| request[:access] = access request[:method] = :PUT request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/metadata" request[:request_body] = .to_hash end.execute! end |