Class: GroupDocs::Questionnaire

Inherits:
Api::Entity show all
Defined in:
lib/groupdocs/questionnaire.rb

Defined Under Namespace

Classes: Execution, Page, Question

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Api::Entity

#initialize, #inspect, #to_hash

Constructor Details

This class inherits a constructor from GroupDocs::Api::Entity

Instance Attribute Details

#descrObject Also known as: description



74
75
76
# File 'lib/groupdocs/questionnaire.rb', line 74

def descr
  @descr
end

#idObject



70
71
72
# File 'lib/groupdocs/questionnaire.rb', line 70

def id
  @id
end

#nameObject



72
73
74
# File 'lib/groupdocs/questionnaire.rb', line 72

def name
  @name
end

#pagesObject



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.

Parameters:

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:



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.

Parameters:

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:



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.

Parameters:

  • id (Integer)
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:



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.

Parameters:

Raises:

  • (ArgumentError)

    if page is not GroupDocs::Questionnaire::Page object



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.

Parameters:

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


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.

Examples:

execution = GroupDocs::Questionnaire::Execution.new
questionnaire = GroupDocs::Questionnaire.get!(1)
execution = questionnaire.create_execution!(execution, '[email protected]')
#=> #<GroupDocs::Questionnaire::Execution @id=1, @questionnaire_id=1>

Parameters:

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:



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.

Parameters:

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:



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.

Parameters:

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


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.

Parameters:

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


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