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, QuestionnaireCollectorStyle
Instance Attribute Summary collapse
- #allowed_operations ⇒ Object
- #assigned_questions ⇒ Object
- #descr ⇒ Object
- #document_ids ⇒ Object
- #emails ⇒ Object
- #expires ⇒ Object
- #folder ⇒ Object
-
#formats ⇒ Object
added in release 1.5.8.
- #guid ⇒ Object
- #id ⇒ Object
- #modified ⇒ Object
- #name ⇒ Object
- #open_on_completion ⇒ Object
- #output_format ⇒ Object
- #pages ⇒ Object
- #resolved_executions ⇒ Object
-
#status ⇒ Symbol
Converts status to human-readable format.
- #total_questions ⇒ Object
-
#totalCount ⇒ Object
added in release 1.6.0.
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.
-
.get_by_name!(options = {}, access = {}) ⇒ Array<GroupDocs::Questionnaire>
Added in release 1.5.8.
Instance Method Summary collapse
-
#add_page(page) ⇒ Object
Adds page to questionnaire.
-
#collectors!(options = {}, access = {}) ⇒ Array<GroupDocs::Questionnaire::Collector>
Changed in release 1.5.8.
-
#copy_to_templates!(path, mode, options = {}, access = {}) ⇒ Array
Changed in release 1.5.8.
-
#create!(access = {}) ⇒ Object
Creates questionnaire.
-
#datasources!(access = {}) ⇒ Array<GroupDocs::DataSource>
Returns array of datasources for questionnaire.
-
#delete_collectors_list!(collectors, access = {}) ⇒ Object
Added in release 1.5.8.
-
#delete_datasources_list!(datasources, access = {}) ⇒ Object
Added in release 1.5.8.
-
#delete_executions_list!(executions, access = {}) ⇒ Object
Added in release 1.5.8.
-
#delete_list!(guids, access = {}) ⇒ Object
Added in release 1.5.8.
-
#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.
-
#get_document!(access = {}) ⇒ Object
Added in release 1.5.8.
-
#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
#allowed_operations ⇒ Object
105 106 107 |
# File 'lib/groupdocs/questionnaire.rb', line 105 def allowed_operations @allowed_operations end |
#assigned_questions ⇒ Object
82 83 84 |
# File 'lib/groupdocs/questionnaire.rb', line 82 def assigned_questions @assigned_questions end |
#descr ⇒ Object
76 77 78 |
# File 'lib/groupdocs/questionnaire.rb', line 76 def descr @descr end |
#document_ids ⇒ Object
90 91 92 |
# File 'lib/groupdocs/questionnaire.rb', line 90 def document_ids @document_ids end |
#emails ⇒ Object
99 100 101 |
# File 'lib/groupdocs/questionnaire.rb', line 99 def emails @emails end |
#expires ⇒ Object
88 89 90 |
# File 'lib/groupdocs/questionnaire.rb', line 88 def expires @expires end |
#folder ⇒ Object
97 98 99 |
# File 'lib/groupdocs/questionnaire.rb', line 97 def folder @folder end |
#formats ⇒ Object
added in release 1.5.8
95 96 97 |
# File 'lib/groupdocs/questionnaire.rb', line 95 def formats @formats end |
#guid ⇒ Object
70 71 72 |
# File 'lib/groupdocs/questionnaire.rb', line 70 def guid @guid end |
#id ⇒ Object
68 69 70 |
# File 'lib/groupdocs/questionnaire.rb', line 68 def id @id end |
#modified ⇒ Object
86 87 88 |
# File 'lib/groupdocs/questionnaire.rb', line 86 def modified @modified end |
#name ⇒ Object
72 73 74 |
# File 'lib/groupdocs/questionnaire.rb', line 72 def name @name end |
#open_on_completion ⇒ Object
103 104 105 |
# File 'lib/groupdocs/questionnaire.rb', line 103 def open_on_completion @open_on_completion end |
#output_format ⇒ Object
101 102 103 |
# File 'lib/groupdocs/questionnaire.rb', line 101 def output_format @output_format end |
#pages ⇒ Object
78 79 80 |
# File 'lib/groupdocs/questionnaire.rb', line 78 def pages @pages end |
#resolved_executions ⇒ Object
80 81 82 |
# File 'lib/groupdocs/questionnaire.rb', line 80 def resolved_executions @resolved_executions end |
#status ⇒ Symbol
Converts status to human-readable format.
74 75 76 |
# File 'lib/groupdocs/questionnaire.rb', line 74 def status @status end |
#total_questions ⇒ Object
84 85 86 |
# File 'lib/groupdocs/questionnaire.rb', line 84 def total_questions @total_questions end |
#totalCount ⇒ Object
added in release 1.6.0
109 110 111 |
# File 'lib/groupdocs/questionnaire.rb', line 109 def totalCount @totalCount end |
Class Method Details
.all!(options = {}, access = {}) ⇒ Array<GroupDocs::Questionnaire>
Returns an array of all questionnaires.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/groupdocs/questionnaire.rb', line 27 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.
55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/groupdocs/questionnaire.rb', line 55 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 |
.get_by_name!(options = {}, access = {}) ⇒ Array<GroupDocs::Questionnaire>
Added in release 1.5.8
Returns an array of questionnaires by name.
429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 |
# File 'lib/groupdocs/questionnaire.rb', line 429 def self.get_by_name!( = {}, 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/filter' end api.add_params() json = api.execute! json[:questionnaires].map do |questionnaire| new(questionnaire) end end |
Instance Method Details
#add_page(page) ⇒ Object
Adds page to questionnaire.
152 153 154 155 156 157 158 |
# File 'lib/groupdocs/questionnaire.rb', line 152 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>
Changed in release 1.5.8
Returns an array of questionnaire collectors.
283 284 285 286 287 288 289 290 291 292 293 294 295 296 |
# File 'lib/groupdocs/questionnaire.rb', line 283 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
Changed in release 1.5.8
Copy file to given path.
378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 |
# File 'lib/groupdocs/questionnaire.rb', line 378 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.
@example
questionnaire = GroupDocs::Questionnaire.new() pages = GroupDocs::Questionnaire::Page.new() questions = GroupDocs::Questionnaire::Question.new() answer = GroupDocs::Questionnaire::Question::Answer.new() questions.answers = [answer] conditions = GroupDocs::Questionnaire::Question::Conditions.new() questions.conditions = [conditions] pages.questions = [questions] questionnaire.pages = [pages] questionnaire.create!
181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/groupdocs/questionnaire.rb', line 181 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.
236 237 238 239 240 241 242 243 244 245 246 |
# File 'lib/groupdocs/questionnaire.rb', line 236 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 |
#delete_collectors_list!(collectors, access = {}) ⇒ Object
Added in release 1.5.8
Removes questionnaire collector.
480 481 482 483 484 485 486 487 |
# File 'lib/groupdocs/questionnaire.rb', line 480 def delete_collectors_list!(collectors, access = {}) Api::Request.new do |request| request[:access] = access request[:method] = :DELETE request[:path] = "/merge/{{client_id}}/questionnaires/collectors/list" request[:request_body] = collectors end.execute! end |
#delete_datasources_list!(datasources, access = {}) ⇒ Object
Added in release 1.5.8
Delete list of datasource fields.
518 519 520 521 522 523 524 525 |
# File 'lib/groupdocs/questionnaire.rb', line 518 def delete_datasources_list!(datasources, access = {}) Api::Request.new do |request| request[:access] = access request[:method] = :DELETE request[:path] = "/merge/{{client_id}}datasources/list" request[:request_body] = datasources end.execute! end |
#delete_executions_list!(executions, access = {}) ⇒ Object
Added in release 1.5.8
Removes questionnaire execution.
499 500 501 502 503 504 505 506 |
# File 'lib/groupdocs/questionnaire.rb', line 499 def delete_executions_list!(executions, access = {}) Api::Request.new do |request| request[:access] = access request[:method] = :DELETE request[:path] = "/merge/{{client_id}}/questionnaires/executions/list" request[:request_body] = executions end.execute! end |
#delete_list!(guids, access = {}) ⇒ Object
Added in release 1.5.8
Delete list of questionnaires by GUIDs.
459 460 461 462 463 464 465 466 467 468 |
# File 'lib/groupdocs/questionnaire.rb', line 459 def delete_list!(guids, access = {}) api = Api::Request.new do |request| request[:access] = access request[:method] = :DELETE request[:path] = "/merge/{{client_id}}/questionnaires/list" request[:request_body] = guids end api.execute! end |
#executions!(access = {}) ⇒ Array<GroupDocs::Questionnaire::Execution>
Returns an array of questionnaire executions.
256 257 258 259 260 261 262 263 264 265 266 |
# File 'lib/groupdocs/questionnaire.rb', line 256 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.
350 351 352 353 354 355 356 357 358 359 360 361 362 |
# File 'lib/groupdocs/questionnaire.rb', line 350 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 |
#get_document!(access = {}) ⇒ Object
Added in release 1.5.8
Get associated document by questionnaire
404 405 406 407 408 409 410 |
# File 'lib/groupdocs/questionnaire.rb', line 404 def get_document!(access = {}) Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = "/merge/{{client_id}}/questionnaires/#{id}/document" end.execute! end |
#metadata!(access = {}) ⇒ GroupDocs::Questionnaire
Returns questionnaire metadata.
306 307 308 309 310 311 312 313 314 |
# File 'lib/groupdocs/questionnaire.rb', line 306 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.
217 218 219 220 221 222 223 224 225 226 |
# File 'lib/groupdocs/questionnaire.rb', line 217 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.
201 202 203 204 205 206 207 208 |
# File 'lib/groupdocs/questionnaire.rb', line 201 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.
330 331 332 333 334 335 336 337 338 339 340 |
# File 'lib/groupdocs/questionnaire.rb', line 330 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 |