Fixes #4055 - Migrations (Zendesk, Kayako) currently do not support custom dropdown multi-select fields.
This commit is contained in:
parent
652d2c27e9
commit
54227e82ac
62 changed files with 16064 additions and 13452 deletions
|
@ -412,16 +412,6 @@ RSpec/MessageSpies:
|
|||
- 'spec/lib/import/otrs/ticket_spec.rb'
|
||||
- 'spec/lib/import/otrs/user_factory_spec.rb'
|
||||
- 'spec/lib/import/otrs/user_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/base_examples.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/checkbox_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/date_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/decimal_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/dropdown_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/integer_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/regexp_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/tagger_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/text_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/textarea_spec.rb'
|
||||
- 'spec/lib/ldap/group_spec.rb'
|
||||
- 'spec/lib/ldap/guid_spec.rb'
|
||||
- 'spec/lib/ldap/user_spec.rb'
|
||||
|
@ -483,16 +473,6 @@ RSpec/MultipleExpectations:
|
|||
- 'spec/lib/import/otrs/priority_factory_spec.rb'
|
||||
- 'spec/lib/import/otrs/requester_spec.rb'
|
||||
- 'spec/lib/import/otrs/state_factory_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/base_examples.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/checkbox_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/date_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/decimal_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/dropdown_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/integer_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/regexp_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/tagger_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/text_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/textarea_spec.rb'
|
||||
- 'spec/lib/ldap/group_spec.rb'
|
||||
- 'spec/lib/ldap/guid_spec.rb'
|
||||
- 'spec/lib/ldap/user_spec.rb'
|
||||
|
@ -660,16 +640,6 @@ RSpec/VerifiedDoubles:
|
|||
- 'spec/db/migrate/issue_2460_fix_corrupted_twitter_ids_spec.rb'
|
||||
- 'spec/jobs/communicate_twitter_job_spec.rb'
|
||||
- 'spec/lib/external_sync_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/base_examples.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/checkbox_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/date_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/decimal_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/dropdown_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/integer_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/regexp_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/tagger_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/text_spec.rb'
|
||||
- 'spec/lib/import/zendesk/object_attribute/textarea_spec.rb'
|
||||
- 'spec/lib/ldap_spec.rb'
|
||||
- 'spec/lib/sequencer/sequence/import/ldap/users_spec.rb'
|
||||
- 'spec/lib/sequencer/unit/import/zendesk/sub_sequence/base_examples.rb'
|
||||
|
|
|
@ -1,79 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
module Import
|
||||
class Zendesk
|
||||
module ObjectAttribute
|
||||
class Base
|
||||
|
||||
def initialize(object, name, attribute)
|
||||
|
||||
initialize_data_option(attribute)
|
||||
init_callback(attribute)
|
||||
|
||||
add(object, name, attribute)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def init_callback(_attribute); end
|
||||
|
||||
def add(object, name, attribute)
|
||||
ObjectManager::Attribute.add(attribute_config(object, name, attribute))
|
||||
ObjectManager::Attribute.migration_execute(false)
|
||||
rescue
|
||||
# rubocop:disable Style/SpecialGlobalVars
|
||||
raise $!, "Problem with ObjectManager Attribute '#{name}': #{$!}", $!.backtrace
|
||||
# rubocop:enable Style/SpecialGlobalVars
|
||||
end
|
||||
|
||||
def attribute_config(object, name, attribute)
|
||||
{
|
||||
object: object.to_s,
|
||||
name: name,
|
||||
display: attribute.title,
|
||||
data_type: data_type(attribute),
|
||||
data_option: @data_option,
|
||||
editable: !attribute.removable,
|
||||
active: attribute.active,
|
||||
screens: screens(attribute),
|
||||
position: attribute.position,
|
||||
created_by_id: 1,
|
||||
updated_by_id: 1,
|
||||
}
|
||||
end
|
||||
|
||||
def screens(attribute)
|
||||
config = {
|
||||
view: {
|
||||
'-all-' => {
|
||||
shown: true,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
return config if !attribute.visible_in_portal && attribute.required_in_portal
|
||||
|
||||
{
|
||||
edit: {
|
||||
Customer: {
|
||||
shown: attribute.visible_in_portal,
|
||||
null: !attribute.required_in_portal,
|
||||
},
|
||||
}.merge(config)
|
||||
}
|
||||
end
|
||||
|
||||
def initialize_data_option(attribute)
|
||||
@data_option = {
|
||||
null: !attribute.required,
|
||||
note: attribute.description,
|
||||
}
|
||||
end
|
||||
|
||||
def data_type(attribute)
|
||||
attribute.type
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,26 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
module Import
|
||||
class Zendesk
|
||||
module ObjectAttribute
|
||||
class Checkbox < Import::Zendesk::ObjectAttribute::Base
|
||||
|
||||
def init_callback(_object_attribte)
|
||||
@data_option.merge!(
|
||||
default: false,
|
||||
options: {
|
||||
true => 'yes',
|
||||
false => 'no',
|
||||
},
|
||||
)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def data_type(_attribute)
|
||||
'boolean'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,17 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
module Import
|
||||
class Zendesk
|
||||
module ObjectAttribute
|
||||
class Date < Import::Zendesk::ObjectAttribute::Base
|
||||
def init_callback(_object_attribte)
|
||||
@data_option.merge!(
|
||||
future: true,
|
||||
past: true,
|
||||
diff: 0,
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,10 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
module Import
|
||||
class Zendesk
|
||||
module ObjectAttribute
|
||||
class Decimal < Import::Zendesk::ObjectAttribute::Text
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,10 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
module Import
|
||||
class Zendesk
|
||||
module ObjectAttribute
|
||||
class Dropdown < Import::Zendesk::ObjectAttribute::Select
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,23 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
module Import
|
||||
class Zendesk
|
||||
module ObjectAttribute
|
||||
class Integer < Import::Zendesk::ObjectAttribute::Base
|
||||
|
||||
def init_callback(_object_attribte)
|
||||
@data_option.merge!(
|
||||
min: 0,
|
||||
max: 999_999_999,
|
||||
)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def data_type(_attribute)
|
||||
'integer'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,24 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
module Import
|
||||
class Zendesk
|
||||
module ObjectAttribute
|
||||
class Regexp < Import::Zendesk::ObjectAttribute::Base
|
||||
|
||||
def init_callback(object_attribte)
|
||||
@data_option.merge!(
|
||||
type: 'text',
|
||||
maxlength: 255,
|
||||
regex: object_attribte.regexp_for_validation,
|
||||
)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def data_type(_attribute)
|
||||
'input'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,31 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
module Import
|
||||
class Zendesk
|
||||
module ObjectAttribute
|
||||
class Select < Import::Zendesk::ObjectAttribute::Base
|
||||
|
||||
def init_callback(object_attribte)
|
||||
@data_option.merge!(
|
||||
default: '',
|
||||
options: options(object_attribte),
|
||||
)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def data_type(_attribute)
|
||||
'select'
|
||||
end
|
||||
|
||||
def options(object_attribte)
|
||||
result = {}
|
||||
object_attribte.custom_field_options.each do |entry|
|
||||
result[ entry['value'] ] = entry['name']
|
||||
end
|
||||
result
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,10 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
module Import
|
||||
class Zendesk
|
||||
module ObjectAttribute
|
||||
class Tagger < Import::Zendesk::ObjectAttribute::Select
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,23 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
module Import
|
||||
class Zendesk
|
||||
module ObjectAttribute
|
||||
class Text < Import::Zendesk::ObjectAttribute::Base
|
||||
|
||||
def init_callback(_object_attribte)
|
||||
@data_option.merge!(
|
||||
type: 'text',
|
||||
maxlength: 255,
|
||||
)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def data_type(_attribute)
|
||||
'input'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,23 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
module Import
|
||||
class Zendesk
|
||||
module ObjectAttribute
|
||||
class Textarea < Import::Zendesk::ObjectAttribute::Base
|
||||
|
||||
def init_callback(_object_attribte)
|
||||
@data_option.merge!(
|
||||
type: 'textarea',
|
||||
maxlength: 255,
|
||||
)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def data_type(_attribute)
|
||||
'textarea'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,30 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
class Sequencer
|
||||
class Unit
|
||||
module Import
|
||||
module Kayako
|
||||
module ObjectAttribute
|
||||
module AttributeType
|
||||
class Checkbox < Sequencer::Unit::Import::Kayako::ObjectAttribute::AttributeType::Select
|
||||
def local_value(value)
|
||||
multiple_values = value.split(',').map(&:to_i)
|
||||
|
||||
relevant_options = attribute['options'].select { |option| multiple_values.include?(option['id']) }
|
||||
value_locales = relevant_options.filter_map { |option| option['values'].detect { |locale_item| locale_item['locale'] == default_language } }
|
||||
|
||||
value_locales.map { |value_locale| value_locale['translation'] }
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def data_type
|
||||
'multiselect'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -19,7 +19,7 @@ class Sequencer
|
|||
private
|
||||
|
||||
def skip_attribute_types
|
||||
@skip_attribute_types ||= %w[FILE CHECKBOX]
|
||||
@skip_attribute_types ||= %w[FILE]
|
||||
end
|
||||
|
||||
def allowed_system_attributes
|
||||
|
|
|
@ -8,7 +8,7 @@ class Sequencer
|
|||
class Case < Sequencer::Unit::Import::Kayako::Request::Generic
|
||||
def params
|
||||
super.merge(
|
||||
include: 'user,case_priority,case_status,channel,tag,case_type',
|
||||
include: 'user,case_priority,case_status,channel,tag,case_type,case_field,field_option,locale_field',
|
||||
fields: '+tags',
|
||||
)
|
||||
end
|
||||
|
|
|
@ -0,0 +1,85 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
class Sequencer
|
||||
class Unit
|
||||
module Import
|
||||
module Zendesk
|
||||
module ObjectAttribute
|
||||
module AttributeType
|
||||
class Base
|
||||
|
||||
def initialize(object, name, attribute)
|
||||
|
||||
initialize_data_option(attribute)
|
||||
init_callback(attribute)
|
||||
|
||||
add(object, name, attribute)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def init_callback(_attribute); end
|
||||
|
||||
def add(object, name, attribute)
|
||||
ObjectManager::Attribute.add(attribute_config(object, name, attribute))
|
||||
ObjectManager::Attribute.migration_execute(false)
|
||||
rescue
|
||||
# rubocop:disable Style/SpecialGlobalVars
|
||||
raise $!, "Problem with ObjectManager Attribute '#{name}': #{$!}", $!.backtrace
|
||||
# rubocop:enable Style/SpecialGlobalVars
|
||||
end
|
||||
|
||||
def attribute_config(object, name, attribute)
|
||||
{
|
||||
object: object.to_s,
|
||||
name: name,
|
||||
display: attribute.title,
|
||||
data_type: data_type(attribute),
|
||||
data_option: @data_option,
|
||||
editable: !attribute.removable,
|
||||
active: attribute.active,
|
||||
screens: screens(attribute),
|
||||
position: attribute.position,
|
||||
created_by_id: 1,
|
||||
updated_by_id: 1,
|
||||
}
|
||||
end
|
||||
|
||||
def screens(attribute)
|
||||
config = {
|
||||
view: {
|
||||
'-all-' => {
|
||||
shown: true,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
return config if !attribute.visible_in_portal && attribute.required_in_portal
|
||||
|
||||
{
|
||||
edit: {
|
||||
Customer: {
|
||||
shown: attribute.visible_in_portal,
|
||||
null: !attribute.required_in_portal,
|
||||
},
|
||||
}.merge(config)
|
||||
}
|
||||
end
|
||||
|
||||
def initialize_data_option(attribute)
|
||||
@data_option = {
|
||||
null: !attribute.required,
|
||||
note: attribute.description,
|
||||
}
|
||||
end
|
||||
|
||||
def data_type(attribute)
|
||||
attribute.type
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,31 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
class Sequencer
|
||||
class Unit
|
||||
module Import
|
||||
module Zendesk
|
||||
module ObjectAttribute
|
||||
module AttributeType
|
||||
class Checkbox < Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base
|
||||
def init_callback(_object_attribte)
|
||||
@data_option.merge!(
|
||||
default: false,
|
||||
options: {
|
||||
true => 'yes',
|
||||
false => 'no',
|
||||
},
|
||||
)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def data_type(_attribute)
|
||||
'boolean'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,23 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
class Sequencer
|
||||
class Unit
|
||||
module Import
|
||||
module Zendesk
|
||||
module ObjectAttribute
|
||||
module AttributeType
|
||||
class Date < Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base
|
||||
def init_callback(_object_attribte)
|
||||
@data_option.merge!(
|
||||
future: true,
|
||||
past: true,
|
||||
diff: 0,
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,16 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
class Sequencer
|
||||
class Unit
|
||||
module Import
|
||||
module Zendesk
|
||||
module ObjectAttribute
|
||||
module AttributeType
|
||||
class Decimal < Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Text
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,16 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
class Sequencer
|
||||
class Unit
|
||||
module Import
|
||||
module Zendesk
|
||||
module ObjectAttribute
|
||||
module AttributeType
|
||||
class Dropdown < Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Select
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,29 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
class Sequencer
|
||||
class Unit
|
||||
module Import
|
||||
module Zendesk
|
||||
module ObjectAttribute
|
||||
module AttributeType
|
||||
class Integer < Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base
|
||||
|
||||
def init_callback(_object_attribte)
|
||||
@data_option.merge!(
|
||||
min: 0,
|
||||
max: 999_999_999,
|
||||
)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def data_type(_attribute)
|
||||
'integer'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,19 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
class Sequencer
|
||||
class Unit
|
||||
module Import
|
||||
module Zendesk
|
||||
module ObjectAttribute
|
||||
module AttributeType
|
||||
class Multiselect < Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Select
|
||||
def data_type(_attribute)
|
||||
'multiselect'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,30 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
class Sequencer
|
||||
class Unit
|
||||
module Import
|
||||
module Zendesk
|
||||
module ObjectAttribute
|
||||
module AttributeType
|
||||
class Regexp < Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base
|
||||
|
||||
def init_callback(object_attribte)
|
||||
@data_option.merge!(
|
||||
type: 'text',
|
||||
maxlength: 255,
|
||||
regex: object_attribte.regexp_for_validation,
|
||||
)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def data_type(_attribute)
|
||||
'input'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,37 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
class Sequencer
|
||||
class Unit
|
||||
module Import
|
||||
module Zendesk
|
||||
module ObjectAttribute
|
||||
module AttributeType
|
||||
class Select < Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base
|
||||
|
||||
def init_callback(object_attribte)
|
||||
@data_option.merge!(
|
||||
default: '',
|
||||
options: options(object_attribte),
|
||||
)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def data_type(_attribute)
|
||||
'select'
|
||||
end
|
||||
|
||||
def options(object_attribte)
|
||||
result = {}
|
||||
object_attribte.custom_field_options.each do |entry|
|
||||
result[ entry['value'] ] = entry['name']
|
||||
end
|
||||
result
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,16 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
class Sequencer
|
||||
class Unit
|
||||
module Import
|
||||
module Zendesk
|
||||
module ObjectAttribute
|
||||
module AttributeType
|
||||
class Tagger < Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Select
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,29 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
class Sequencer
|
||||
class Unit
|
||||
module Import
|
||||
module Zendesk
|
||||
module ObjectAttribute
|
||||
module AttributeType
|
||||
class Text < Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base
|
||||
|
||||
def init_callback(_object_attribte)
|
||||
@data_option.merge!(
|
||||
type: 'text',
|
||||
maxlength: 255,
|
||||
)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def data_type(_attribute)
|
||||
'input'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,29 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
class Sequencer
|
||||
class Unit
|
||||
module Import
|
||||
module Zendesk
|
||||
module ObjectAttribute
|
||||
module AttributeType
|
||||
class Textarea < Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base
|
||||
|
||||
def init_callback(_object_attribte)
|
||||
@data_option.merge!(
|
||||
type: 'textarea',
|
||||
maxlength: 255,
|
||||
)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def data_type(_attribute)
|
||||
'textarea'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -23,7 +23,7 @@ class Sequencer
|
|||
end
|
||||
|
||||
def backend_class
|
||||
"Import::Zendesk::ObjectAttribute::#{resource.type.capitalize}".constantize
|
||||
"Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::#{resource.type.capitalize}".constantize
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.shared_examples Import::Zendesk::ObjectAttribute::Base do
|
||||
let(:attribute) do
|
||||
double(
|
||||
title: 'Example attribute',
|
||||
description: 'Example attribute description',
|
||||
removable: false,
|
||||
active: true,
|
||||
position: 12,
|
||||
visible_in_portal: true,
|
||||
required_in_portal: true,
|
||||
required: true,
|
||||
type: 'input',
|
||||
custom_field_options: [],
|
||||
regexp_for_validation: '',
|
||||
)
|
||||
end
|
||||
|
||||
describe 'exception handling' do
|
||||
let(:error_text) { Faker::Lorem.sentence }
|
||||
|
||||
it 'extends ObjectManager Attribute exception message' do
|
||||
expect(ObjectManager::Attribute).to receive(:add).and_raise(RuntimeError, error_text)
|
||||
|
||||
expect do
|
||||
described_class.new('Ticket', 'example_field', attribute)
|
||||
end.to raise_error(RuntimeError, %r{'example_field': #{error_text}$})
|
||||
end
|
||||
end
|
||||
|
||||
describe 'argument handling' do
|
||||
it 'takes an ObjectLookup name as the first argument' do
|
||||
expect(ObjectManager::Attribute)
|
||||
.to receive(:add).with(hash_including(object: 'Ticket'))
|
||||
|
||||
described_class.new('Ticket', 'example_field', attribute)
|
||||
end
|
||||
|
||||
it 'accepts a constant ObjectLookup name' do
|
||||
expect(ObjectManager::Attribute)
|
||||
.to receive(:add).with(hash_including(object: 'Ticket'))
|
||||
|
||||
described_class.new(Ticket, 'example_field', attribute)
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,62 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/import/zendesk/object_attribute/base_examples'
|
||||
|
||||
RSpec.describe Import::Zendesk::ObjectAttribute::Checkbox do
|
||||
it_behaves_like Import::Zendesk::ObjectAttribute::Base
|
||||
|
||||
it 'imports boolean object attribute from checkbox object field' do
|
||||
|
||||
attribute = double(
|
||||
title: 'Example attribute',
|
||||
description: 'Example attribute description',
|
||||
removable: false,
|
||||
active: true,
|
||||
position: 12,
|
||||
visible_in_portal: true,
|
||||
required_in_portal: true,
|
||||
required: true,
|
||||
type: 'checkbox',
|
||||
)
|
||||
|
||||
expected_structure = {
|
||||
object: 'Ticket',
|
||||
name: 'example_field',
|
||||
display: 'Example attribute',
|
||||
data_type: 'boolean',
|
||||
data_option: {
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
default: false,
|
||||
options: {
|
||||
true => 'yes',
|
||||
false => 'no'
|
||||
}
|
||||
},
|
||||
editable: true,
|
||||
active: true,
|
||||
screens: {
|
||||
edit: {
|
||||
Customer: {
|
||||
shown: true,
|
||||
null: false
|
||||
},
|
||||
view: {
|
||||
'-all-' => {
|
||||
shown: true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
position: 12,
|
||||
created_by_id: 1,
|
||||
updated_by_id: 1
|
||||
}
|
||||
|
||||
expect(ObjectManager::Attribute).to receive(:add).with(expected_structure)
|
||||
expect(ObjectManager::Attribute).to receive(:migration_execute)
|
||||
|
||||
described_class.new('Ticket', 'example_field', attribute)
|
||||
end
|
||||
end
|
|
@ -1,63 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/import/zendesk/object_attribute/base_examples'
|
||||
|
||||
# required due to some of rails autoloading issues
|
||||
require 'import/zendesk/object_attribute/date'
|
||||
|
||||
RSpec.describe Import::Zendesk::ObjectAttribute::Date do
|
||||
it_behaves_like Import::Zendesk::ObjectAttribute::Base
|
||||
|
||||
it 'imports date object attribute from date object field' do
|
||||
|
||||
attribute = double(
|
||||
title: 'Example attribute',
|
||||
description: 'Example attribute description',
|
||||
removable: false,
|
||||
active: true,
|
||||
position: 12,
|
||||
visible_in_portal: true,
|
||||
required_in_portal: true,
|
||||
required: true,
|
||||
type: 'date',
|
||||
)
|
||||
|
||||
expected_structure = {
|
||||
object: 'Ticket',
|
||||
name: 'example_field',
|
||||
display: 'Example attribute',
|
||||
data_type: 'date',
|
||||
data_option: {
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
future: true,
|
||||
past: true,
|
||||
diff: 0,
|
||||
},
|
||||
editable: true,
|
||||
active: true,
|
||||
screens: {
|
||||
edit: {
|
||||
Customer: {
|
||||
shown: true,
|
||||
null: false
|
||||
},
|
||||
view: {
|
||||
'-all-' => {
|
||||
shown: true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
position: 12,
|
||||
created_by_id: 1,
|
||||
updated_by_id: 1
|
||||
}
|
||||
|
||||
expect(ObjectManager::Attribute).to receive(:add).with(expected_structure)
|
||||
expect(ObjectManager::Attribute).to receive(:migration_execute)
|
||||
|
||||
described_class.new('Ticket', 'example_field', attribute)
|
||||
end
|
||||
end
|
|
@ -1,59 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/import/zendesk/object_attribute/base_examples'
|
||||
|
||||
RSpec.describe Import::Zendesk::ObjectAttribute::Decimal do
|
||||
it_behaves_like Import::Zendesk::ObjectAttribute::Base
|
||||
|
||||
it 'imports input object attribute from decimal object field' do
|
||||
|
||||
attribute = double(
|
||||
title: 'Example attribute',
|
||||
description: 'Example attribute description',
|
||||
removable: false,
|
||||
active: true,
|
||||
position: 12,
|
||||
visible_in_portal: true,
|
||||
required_in_portal: true,
|
||||
required: true,
|
||||
type: 'decimal',
|
||||
)
|
||||
|
||||
expected_structure = {
|
||||
object: 'Ticket',
|
||||
name: 'example_field',
|
||||
display: 'Example attribute',
|
||||
data_type: 'input',
|
||||
data_option: {
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
type: 'text',
|
||||
maxlength: 255,
|
||||
},
|
||||
editable: true,
|
||||
active: true,
|
||||
screens: {
|
||||
edit: {
|
||||
Customer: {
|
||||
shown: true,
|
||||
null: false
|
||||
},
|
||||
view: {
|
||||
'-all-' => {
|
||||
shown: true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
position: 12,
|
||||
created_by_id: 1,
|
||||
updated_by_id: 1
|
||||
}
|
||||
|
||||
expect(ObjectManager::Attribute).to receive(:add).with(expected_structure)
|
||||
expect(ObjectManager::Attribute).to receive(:migration_execute)
|
||||
|
||||
described_class.new('Ticket', 'example_field', attribute)
|
||||
end
|
||||
end
|
|
@ -1,74 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/import/zendesk/object_attribute/base_examples'
|
||||
|
||||
RSpec.describe Import::Zendesk::ObjectAttribute::Dropdown do
|
||||
it_behaves_like Import::Zendesk::ObjectAttribute::Base
|
||||
|
||||
it 'imports select object attribute from dropdown object field' do
|
||||
|
||||
attribute = double(
|
||||
title: 'Example attribute',
|
||||
description: 'Example attribute description',
|
||||
removable: false,
|
||||
active: true,
|
||||
position: 12,
|
||||
visible_in_portal: true,
|
||||
required_in_portal: true,
|
||||
required: true,
|
||||
type: 'dropdown',
|
||||
custom_field_options: [
|
||||
{
|
||||
'id' => 1,
|
||||
'value' => 'Key 1',
|
||||
'name' => 'Value 1'
|
||||
},
|
||||
{
|
||||
'id' => 2,
|
||||
'value' => 'Key 2',
|
||||
'name' => 'Value 2'
|
||||
},
|
||||
]
|
||||
)
|
||||
|
||||
expected_structure = {
|
||||
object: 'Ticket',
|
||||
name: 'example_field',
|
||||
display: 'Example attribute',
|
||||
data_type: 'select',
|
||||
data_option: {
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
default: '',
|
||||
options: {
|
||||
'Key 1' => 'Value 1',
|
||||
'Key 2' => 'Value 2'
|
||||
},
|
||||
},
|
||||
editable: true,
|
||||
active: true,
|
||||
screens: {
|
||||
edit: {
|
||||
Customer: {
|
||||
shown: true,
|
||||
null: false
|
||||
},
|
||||
view: {
|
||||
'-all-' => {
|
||||
shown: true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
position: 12,
|
||||
created_by_id: 1,
|
||||
updated_by_id: 1
|
||||
}
|
||||
|
||||
expect(ObjectManager::Attribute).to receive(:add).with(expected_structure)
|
||||
expect(ObjectManager::Attribute).to receive(:migration_execute)
|
||||
|
||||
described_class.new('Ticket', 'example_field', attribute)
|
||||
end
|
||||
end
|
|
@ -1,62 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/import/zendesk/object_attribute/base_examples'
|
||||
|
||||
# required due to some of rails autoloading issues
|
||||
require 'import/zendesk/object_attribute/integer'
|
||||
|
||||
RSpec.describe Import::Zendesk::ObjectAttribute::Integer do
|
||||
it_behaves_like Import::Zendesk::ObjectAttribute::Base
|
||||
|
||||
it 'imports integer object attribute from integer object field' do
|
||||
|
||||
attribute = double(
|
||||
title: 'Example attribute',
|
||||
description: 'Example attribute description',
|
||||
removable: false,
|
||||
active: true,
|
||||
position: 12,
|
||||
visible_in_portal: true,
|
||||
required_in_portal: true,
|
||||
required: true,
|
||||
type: 'integer',
|
||||
)
|
||||
|
||||
expected_structure = {
|
||||
object: 'Ticket',
|
||||
name: 'example_field',
|
||||
display: 'Example attribute',
|
||||
data_type: 'integer',
|
||||
data_option: {
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
min: 0,
|
||||
max: 999_999_999,
|
||||
},
|
||||
editable: true,
|
||||
active: true,
|
||||
screens: {
|
||||
edit: {
|
||||
Customer: {
|
||||
shown: true,
|
||||
null: false
|
||||
},
|
||||
view: {
|
||||
'-all-' => {
|
||||
shown: true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
position: 12,
|
||||
created_by_id: 1,
|
||||
updated_by_id: 1
|
||||
}
|
||||
|
||||
expect(ObjectManager::Attribute).to receive(:add).with(expected_structure)
|
||||
expect(ObjectManager::Attribute).to receive(:migration_execute)
|
||||
|
||||
described_class.new('Ticket', 'example_field', attribute)
|
||||
end
|
||||
end
|
|
@ -1,65 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/import/zendesk/object_attribute/base_examples'
|
||||
|
||||
# required due to some of rails autoloading issues
|
||||
require 'import/zendesk/object_attribute/regexp'
|
||||
|
||||
RSpec.describe Import::Zendesk::ObjectAttribute::Regexp do
|
||||
it_behaves_like Import::Zendesk::ObjectAttribute::Base
|
||||
|
||||
it 'imports input object attribute from regexp object field' do
|
||||
|
||||
regex = '.+?'
|
||||
attribute = double(
|
||||
title: 'Example attribute',
|
||||
description: 'Example attribute description',
|
||||
removable: false,
|
||||
active: true,
|
||||
position: 12,
|
||||
visible_in_portal: true,
|
||||
required_in_portal: true,
|
||||
required: true,
|
||||
type: 'regexp',
|
||||
regexp_for_validation: regex
|
||||
)
|
||||
|
||||
expected_structure = {
|
||||
object: 'Ticket',
|
||||
name: 'example_field',
|
||||
display: 'Example attribute',
|
||||
data_type: 'input',
|
||||
data_option: {
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
type: 'text',
|
||||
maxlength: 255,
|
||||
regex: regex,
|
||||
},
|
||||
editable: true,
|
||||
active: true,
|
||||
screens: {
|
||||
edit: {
|
||||
Customer: {
|
||||
shown: true,
|
||||
null: false
|
||||
},
|
||||
view: {
|
||||
'-all-' => {
|
||||
shown: true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
position: 12,
|
||||
created_by_id: 1,
|
||||
updated_by_id: 1
|
||||
}
|
||||
|
||||
expect(ObjectManager::Attribute).to receive(:add).with(expected_structure)
|
||||
expect(ObjectManager::Attribute).to receive(:migration_execute)
|
||||
|
||||
described_class.new('Ticket', 'example_field', attribute)
|
||||
end
|
||||
end
|
|
@ -1,74 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/import/zendesk/object_attribute/base_examples'
|
||||
|
||||
RSpec.describe Import::Zendesk::ObjectAttribute::Tagger do
|
||||
it_behaves_like Import::Zendesk::ObjectAttribute::Base
|
||||
|
||||
it 'imports select object attribute from tagger object field' do
|
||||
|
||||
attribute = double(
|
||||
title: 'Example attribute',
|
||||
description: 'Example attribute description',
|
||||
removable: false,
|
||||
active: true,
|
||||
position: 12,
|
||||
visible_in_portal: true,
|
||||
required_in_portal: true,
|
||||
required: true,
|
||||
type: 'tagger',
|
||||
custom_field_options: [
|
||||
{
|
||||
'id' => 1,
|
||||
'value' => 'Key 1',
|
||||
'name' => 'Value 1'
|
||||
},
|
||||
{
|
||||
'id' => 2,
|
||||
'value' => 'Key 2',
|
||||
'name' => 'Value 2'
|
||||
},
|
||||
]
|
||||
)
|
||||
|
||||
expected_structure = {
|
||||
object: 'Ticket',
|
||||
name: 'example_field',
|
||||
display: 'Example attribute',
|
||||
data_type: 'select',
|
||||
data_option: {
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
default: '',
|
||||
options: {
|
||||
'Key 1' => 'Value 1',
|
||||
'Key 2' => 'Value 2'
|
||||
},
|
||||
},
|
||||
editable: true,
|
||||
active: true,
|
||||
screens: {
|
||||
edit: {
|
||||
Customer: {
|
||||
shown: true,
|
||||
null: false
|
||||
},
|
||||
view: {
|
||||
'-all-' => {
|
||||
shown: true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
position: 12,
|
||||
created_by_id: 1,
|
||||
updated_by_id: 1
|
||||
}
|
||||
|
||||
expect(ObjectManager::Attribute).to receive(:add).with(expected_structure)
|
||||
expect(ObjectManager::Attribute).to receive(:migration_execute)
|
||||
|
||||
described_class.new('Ticket', 'example_field', attribute)
|
||||
end
|
||||
end
|
|
@ -1,59 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/import/zendesk/object_attribute/base_examples'
|
||||
|
||||
RSpec.describe Import::Zendesk::ObjectAttribute::Text do
|
||||
it_behaves_like Import::Zendesk::ObjectAttribute::Base
|
||||
|
||||
it 'imports input object attribute from text object field' do
|
||||
|
||||
attribute = double(
|
||||
title: 'Example attribute',
|
||||
description: 'Example attribute description',
|
||||
removable: false,
|
||||
active: true,
|
||||
position: 12,
|
||||
visible_in_portal: true,
|
||||
required_in_portal: true,
|
||||
required: true,
|
||||
type: 'text',
|
||||
)
|
||||
|
||||
expected_structure = {
|
||||
object: 'Ticket',
|
||||
name: 'example_field',
|
||||
display: 'Example attribute',
|
||||
data_type: 'input',
|
||||
data_option: {
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
type: 'text',
|
||||
maxlength: 255,
|
||||
},
|
||||
editable: true,
|
||||
active: true,
|
||||
screens: {
|
||||
edit: {
|
||||
Customer: {
|
||||
shown: true,
|
||||
null: false
|
||||
},
|
||||
view: {
|
||||
'-all-' => {
|
||||
shown: true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
position: 12,
|
||||
created_by_id: 1,
|
||||
updated_by_id: 1
|
||||
}
|
||||
|
||||
expect(ObjectManager::Attribute).to receive(:add).with(expected_structure)
|
||||
expect(ObjectManager::Attribute).to receive(:migration_execute)
|
||||
|
||||
described_class.new('Ticket', 'example_field', attribute)
|
||||
end
|
||||
end
|
|
@ -1,59 +0,0 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/import/zendesk/object_attribute/base_examples'
|
||||
|
||||
RSpec.describe Import::Zendesk::ObjectAttribute::Textarea do
|
||||
it_behaves_like Import::Zendesk::ObjectAttribute::Base
|
||||
|
||||
it 'imports textarea object attribute from textarea object field' do
|
||||
|
||||
attribute = double(
|
||||
title: 'Example attribute',
|
||||
description: 'Example attribute description',
|
||||
removable: false,
|
||||
active: true,
|
||||
position: 12,
|
||||
visible_in_portal: true,
|
||||
required_in_portal: true,
|
||||
required: true,
|
||||
type: 'textarea',
|
||||
)
|
||||
|
||||
expected_structure = {
|
||||
object: 'Ticket',
|
||||
name: 'example_field',
|
||||
display: 'Example attribute',
|
||||
data_type: 'textarea',
|
||||
data_option: {
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
type: 'textarea',
|
||||
maxlength: 255,
|
||||
},
|
||||
editable: true,
|
||||
active: true,
|
||||
screens: {
|
||||
edit: {
|
||||
Customer: {
|
||||
shown: true,
|
||||
null: false
|
||||
},
|
||||
view: {
|
||||
'-all-' => {
|
||||
shown: true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
position: 12,
|
||||
created_by_id: 1,
|
||||
updated_by_id: 1
|
||||
}
|
||||
|
||||
expect(ObjectManager::Attribute).to receive(:add).with(expected_structure)
|
||||
expect(ObjectManager::Attribute).to receive(:migration_execute)
|
||||
|
||||
described_class.new('Ticket', 'example_field', attribute)
|
||||
end
|
||||
end
|
|
@ -95,20 +95,70 @@ RSpec.shared_examples 'Object custom field values', db_strategy: :reset do |obje
|
|||
{
|
||||
'field' => {
|
||||
'id' => 4,
|
||||
'fielduuid' => '9586e37c-b561-4119-8673-726787ceb79d',
|
||||
'title' => 'Checkbox',
|
||||
'fielduuid' => 'ff7093f3-ad44-4519-80b0-f9b1a9988ac0',
|
||||
'title' => 'Multiselection',
|
||||
'type' => 'CHECKBOX',
|
||||
'key' => 'custom_checkbox',
|
||||
'key' => 'custom_multiselection',
|
||||
'is_visible_to_customers' => false,
|
||||
'is_customer_editable' => false,
|
||||
'is_required_for_customers' => false,
|
||||
'regular_expression' => nil,
|
||||
'sort_order' => 4,
|
||||
'sort_order' => 2,
|
||||
'is_enabled' => true,
|
||||
'created_at' => '2021-08-16T19:35:32+00:00',
|
||||
'updated_at' => '2021-08-16T20:00:47+00:00',
|
||||
'options' => [
|
||||
{
|
||||
'id' => 1,
|
||||
'fielduuid' => 'ff7093f3-ad44-4519-80b0-f9b1a9988ac0',
|
||||
'values' => [
|
||||
{
|
||||
'id' => 26,
|
||||
'locale' => 'en-us',
|
||||
'translation' => 'one',
|
||||
'created_at' => '2021-08-16T19:35:02+00:00',
|
||||
'updated_at' => '2021-08-16T19:35:02+00:00',
|
||||
}
|
||||
],
|
||||
'sort_order' => 0,
|
||||
'created_at' => '2021-08-16T19:35:02+00:00',
|
||||
'updated_at' => '2021-08-16T19:35:02+00:00',
|
||||
},
|
||||
{
|
||||
'id' => 2,
|
||||
'fielduuid' => 'ff7093f3-ad44-4519-80b0-f9b1a9988ac0',
|
||||
'values' => [
|
||||
{
|
||||
'id' => 27,
|
||||
'locale' => 'en-us',
|
||||
'translation' => 'two',
|
||||
'created_at' => '2021-08-16T19:35:02+00:00',
|
||||
'updated_at' => '2021-08-16T19:35:02+00:00',
|
||||
}
|
||||
],
|
||||
'sort_order' => 0,
|
||||
'created_at' => '2021-08-16T19:35:02+00:00',
|
||||
'updated_at' => '2021-08-16T19:35:02+00:00',
|
||||
},
|
||||
{
|
||||
'id' => 3,
|
||||
'fielduuid' => 'ff7093f3-ad44-4519-80b0-f9b1a9988ac0',
|
||||
'values' => [
|
||||
{
|
||||
'id' => 25,
|
||||
'locale' => 'en-us',
|
||||
'translation' => 'three',
|
||||
'created_at' => '2021-08-16T19:35:01+00:00',
|
||||
'updated_at' => '2021-08-16T19:35:01+00:00',
|
||||
}
|
||||
],
|
||||
'sort_order' => 0,
|
||||
'created_at' => '2021-08-16T19:35:01+00:00',
|
||||
'updated_at' => '2021-08-16T19:35:01+00:00',
|
||||
},
|
||||
],
|
||||
'created_at' => '2021-08-16T19:35:01+00:00',
|
||||
'updated_at' => '2021-08-17T14:32:50+00:00',
|
||||
},
|
||||
'value' => '5,6',
|
||||
'value' => '2,3',
|
||||
},
|
||||
{
|
||||
'field' => {
|
||||
|
@ -405,6 +455,7 @@ RSpec.shared_examples 'Object custom field values', db_strategy: :reset do |obje
|
|||
object_name => {
|
||||
'custom_textfield' => 'custom_textfield',
|
||||
'custom_singleselection' => 'custom_singleselection',
|
||||
'custom_multiselection' => 'custom_multiselection',
|
||||
'custom_boolean' => 'custom_boolean',
|
||||
'custom_radio' => 'custom_radio',
|
||||
'custom_text_regex' => 'custom_text_regex',
|
||||
|
@ -427,6 +478,7 @@ RSpec.shared_examples 'Object custom field values', db_strategy: :reset do |obje
|
|||
{
|
||||
custom_textfield: 'Testing',
|
||||
custom_singleselection: 'two',
|
||||
custom_multiselection: %w[two three],
|
||||
custom_boolean: true,
|
||||
custom_radio: 'third',
|
||||
custom_text_regex: '999',
|
||||
|
@ -441,6 +493,7 @@ RSpec.shared_examples 'Object custom field values', db_strategy: :reset do |obje
|
|||
before do
|
||||
create :object_manager_attribute_text, object_name: object_name, name: 'custom_textfield'
|
||||
create :object_manager_attribute_select, object_name: object_name, name: 'custom_singleselection'
|
||||
create :object_manager_attribute_multiselect, object_name: object_name, name: 'custom_multiselection'
|
||||
create :object_manager_attribute_boolean, object_name: object_name, name: 'custom_boolean'
|
||||
create :object_manager_attribute_select, object_name: object_name, name: 'custom_radio'
|
||||
create :object_manager_attribute_text, object_name: object_name, name: 'custom_text_regex'
|
||||
|
|
|
@ -232,4 +232,76 @@ RSpec.shared_examples 'Object custom fields' do |klass:|
|
|||
|
||||
include_examples 'import valid custom field', 'custom_tree_select'
|
||||
end
|
||||
|
||||
context "when custom field type is 'CHECKBOX'" do
|
||||
let(:resource) do
|
||||
{
|
||||
'id' => 80_000_387_409,
|
||||
'fielduuid' => 'ff7093f3-ad44-4519-80b0-f9b1a9988ac0',
|
||||
'title' => 'Multichoice',
|
||||
'type' => 'CHECKBOX',
|
||||
'key' => 'custom_multichoice',
|
||||
'is_visible_to_customers' => false,
|
||||
'is_customer_editable' => false,
|
||||
'is_required_for_customers' => false,
|
||||
'regular_expression' => nil,
|
||||
'sort_order' => 2,
|
||||
'is_enabled' => true,
|
||||
'options' => [
|
||||
{
|
||||
'id' => 1,
|
||||
'fielduuid' => 'ff7093f3-ad44-4519-80b0-f9b1a9988ac0',
|
||||
'values' => [
|
||||
{
|
||||
'id' => 26,
|
||||
'locale' => 'en-us',
|
||||
'translation' => 'one',
|
||||
'created_at' => '2021-08-16T19:35:02+00:00',
|
||||
'updated_at' => '2021-08-16T19:35:02+00:00',
|
||||
}
|
||||
],
|
||||
'sort_order' => 0,
|
||||
'created_at' => '2021-08-16T19:35:02+00:00',
|
||||
'updated_at' => '2021-08-16T19:35:02+00:00',
|
||||
},
|
||||
{
|
||||
'id' => 2,
|
||||
'fielduuid' => 'ff7093f3-ad44-4519-80b0-f9b1a9988ac0',
|
||||
'values' => [
|
||||
{
|
||||
'id' => 27,
|
||||
'locale' => 'en-us',
|
||||
'translation' => 'two',
|
||||
'created_at' => '2021-08-16T19:35:02+00:00',
|
||||
'updated_at' => '2021-08-16T19:35:02+00:00',
|
||||
}
|
||||
],
|
||||
'sort_order' => 0,
|
||||
'created_at' => '2021-08-16T19:35:02+00:00',
|
||||
'updated_at' => '2021-08-16T19:35:02+00:00',
|
||||
},
|
||||
{
|
||||
'id' => 3,
|
||||
'fielduuid' => 'ff7093f3-ad44-4519-80b0-f9b1a9988ac0',
|
||||
'values' => [
|
||||
{
|
||||
'id' => 25,
|
||||
'locale' => 'en-us',
|
||||
'translation' => 'three',
|
||||
'created_at' => '2021-08-16T19:35:01+00:00',
|
||||
'updated_at' => '2021-08-16T19:35:01+00:00',
|
||||
}
|
||||
],
|
||||
'sort_order' => 0,
|
||||
'created_at' => '2021-08-16T19:35:01+00:00',
|
||||
'updated_at' => '2021-08-16T19:35:01+00:00',
|
||||
},
|
||||
],
|
||||
'created_at' => '2021-08-16T19:35:01+00:00',
|
||||
'updated_at' => '2021-08-17T14:32:50+00:00',
|
||||
}
|
||||
end
|
||||
|
||||
include_examples 'import valid custom field', 'custom_multichoice'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -171,6 +171,47 @@ RSpec.describe ::Sequencer::Sequence::Import::Zendesk::TicketField, sequencer: :
|
|||
end
|
||||
end
|
||||
|
||||
context 'when field is a multiselect' do
|
||||
let(:resource) do
|
||||
ZendeskAPI::TicketField.new(
|
||||
nil,
|
||||
base_resource.merge(
|
||||
{
|
||||
'title' => 'Custom Multiselect',
|
||||
'type' => 'multiselect',
|
||||
'custom_field_options' => [
|
||||
{
|
||||
'id' => 28_353_445,
|
||||
'name' => 'Another Value',
|
||||
'raw_name' => 'Another Value',
|
||||
'value' => 'anotherkey',
|
||||
'default' => false
|
||||
},
|
||||
{
|
||||
'id' => 28_353_425,
|
||||
'name' => 'Value 1',
|
||||
'raw_name' => 'Value 1',
|
||||
'value' => 'key1',
|
||||
'default' => false
|
||||
},
|
||||
{
|
||||
'id' => 28_353_435,
|
||||
'name' => 'Value 2',
|
||||
'raw_name' => 'Value 2',
|
||||
'value' => 'key2',
|
||||
'default' => false
|
||||
}
|
||||
]
|
||||
}
|
||||
)
|
||||
)
|
||||
end
|
||||
|
||||
it 'adds a custom field' do
|
||||
expect { process(process_payload) }.to change(Ticket, :column_names).by(['custom_multiselect'])
|
||||
end
|
||||
end
|
||||
|
||||
context 'when field is unknown' do
|
||||
let(:resource) do
|
||||
ZendeskAPI::TicketField.new(
|
||||
|
|
|
@ -65,18 +65,14 @@ RSpec.describe ::Sequencer::Sequence::Import::Zendesk::Ticket, sequencer: :seque
|
|||
],
|
||||
'custom_fields' => [
|
||||
{ 'id' => 1001,
|
||||
'value' => '1.6' },
|
||||
'value' => 'key_1' },
|
||||
{ 'id' => 1002,
|
||||
'value' => true },
|
||||
{ 'id' => 1003,
|
||||
'value' => %w[key_1 key_2] },
|
||||
],
|
||||
'satisfaction_rating' => nil,
|
||||
'sharing_agreement_ids' => [],
|
||||
'fields' => [
|
||||
{ 'id' => 1001,
|
||||
'value' => '1.6' },
|
||||
{ 'id' => 1002,
|
||||
'value' => true },
|
||||
],
|
||||
'followup_ids' => [],
|
||||
'brand_id' => 670_701,
|
||||
'allow_channelback' => false,
|
||||
|
@ -107,6 +103,7 @@ RSpec.describe ::Sequencer::Sequence::Import::Zendesk::Ticket, sequencer: :seque
|
|||
{
|
||||
1001 => 'custom_dropdown',
|
||||
1002 => 'custom_checkbox',
|
||||
1003 => 'custom_multiselect',
|
||||
}
|
||||
end
|
||||
|
||||
|
@ -134,14 +131,16 @@ RSpec.describe ::Sequencer::Sequence::Import::Zendesk::Ticket, sequencer: :seque
|
|||
priority_id: 3,
|
||||
owner_id: owner.id,
|
||||
customer_id: customer.id,
|
||||
custom_dropdown: '1.6',
|
||||
custom_dropdown: 'key_1',
|
||||
custom_checkbox: true,
|
||||
custom_multiselect: %w[key_1 key_2],
|
||||
}
|
||||
end
|
||||
|
||||
before do
|
||||
create :object_manager_attribute_select, object_name: 'Ticket', name: 'custom_dropdown'
|
||||
create :object_manager_attribute_boolean, object_name: 'Ticket', name: 'custom_checkbox'
|
||||
create :object_manager_attribute_multiselect, object_name: 'Ticket', name: 'custom_multiselect'
|
||||
ObjectManager::Attribute.migration_execute
|
||||
|
||||
# We only want to test here the Ticket API, so disable other modules in the sequence
|
||||
|
|
|
@ -0,0 +1,112 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'zendesk_api'
|
||||
|
||||
RSpec.shared_examples Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base do
|
||||
let(:object_attribute_type) { 'input' }
|
||||
let(:object_attribute_data_option) do
|
||||
{
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
type: 'text',
|
||||
maxlength: 255,
|
||||
}
|
||||
end
|
||||
|
||||
let(:zendesk_object_field_type) { object_attribute_type }
|
||||
let(:zendesk_object_base_field_attributes) do
|
||||
{
|
||||
title: 'Example attribute',
|
||||
description: 'Example attribute description',
|
||||
removable: false,
|
||||
active: true,
|
||||
position: 12,
|
||||
visible_in_portal: true,
|
||||
required_in_portal: true,
|
||||
required: true,
|
||||
type: zendesk_object_field_type,
|
||||
custom_field_options: [],
|
||||
}
|
||||
end
|
||||
|
||||
let(:zendesk_object_field_attributes) do
|
||||
{
|
||||
regexp_for_validation: '',
|
||||
}
|
||||
end
|
||||
|
||||
let(:attribute) do
|
||||
ZendeskAPI::TicketField.new(
|
||||
nil,
|
||||
zendesk_object_base_field_attributes.merge(zendesk_object_field_attributes)
|
||||
)
|
||||
end
|
||||
|
||||
let(:expected_structure) do
|
||||
{
|
||||
object: 'Ticket',
|
||||
name: 'example_field',
|
||||
display: 'Example attribute',
|
||||
data_type: object_attribute_type,
|
||||
data_option: object_attribute_data_option,
|
||||
editable: true,
|
||||
active: true,
|
||||
screens: {
|
||||
edit: {
|
||||
Customer: {
|
||||
shown: true,
|
||||
null: false
|
||||
},
|
||||
view: {
|
||||
'-all-' => {
|
||||
shown: true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
position: 12,
|
||||
created_by_id: 1,
|
||||
updated_by_id: 1
|
||||
}
|
||||
end
|
||||
|
||||
describe 'exception handling' do
|
||||
let(:error_text) { Faker::Lorem.sentence }
|
||||
|
||||
it 'extends ObjectManager Attribute exception message' do
|
||||
allow(ObjectManager::Attribute).to receive(:add).and_raise(RuntimeError, error_text)
|
||||
|
||||
expect do
|
||||
described_class.new('Ticket', 'example_field', attribute)
|
||||
end.to raise_error(RuntimeError, %r{'example_field': #{error_text}$})
|
||||
end
|
||||
end
|
||||
|
||||
describe 'argument handling' do
|
||||
before do
|
||||
allow(ObjectManager::Attribute).to receive(:add).with(hash_including(object: 'Ticket'))
|
||||
end
|
||||
|
||||
it 'takes an ObjectLookup name as the first argument' do
|
||||
described_class.new('Ticket', 'example_field', attribute)
|
||||
expect(ObjectManager::Attribute).to have_received(:add)
|
||||
end
|
||||
|
||||
it 'accepts a constant ObjectLookup name' do
|
||||
described_class.new(Ticket, 'example_field', attribute)
|
||||
expect(ObjectManager::Attribute).to have_received(:add)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when migration is executed' do
|
||||
it 'imports object attribute from given zendesk object field' do
|
||||
allow(ObjectManager::Attribute).to receive(:add).with(expected_structure)
|
||||
allow(ObjectManager::Attribute).to receive(:migration_execute)
|
||||
|
||||
described_class.new('Ticket', 'example_field', attribute)
|
||||
|
||||
expect(ObjectManager::Attribute).to have_received(:migration_execute)
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,22 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/base_examples'
|
||||
|
||||
RSpec.describe Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Checkbox do
|
||||
it_behaves_like Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base do
|
||||
let(:zendesk_object_field_type) { 'checkbox' }
|
||||
let(:object_attribute_type) { 'boolean' }
|
||||
let(:object_attribute_data_option) do
|
||||
{
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
default: false,
|
||||
options: {
|
||||
true => 'yes',
|
||||
false => 'no'
|
||||
}
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,19 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/base_examples'
|
||||
|
||||
RSpec.describe Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Date do
|
||||
it_behaves_like Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base do
|
||||
let(:object_attribute_type) { 'data' }
|
||||
let(:object_attribute_data_option) do
|
||||
{
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
future: true,
|
||||
past: true,
|
||||
diff: 0,
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,10 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/base_examples'
|
||||
|
||||
RSpec.describe Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Decimal do
|
||||
it_behaves_like Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base do
|
||||
let(:zendesk_object_field_type) { 'decimal' }
|
||||
end
|
||||
end
|
|
@ -0,0 +1,38 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/base_examples'
|
||||
|
||||
RSpec.describe Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Dropdown do
|
||||
it_behaves_like Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base do
|
||||
let(:zendesk_object_field_type) { 'dropdown' }
|
||||
let(:zendesk_object_field_attributes) do
|
||||
{
|
||||
custom_field_options: [
|
||||
{
|
||||
'id' => 1,
|
||||
'value' => 'Key 1',
|
||||
'name' => 'Value 1'
|
||||
},
|
||||
{
|
||||
'id' => 2,
|
||||
'value' => 'Key 2',
|
||||
'name' => 'Value 2'
|
||||
},
|
||||
]
|
||||
}
|
||||
end
|
||||
let(:object_attribute_type) { 'select' }
|
||||
let(:object_attribute_data_option) do
|
||||
{
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
default: '',
|
||||
options: {
|
||||
'Key 1' => 'Value 1',
|
||||
'Key 2' => 'Value 2'
|
||||
},
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,18 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/base_examples'
|
||||
|
||||
RSpec.describe Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Integer do
|
||||
it_behaves_like Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base do
|
||||
let(:object_attribute_type) { 'integer' }
|
||||
let(:object_attribute_data_option) do
|
||||
{
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
min: 0,
|
||||
max: 999_999_999,
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,37 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/base_examples'
|
||||
|
||||
RSpec.describe Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Multiselect do
|
||||
it_behaves_like Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base do
|
||||
let(:zendesk_object_field_attributes) do
|
||||
{
|
||||
custom_field_options: [
|
||||
{
|
||||
'id' => 1,
|
||||
'value' => 'Key 1',
|
||||
'name' => 'Value 1'
|
||||
},
|
||||
{
|
||||
'id' => 2,
|
||||
'value' => 'Key 2',
|
||||
'name' => 'Value 2'
|
||||
},
|
||||
]
|
||||
}
|
||||
end
|
||||
let(:object_attribute_type) { 'multiselect' }
|
||||
let(:object_attribute_data_option) do
|
||||
{
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
default: '',
|
||||
options: {
|
||||
'Key 1' => 'Value 1',
|
||||
'Key 2' => 'Value 2'
|
||||
},
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,27 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/base_examples'
|
||||
|
||||
RSpec.describe Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Regexp do
|
||||
let(:regex) { '.+?' }
|
||||
|
||||
it_behaves_like Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base do
|
||||
let(:zendesk_object_field_type) { 'regexp' }
|
||||
let(:zendesk_object_field_attributes) do
|
||||
{
|
||||
regexp_for_validation: regex
|
||||
}
|
||||
end
|
||||
let(:object_attribute_type) { 'input' }
|
||||
let(:object_attribute_data_option) do
|
||||
{
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
type: 'text',
|
||||
maxlength: 255,
|
||||
regex: regex,
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,38 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/base_examples'
|
||||
|
||||
RSpec.describe Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Tagger do
|
||||
it_behaves_like Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base do
|
||||
let(:zendesk_object_field_type) { 'tagger' }
|
||||
let(:zendesk_object_field_attributes) do
|
||||
{
|
||||
custom_field_options: [
|
||||
{
|
||||
'id' => 1,
|
||||
'value' => 'Key 1',
|
||||
'name' => 'Value 1'
|
||||
},
|
||||
{
|
||||
'id' => 2,
|
||||
'value' => 'Key 2',
|
||||
'name' => 'Value 2'
|
||||
},
|
||||
]
|
||||
}
|
||||
end
|
||||
let(:object_attribute_type) { 'select' }
|
||||
let(:object_attribute_data_option) do
|
||||
{
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
default: '',
|
||||
options: {
|
||||
'Key 1' => 'Value 1',
|
||||
'Key 2' => 'Value 2'
|
||||
},
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,8 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/base_examples'
|
||||
|
||||
RSpec.describe Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Text do
|
||||
it_behaves_like Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base
|
||||
end
|
|
@ -0,0 +1,18 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
require 'lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/base_examples'
|
||||
|
||||
RSpec.describe Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Textarea do
|
||||
it_behaves_like Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Base do
|
||||
let(:object_attribute_type) { 'textarea' }
|
||||
let(:object_attribute_data_option) do
|
||||
{
|
||||
null: false,
|
||||
note: 'Example attribute description',
|
||||
type: 'textarea',
|
||||
maxlength: 255,
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
|
@ -51,11 +51,12 @@ RSpec.configure do |config|
|
|||
end
|
||||
|
||||
config.around(:each, type: :system) do |example|
|
||||
use_vcr = example.metadata.fetch(:use_vcr, false)
|
||||
|
||||
# WebMock makes it impossible to have persistent http connections to Selenium,
|
||||
# which may cause overhead and Net::OpenTimeout errors.
|
||||
WebMock.disable!
|
||||
WebMock.disable! if !use_vcr
|
||||
example.run
|
||||
WebMock.enable!
|
||||
WebMock.enable! if !use_vcr
|
||||
end
|
||||
|
||||
end
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,7 +2,7 @@
|
|||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: "<IMPORT_ZENDESK_ENDPOINT>/users/me"
|
||||
uri: https://<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>/api/v2/users/me
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
|
@ -21,17 +21,19 @@ http_interactions:
|
|||
message: OK
|
||||
headers:
|
||||
Date:
|
||||
- Fri, 20 Aug 2021 13:25:35 GMT
|
||||
- Thu, 21 Apr 2022 06:41:45 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
Connection:
|
||||
- keep-alive
|
||||
Zendesk-Api-Version:
|
||||
- '2022-01-01'
|
||||
X-Zendesk-Api-Version:
|
||||
- v2
|
||||
X-Zendesk-Application-Version:
|
||||
- v9449
|
||||
- v12002
|
||||
X-Frame-Options:
|
||||
- SAMEORIGIN
|
||||
Access-Control-Expose-Headers:
|
||||
|
@ -45,16 +47,25 @@ http_interactions:
|
|||
Strict-Transport-Security:
|
||||
- max-age=31536000;
|
||||
Etag:
|
||||
- W/"f78a8c8899c1d69692fccbc4fb2c11b8"
|
||||
- W/"a879f316d63433c0a31a29daedcd718f"
|
||||
Cache-Control:
|
||||
- max-age=0, private, must-revalidate
|
||||
X-Zendesk-Origin-Server:
|
||||
- classic-app-server-5d8ffc66d-hngbj
|
||||
- classic-app-server-5fd77bc484-c5gmk
|
||||
Set-Cookie:
|
||||
- __cfruid=68e3fb499ca0b828f6cb2f72125a6706d848e8d4-1650523305; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- _zendesk_cookie=BAhJIhl7ImRldmljZV90b2tlbnMiOnt9fQY6BkVU--459ed01949a36415c1716b5711271c3d08918307;
|
||||
path=/; expires=Fri, 21 Apr 2023 05:11:11 GMT; secure; HttpOnly; SameSite=None
|
||||
X-Request-Id:
|
||||
- 681bf2d18a85dfbb-FRA
|
||||
- 681bf2d18a85dfbb-FRA
|
||||
- 6ff422c22dd16931-FRA
|
||||
- 6ff422c22dd16931-FRA
|
||||
X-Runtime:
|
||||
- '0.066324'
|
||||
- '0.053442'
|
||||
X-Envoy-Upstream-Service-Time:
|
||||
- '55'
|
||||
X-Envoy-Decorator-Operation:
|
||||
- classic.classic.svc.cluster.local:80/*
|
||||
X-Zendesk-Zorg:
|
||||
- 'yes'
|
||||
X-Content-Type-Options:
|
||||
|
@ -64,23 +75,20 @@ http_interactions:
|
|||
Expect-Ct:
|
||||
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
||||
Report-To:
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=vQfoszvrH3gqC%2BwX1TPZPuDzuJGbgeu%2F%2BAa0GOdil%2BJ%2B7OfktRqE65Es5HoX00AO56wvj8JgiJhEPT%2FVcZ47AfyAz3Nl7fRjLcW6qB9wqwqmO656mXQW6R%2BsnBWXjCebrh8Vlx%2FgHA%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=LYNjzMxiKhE9x5iMehF6JmqlJy3X5W8B%2FCeJdbYhVYXOhZmq%2BrDZergCQezmOTiNVzZTyXeaTs36lMt5v2iJi8Ji%2Fwaow1p2t4FBk%2Fkiih9nCP7d2LWQtFeSFsyc%2FJEDmcP6sWOKrA%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
Nel:
|
||||
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
|
||||
Set-Cookie:
|
||||
- __cfruid=5f7114429ea2a90d53065f81323c095ba659763c-1629465935; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
|
||||
Server:
|
||||
- cloudflare
|
||||
Cf-Ray:
|
||||
- 681bf2d18a85dfbb-FRA
|
||||
- 6ff422c22dd16931-FRA
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: '{"user":{"id":null,"url":null,"name":"Nicht registrierter Benutzer","email":"invalid@example.com","created_at":null,"updated_at":null,"time_zone":"Berlin","iana_time_zone":"Europe/Berlin","phone":null,"shared_phone_number":null,"photo":null,"locale_id":8,"locale":"de","organization_id":null,"role":"end-user","verified":false,"authenticity_token":"lncIvg7hwd/fd8WQInmMbDvQXlG5ZFIe5kiXSSp/evt4PmhR+OqhsSSLT0568tvlpsAzQbglbwddFit52KQWBA=="}}'
|
||||
recorded_at: Fri, 20 Aug 2021 13:25:35 GMT
|
||||
string: '{"user":{"id":null,"url":null,"name":"Nicht registrierter Benutzer","email":"invalid@example.com","created_at":null,"updated_at":null,"time_zone":"Berlin","iana_time_zone":"Europe/Berlin","phone":null,"shared_phone_number":null,"photo":null,"locale_id":8,"locale":"de","organization_id":null,"role":"end-user","verified":false,"authenticity_token":"oCfRl/IjWGEavA+qRWliWzGS4ui7lWGvIiKjt+DnHy73Ys8ahoc3puX8oiBrRzoff6/w5jfwYFaXpS+SghS2Jw=="}}'
|
||||
recorded_at: Thu, 21 Apr 2022 06:41:45 GMT
|
||||
- request:
|
||||
method: get
|
||||
uri: "<IMPORT_ZENDESK_ENDPOINT>/users/me"
|
||||
uri: https://<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>/api/v2/users/me
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
|
@ -90,7 +98,7 @@ http_interactions:
|
|||
Accept-Encoding:
|
||||
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
||||
User-Agent:
|
||||
- ZendeskAPI Ruby 1.32.0
|
||||
- ZendeskAPI Ruby 1.35.0
|
||||
Authorization:
|
||||
- Basic <IMPORT_ZENDESK_ENDPOINT_BASIC_AUTH>
|
||||
response:
|
||||
|
@ -99,17 +107,19 @@ http_interactions:
|
|||
message: OK
|
||||
headers:
|
||||
Date:
|
||||
- Fri, 20 Aug 2021 13:25:37 GMT
|
||||
- Thu, 21 Apr 2022 06:41:46 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
Connection:
|
||||
- keep-alive
|
||||
Zendesk-Api-Version:
|
||||
- '2022-01-01'
|
||||
X-Zendesk-Api-Version:
|
||||
- v2
|
||||
X-Zendesk-Application-Version:
|
||||
- v9449
|
||||
- v12002
|
||||
X-Frame-Options:
|
||||
- SAMEORIGIN
|
||||
Access-Control-Expose-Headers:
|
||||
|
@ -123,16 +133,25 @@ http_interactions:
|
|||
Strict-Transport-Security:
|
||||
- max-age=31536000;
|
||||
Etag:
|
||||
- W/"9e89bffdaf7d59aacb215983a217e728"
|
||||
- W/"f48a60e706f7848274c60c8959c7645a"
|
||||
Cache-Control:
|
||||
- max-age=0, private, must-revalidate
|
||||
X-Zendesk-Origin-Server:
|
||||
- classic-app-server-5d8ffc66d-hcn9g
|
||||
- classic-app-server-5fd77bc484-wdhd4
|
||||
Set-Cookie:
|
||||
- __cfruid=dcd273657337ce3a390aacb3c61bb5e88590fbf9-1650523306; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- _zendesk_cookie=BAhJIhl7ImRldmljZV90b2tlbnMiOnt9fQY6BkVU--459ed01949a36415c1716b5711271c3d08918307;
|
||||
path=/; expires=Fri, 21 Apr 2023 05:07:45 GMT; secure; HttpOnly; SameSite=None
|
||||
X-Request-Id:
|
||||
- 681bf2dc5e4205dc-FRA
|
||||
- 681bf2dc5e4205dc-FRA
|
||||
- 6ff422ca0f1d9968-FRA
|
||||
- 6ff422ca0f1d9968-FRA
|
||||
X-Runtime:
|
||||
- '0.193922'
|
||||
- '0.145123'
|
||||
X-Envoy-Upstream-Service-Time:
|
||||
- '147'
|
||||
X-Envoy-Decorator-Operation:
|
||||
- classic.classic.svc.cluster.local:80/*
|
||||
X-Zendesk-Zorg:
|
||||
- 'yes'
|
||||
Content-Encoding:
|
||||
|
@ -144,19 +163,16 @@ http_interactions:
|
|||
Expect-Ct:
|
||||
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
||||
Report-To:
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=v%2Fi8h0aIQWVfVGv%2BwX6KxG3FGMTtnsvfI2suZQpUwBkhAcswCkqkS0od18KEtx8dSTeqZiuMPjOnce2oWSX%2FGd4AjGRXl5sCftpeC%2FyvSqEn9xkShmfLrxG4hisfxgokGqb1UwVc5w%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=jGvVpfYy7VkMEn6%2F2MldCFRQemg0NHKCiJHL0zg0B75Zc6b8%2B3Lo%2FNI4EsJzGeeNIjs1fyFofTqQ6Zqf80gUkAn4IlGSVGSP31ySpdS%2BROcqQMs28560zq9X1mORRfbTvqdSP8nr4w%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
Nel:
|
||||
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
|
||||
Set-Cookie:
|
||||
- __cfruid=9d3985522b245e1dcce78514511401e7c9df0689-1629465937; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
|
||||
Server:
|
||||
- cloudflare
|
||||
Cf-Ray:
|
||||
- 681bf2dc5e4205dc-FRA
|
||||
- 6ff422ca0f1d9968-FRA
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: !binary |-
|
||||
H4sIAAAAAAAAA21T224aMRT8lcqvBfYCG8hKkUqSKm2aIFFIW6WqLC97WFy89tY+hkCUv+mf9Md6zCVJpUo8sPZ4zsx4/Mi8A8vyRyZLlidJFve7vX43aTFvFcvZArFxeRRttdebBaimswVdglt2ZqaORCOjVRoFChe9HO78dEazFtOiBuI4N8WbSS1xQUtQCxl4C1N0XFh7t2MObLQ7syAQSi6QIGmcZO24305Op2ma9xL63RPGN+VrTJq040E7jadJN0/6eToIGJQ18K3Ru+lglQxqpNCCv955761pIHoGNIv9iThOkl6S9uiMWwhLenY7XPu6CFmh9dBitIaG5dor1WLKzIQCvsvw+EWzQbfvJkRjbCW03AqURu9BWa+fZdkJga1RQaYo653KFVg5l0BE+zHC4wI0ypnEDUezBE3gL1V0fn4zHiyXV5PpFGB0nxXT4tfn629wux7ffp34+d2wmKd4e13iw/rt5ejEDa9Hb2/iy3F01eBgOOpiHY2s+zgYf0r98OLi4rQ6OwsX9IBgtVA7mXtzKCrH8u8sZT9aTCgp6IsRVMxQrkj7Xug+KpbPhXIUzyE5UZH450UlHHJlKqmPV/z/61sbPid2Y3mwz0GLQoVIjtyy0gK9DbmRjhKQSnUQpQ3C4W9IluOmIdjeyMw7NDXfrb/Yq00JVtCwoxMKewnILTi0kjxSlw8ERqsNb6xcUQM5VbYmczTsIOt4IBT4H9vOuya8mhcHJcyFV8gra3yz05L2sqx3Gh6ehcZY5DO3OgoK74tTKVRJwx7ZwUZJ7S3NOvQhpRSUhIKKXjmUoaTsg9fln9/s6enpL3LxpM/kAwAA
|
||||
recorded_at: Fri, 20 Aug 2021 13:25:37 GMT
|
||||
recorded_with: VCR 6.0.0
|
||||
H4sIAAAAAAAAA21T227aQBD9lWpfC/iCDcFSpAY1F6KqESFJm1TVasFjs2W96+zFAaL8Tf+kP9ZZA0kq1fKDPXN25syZs8/EGdAkeyY8J1kUpeGwnwz7UYc4LUhGltbWJguCrXRyswRR97YgczCr3kJVAat50MSBL2GCt8O9X0ZJ0iGSVYA1xmr+YVZxu8QQVIz7unM17xkf+9RW9tUwu9DALOSUWYTEYZR2w2E3Gt3EcZZE+D4gxtX5e0wcd8OkG0c34SDrJ1n/yGMsr4BulWy7gxbcs+FMMvo+c+q0qiF4BdTL3YkwjKIkihM8Y5ZMI582Q6Wr5l6rggkDHYJBq0gmnRAdItSCCaCtiIc/bA6yezvDOkqXTPIts1zJHShNhmmaDhCslfA8WV61NBvQvOCAhax22IY5uwRp+YLbDbVqBRLB0+n65Px0ZFfj5jF4uC/OvoduUs7WwddJMxkrNr19vJ6FZ/DAt8XFxd2i0eefB8NxMfp4f3n1JTk6v4VvJ4PJzeX90+TuaL0tJvbqdHp87De0tqAlEy3N3XCWlYZkP0hMfiIfwRn+EYSyheUNct8R3Wn1Ks9eOlYi+degYMZSoUouDzv+//6eFC2wutLUj09BsrnwkuylN7yUzDrtdUMeOVh01Z6UVBb2n15Zajc1whI0lzNWVbQNtnsahf7px2E6wnSlctAMWx7mQclXYKkGYzXHSdHSez2UFBtaa96gESk6t8IRseWe3OGA9/E/wxtnan953ubIoWBOWFpq5eqWVJykaTLy909DrbSlC9McCPlrRtEaIsdmz4d5cjRxrp68K2LUQnCYo99LY7n3KrlwMv/zm7y8vPwFm1Omh+sDAAA=
|
||||
recorded_at: Thu, 21 Apr 2022 06:41:46 GMT
|
||||
recorded_with: VCR 6.1.0
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: "<IMPORT_ZENDESK_ENDPOINT>/users/me"
|
||||
uri: https://<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>/api/v2/users/me
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
|
@ -21,17 +21,19 @@ http_interactions:
|
|||
message: OK
|
||||
headers:
|
||||
Date:
|
||||
- Fri, 20 Aug 2021 13:25:24 GMT
|
||||
- Thu, 21 Apr 2022 06:41:35 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
Connection:
|
||||
- keep-alive
|
||||
Zendesk-Api-Version:
|
||||
- '2022-01-01'
|
||||
X-Zendesk-Api-Version:
|
||||
- v2
|
||||
X-Zendesk-Application-Version:
|
||||
- v9449
|
||||
- v12002
|
||||
X-Frame-Options:
|
||||
- SAMEORIGIN
|
||||
Access-Control-Expose-Headers:
|
||||
|
@ -45,16 +47,25 @@ http_interactions:
|
|||
Strict-Transport-Security:
|
||||
- max-age=31536000;
|
||||
Etag:
|
||||
- W/"749965edc1b2129d5f54e5b512b62501"
|
||||
- W/"c5753c9a348eb939ae353dc220c5c553"
|
||||
Cache-Control:
|
||||
- max-age=0, private, must-revalidate
|
||||
X-Zendesk-Origin-Server:
|
||||
- classic-app-server-5d8ffc66d-svgj9
|
||||
- classic-app-server-5fd77bc484-zhdtl
|
||||
Set-Cookie:
|
||||
- __cfruid=f532a197c018135f25fad9b4b461186a9da7bca7-1650523295; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- _zendesk_cookie=BAhJIhl7ImRldmljZV90b2tlbnMiOnt9fQY6BkVU--459ed01949a36415c1716b5711271c3d08918307;
|
||||
path=/; expires=Fri, 21 Apr 2023 05:10:32 GMT; secure; HttpOnly; SameSite=None
|
||||
X-Request-Id:
|
||||
- 681bf28d78e1d729-FRA
|
||||
- 681bf28d78e1d729-FRA
|
||||
- 6ff422862f929261-FRA
|
||||
- 6ff422862f929261-FRA
|
||||
X-Runtime:
|
||||
- '0.065455'
|
||||
- '0.064058'
|
||||
X-Envoy-Upstream-Service-Time:
|
||||
- '66'
|
||||
X-Envoy-Decorator-Operation:
|
||||
- classic.classic.svc.cluster.local:80/*
|
||||
X-Zendesk-Zorg:
|
||||
- 'yes'
|
||||
X-Content-Type-Options:
|
||||
|
@ -64,23 +75,20 @@ http_interactions:
|
|||
Expect-Ct:
|
||||
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
||||
Report-To:
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=JlwvNIAloI78kb6%2B8AEe9aAJRYLLxCv64UJcTvPOt1nfdFn29rsPuEgffb%2BFAAaeAyjJU%2FL%2FP1JCdatvBTdJpJ%2F3G5X992Gi%2F0dZest7pA%2FOCut83zH37Ywdvo3hvNsyOwVViJqvAw%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=dw7vfS6XTdfJoUfApl5QhzTl9s1izHfd6y1sTpqot3BiDbKnIHtPqCHSuT5qHMCkXA9kI%2FlYZp8TGN0PJSDGEEzmezLplOtbCLcZSeDYfEVMurhUyRHyJENxCJs%2BwvAwWrxvntbnjA%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
Nel:
|
||||
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
|
||||
Set-Cookie:
|
||||
- __cfruid=dc67607203007f704575db608632145c6341b1cc-1629465924; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
|
||||
Server:
|
||||
- cloudflare
|
||||
Cf-Ray:
|
||||
- 681bf28d78e1d729-FRA
|
||||
- 6ff422862f929261-FRA
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: '{"user":{"id":null,"url":null,"name":"Nicht registrierter Benutzer","email":"invalid@example.com","created_at":null,"updated_at":null,"time_zone":"Berlin","iana_time_zone":"Europe/Berlin","phone":null,"shared_phone_number":null,"photo":null,"locale_id":8,"locale":"de","organization_id":null,"role":"end-user","verified":false,"authenticity_token":"TN2leefc4AefbsIvqwLlDhuW0UKdRLMxFyDfgGg8hegNBnWKzq5bWZ8AIMo0Wm2LpuNbfpTow5s29LuRokFwyg=="}}'
|
||||
recorded_at: Fri, 20 Aug 2021 13:25:24 GMT
|
||||
string: '{"user":{"id":null,"url":null,"name":"Nicht registrierter Benutzer","email":"invalid@example.com","created_at":null,"updated_at":null,"time_zone":"Berlin","iana_time_zone":"Europe/Berlin","phone":null,"shared_phone_number":null,"photo":null,"locale_id":8,"locale":"de","organization_id":null,"role":"end-user","verified":false,"authenticity_token":"PSQQL9qR2++8pImX0RvJA28vGYmYLMeJ6oqUTOxMANGqsQl1zjMpqphIrbTh53uqEAYBTkXZv8Dr961KNoZxVA=="}}'
|
||||
recorded_at: Thu, 21 Apr 2022 06:41:35 GMT
|
||||
- request:
|
||||
method: get
|
||||
uri: "<IMPORT_ZENDESK_ENDPOINT>/users/me"
|
||||
uri: https://<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>/api/v2/users/me
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
|
@ -90,7 +98,7 @@ http_interactions:
|
|||
Accept-Encoding:
|
||||
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
||||
User-Agent:
|
||||
- ZendeskAPI Ruby 1.32.0
|
||||
- ZendeskAPI Ruby 1.35.0
|
||||
Authorization:
|
||||
- Basic Ym9iLnNtaXRoQHpudW55LmNvbS90b2tlbjoxbnY0bDFkVDBLM04=
|
||||
response:
|
||||
|
@ -99,17 +107,19 @@ http_interactions:
|
|||
message: OK
|
||||
headers:
|
||||
Date:
|
||||
- Fri, 20 Aug 2021 13:25:26 GMT
|
||||
- Thu, 21 Apr 2022 06:41:37 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
Connection:
|
||||
- keep-alive
|
||||
Zendesk-Api-Version:
|
||||
- '2022-01-01'
|
||||
X-Zendesk-Api-Version:
|
||||
- v2
|
||||
X-Zendesk-Application-Version:
|
||||
- v9449
|
||||
- v12002
|
||||
X-Frame-Options:
|
||||
- SAMEORIGIN
|
||||
Access-Control-Expose-Headers:
|
||||
|
@ -123,16 +133,25 @@ http_interactions:
|
|||
Strict-Transport-Security:
|
||||
- max-age=31536000;
|
||||
Etag:
|
||||
- W/"c16a8e7f40dc49f6c7a5779346f3c773"
|
||||
- W/"2b7969c833b48316e4ac12793049abe7"
|
||||
Cache-Control:
|
||||
- max-age=0, private, must-revalidate
|
||||
X-Zendesk-Origin-Server:
|
||||
- classic-app-server-5d8ffc66d-pzw6f
|
||||
- classic-app-server-5fd77bc484-hpfzd
|
||||
Set-Cookie:
|
||||
- __cfruid=79adb7c2df41a61aa3e3827f617cf65835f8b1f6-1650523297; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- _zendesk_cookie=BAhJIhl7ImRldmljZV90b2tlbnMiOnt9fQY6BkVU--459ed01949a36415c1716b5711271c3d08918307;
|
||||
path=/; expires=Fri, 21 Apr 2023 05:07:45 GMT; secure; HttpOnly; SameSite=None
|
||||
X-Request-Id:
|
||||
- 681bf2984c344ab6-FRA
|
||||
- 681bf2984c344ab6-FRA
|
||||
- 6ff4228e8a48690a-FRA
|
||||
- 6ff4228e8a48690a-FRA
|
||||
X-Runtime:
|
||||
- '0.066590'
|
||||
- '0.046594'
|
||||
X-Envoy-Upstream-Service-Time:
|
||||
- '48'
|
||||
X-Envoy-Decorator-Operation:
|
||||
- classic.classic.svc.cluster.local:80/*
|
||||
X-Zendesk-Zorg:
|
||||
- 'yes'
|
||||
Content-Encoding:
|
||||
|
@ -144,19 +163,16 @@ http_interactions:
|
|||
Expect-Ct:
|
||||
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
||||
Report-To:
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=cwUvgYEHOGen9rhZ%2BFsLRQZylLWiDDmn1uoAXDaEOX%2BeA3ySRCVYGcsKyQ5n1pSycw62KiJTtcIdzv3gwm7khxw2eg%2F44822OVVF3wvnmjPfqH2R2U5RIlLRzZ80C69NuNo6PsCdOg%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=qdKyzro4oCMEEJSaEwrr7OO469UKyjeir0cEBBcCMuzxBTPaYsTM2zkEEBnvzXrIiydDGKFEz4vAgzMZ1YeSOii3PwZsLSCE%2FDzxy2fZZpFM3L%2FkPj7L0pRG5reotT1SV8HKJ4gbVw%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
Nel:
|
||||
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
|
||||
Set-Cookie:
|
||||
- __cfruid=7400e1827f504a7a5cfdaa3cdb9f909042030241-1629465926; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
|
||||
Server:
|
||||
- cloudflare
|
||||
Cf-Ray:
|
||||
- 681bf2984c344ab6-FRA
|
||||
- 6ff4228e8a48690a-FRA
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: !binary |-
|
||||
H4sIAAAAAAAAA12QW0/CQBCF/wrZ53qPxJKQKApqIFUJWMJLM20HOmUvzbJboIT/7raNxPi2c875cmb2yOwWNesdGaWsJy3nHrOa/z4lCGQ9FlCSmY7GNW2NJtQGdWeA0prKsR5DAeQQRrIETukj7kEUHC8TJZybaASDaQTmXFCk/xRDAqNKybpsgJqTdCCBhOivM7RaFXh1DhRZQ7RbbzPQrqXRImlFXJ/VWk4z6nfgKgGOUX3ug8faybWm6BqVXoOkCgwp2SRaXiteL4YyvWh+y2MlaloRusQK+BY9BtZkKA0lZA6RURuUDtjlOAvnn/7kdpEHi3CyzMvRNI3L+2BUlG/+JA9v8rGYv4ZjOzzA/u76I1geUj9YBbEvqvdNHH8nMz8LDbw8F7vuoqunT92vfp+dTj/YSFq+uAEAAA==
|
||||
recorded_at: Fri, 20 Aug 2021 13:25:26 GMT
|
||||
recorded_with: VCR 6.0.0
|
||||
H4sIAAAAAAAAA12QW2vCQBCF/4rsa9MaFYsIQg0JtpWmouiDL2FNJsnQvYTNrHjB/95NglL6tnPO+Tgze2W2BsOmV4YZmyorhMesEfen4hLYlMWYltQzUGBNBsEQmF4AytLFsR4DydEhDNWRC8ze4MRlJeAl1dK5qQFOkCWcHgVV9k8hlJBctGrKAjAClQORK578dSJrdAX9R6AqW6Lbui65cS2tligrD81ZneU00vdB6JQLSJpzJx7rJteagWvUpuAKL5xQqzbR8UaLZjFQ2XP7Wx47gsEcwSVyLmrwGLdUgiJMkc4J6R9QDtCfcbSN/CGFavC60EHej8faiO1O7evyTN+70A9G7/7yaZQXq4kMP8p9bv1THMZw+DoON/56Md6siC/j03YdnQeb9W4+L2Yzdrv9AgEMJ7u4AQAA
|
||||
recorded_at: Thu, 21 Apr 2022 06:41:37 GMT
|
||||
recorded_with: VCR 6.1.0
|
||||
|
|
|
@ -21,24 +21,30 @@ http_interactions:
|
|||
message: Not Found
|
||||
headers:
|
||||
Date:
|
||||
- Fri, 20 Aug 2021 13:25:20 GMT
|
||||
- Thu, 21 Apr 2022 06:41:31 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
Connection:
|
||||
- keep-alive
|
||||
Zendesk-Api-Version:
|
||||
- '2022-01-01'
|
||||
Strict-Transport-Security:
|
||||
- max-age=0;
|
||||
Cache-Control:
|
||||
- no-cache
|
||||
X-Zendesk-Origin-Server:
|
||||
- classic-app-server-687bcbddf6-x7wfr
|
||||
- classic-app-server-6d4cf7447c-ktj5z
|
||||
X-Request-Id:
|
||||
- 681bf2721fb6176e-FRA
|
||||
- 681bf2721fb6176e-FRA
|
||||
- 6ff4226ab9ec9a18-FRA
|
||||
- 6ff4226ab9ec9a18-FRA
|
||||
X-Runtime:
|
||||
- '0.010825'
|
||||
- '0.008914'
|
||||
X-Envoy-Upstream-Service-Time:
|
||||
- '10'
|
||||
X-Envoy-Decorator-Operation:
|
||||
- classic.classic.svc.cluster.local:80/*
|
||||
X-Zendesk-Zorg:
|
||||
- 'yes'
|
||||
Cf-Cache-Status:
|
||||
|
@ -46,19 +52,19 @@ http_interactions:
|
|||
Expect-Ct:
|
||||
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
||||
Set-Cookie:
|
||||
- __cf_bm=25e43ee2df7527a44ececb61b288b058f3e93618-1629465920-1800-AV0sJMJfHlILXaL3XuAK9Isde5xLN3TIuOcagCSyUKzZUZjl3gq3zXQvk1ZIOlHwNmC7FbC6germXXB+pTmT6Q3w7Fv78hiT4Qxf4huJ5ZeQ;
|
||||
path=/; expires=Fri, 20-Aug-21 13:55:20 GMT; domain=.zendesk.com; HttpOnly;
|
||||
- __cf_bm=FWrOgqxG6FGc7l_1Q0RIx31t3Ri1i.SEnZvQSzfNZ6Q-1650523291-0-AR9JBpI7lJDGr/5G4Ij7lkXEZSN41auRmN1uGAD2fjRD9x445OHWQ0l3xChcfDzO8HOVp9Nuws31CiPohMDeaV6cVw2+R6EwSNmmmveGfIYQ;
|
||||
path=/; expires=Thu, 21-Apr-22 07:11:31 GMT; domain=.zendesk.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- __cfruid=a2f5d943a0947fed81d7e574ebc7369eaf3da66d-1629465920; path=/; domain=.zendesk.com;
|
||||
- __cfruid=cd538244bb8005e025535f93c633690113b796d3-1650523291; path=/; domain=.zendesk.com;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
Report-To:
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=BwKWE1NbxNZpR7KP1tzIuOVmCbyQZK60K0SV%2Bu4tgV%2BRss%2BKbUBqjDYc%2B4xypzDLgdaMf9OeP8sHV%2FhllZ36MuApT%2BEzF%2B61XnuZmHgArSDmSQmvbF3RlWXtNclVCuArMq9fWvf2p7SMIpMDHYk%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=%2FjmK2rN5tIzrV7WrgI5n9bZQx%2Fr6tlm6i%2FYBM14gXZD1qKpiS00cusKMqNxgLgeuiVwZRiPm6955ZEpWpZv%2FcZ0AvYP2Gv%2FY0D3IuslacKAqTOvq8rzei8mZlSwdQn7FNUVL7DucNug5Ao7ROPA%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
Nel:
|
||||
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
|
||||
Server:
|
||||
- cloudflare
|
||||
Cf-Ray:
|
||||
- 681bf2721fb6176e-FRA
|
||||
- 6ff4226ab9ec9a18-FRA
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: |
|
||||
|
@ -68,5 +74,5 @@ http_interactions:
|
|||
"message": "There is no help desk configured at this address. This means that the address is available and that you can claim it at http://www.zendesk.com/signup"
|
||||
}
|
||||
}
|
||||
recorded_at: Fri, 20 Aug 2021 13:25:20 GMT
|
||||
recorded_with: VCR 6.0.0
|
||||
recorded_at: Thu, 21 Apr 2022 06:41:31 GMT
|
||||
recorded_with: VCR 6.1.0
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: "<IMPORT_ZENDESK_ENDPOINT>/users/me"
|
||||
uri: https://<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>/api/v2/users/me
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
|
@ -21,17 +21,19 @@ http_interactions:
|
|||
message: OK
|
||||
headers:
|
||||
Date:
|
||||
- Fri, 20 Aug 2021 13:25:32 GMT
|
||||
- Thu, 21 Apr 2022 06:41:42 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
Connection:
|
||||
- keep-alive
|
||||
Zendesk-Api-Version:
|
||||
- '2022-01-01'
|
||||
X-Zendesk-Api-Version:
|
||||
- v2
|
||||
X-Zendesk-Application-Version:
|
||||
- v9449
|
||||
- v12002
|
||||
X-Frame-Options:
|
||||
- SAMEORIGIN
|
||||
Access-Control-Expose-Headers:
|
||||
|
@ -45,16 +47,25 @@ http_interactions:
|
|||
Strict-Transport-Security:
|
||||
- max-age=31536000;
|
||||
Etag:
|
||||
- W/"3c0256d85244a27a8ce7b6f5873ccd20"
|
||||
- W/"5262879dbab8653d2b708c0695470dae"
|
||||
Cache-Control:
|
||||
- max-age=0, private, must-revalidate
|
||||
X-Zendesk-Origin-Server:
|
||||
- classic-app-server-5d8ffc66d-4qfvw
|
||||
- classic-app-server-5fd77bc484-58sd4
|
||||
Set-Cookie:
|
||||
- __cfruid=3c9d7ccf2e697016db455aa1d0c0066dd7b78dac-1650523302; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- _zendesk_cookie=BAhJIhl7ImRldmljZV90b2tlbnMiOnt9fQY6BkVU--459ed01949a36415c1716b5711271c3d08918307;
|
||||
path=/; expires=Fri, 21 Apr 2023 05:10:04 GMT; secure; HttpOnly; SameSite=None
|
||||
X-Request-Id:
|
||||
- 681bf2ba78d91456-FRA
|
||||
- 681bf2ba78d91456-FRA
|
||||
- 6ff422ae4c06917a-FRA
|
||||
- 6ff422ae4c06917a-FRA
|
||||
X-Runtime:
|
||||
- '0.062649'
|
||||
- '0.073449'
|
||||
X-Envoy-Upstream-Service-Time:
|
||||
- '75'
|
||||
X-Envoy-Decorator-Operation:
|
||||
- classic.classic.svc.cluster.local:80/*
|
||||
X-Zendesk-Zorg:
|
||||
- 'yes'
|
||||
X-Content-Type-Options:
|
||||
|
@ -64,23 +75,20 @@ http_interactions:
|
|||
Expect-Ct:
|
||||
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
||||
Report-To:
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=zoYPc%2BRXmsDxXz60KgGj6HbcHwUVl2DMdXJDLG7Puadk819LSODyeTWQVmq%2BWNr6dPfLjl%2BbjgadmjuMkEMh3%2FagyesmlXY6%2FmIE7h7ufqhaf3WDEHy54jYUlnSVDOZsFcaoMYbL0w%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=ChTPako7BNzlx1t4o5S%2Bzub5muS2kwPRrLS6ZDtwmWXaiXVGCtMTte0%2Fwho9CJBhh%2BHYbGXoRacit7qKxf2bT%2BfhSpyqhSJikx0My71X6QecFJrEep1tXZ5yvXmaxwfWCxhg3k%2FLqg%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
Nel:
|
||||
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
|
||||
Set-Cookie:
|
||||
- __cfruid=da46982ffcca5ea958f4e4ca167a32ad2a9f96b7-1629465932; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
|
||||
Server:
|
||||
- cloudflare
|
||||
Cf-Ray:
|
||||
- 681bf2ba78d91456-FRA
|
||||
- 6ff422ae4c06917a-FRA
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: '{"user":{"id":null,"url":null,"name":"Nicht registrierter Benutzer","email":"invalid@example.com","created_at":null,"updated_at":null,"time_zone":"Berlin","iana_time_zone":"Europe/Berlin","phone":null,"shared_phone_number":null,"photo":null,"locale_id":8,"locale":"de","organization_id":null,"role":"end-user","verified":false,"authenticity_token":"K4wyhBU1oaZc51Iy3A0wE4iBxJxbFdcdiGbGTfCiML1zJpFFy6QhSMHp+lzp2PvYoyUtVqunySi7wRpOtrywzg=="}}'
|
||||
recorded_at: Fri, 20 Aug 2021 13:25:31 GMT
|
||||
string: '{"user":{"id":null,"url":null,"name":"Nicht registrierter Benutzer","email":"invalid@example.com","created_at":null,"updated_at":null,"time_zone":"Berlin","iana_time_zone":"Europe/Berlin","phone":null,"shared_phone_number":null,"photo":null,"locale_id":8,"locale":"de","organization_id":null,"role":"end-user","verified":false,"authenticity_token":"YxLq8C5kqK9wlxcPpn7sMg7vz/cebWCx2ad6WSAQSJzfN5/foCWTT1g8wAqSBag9ZvnwXpddicF3vsXOJSRLBA=="}}'
|
||||
recorded_at: Thu, 21 Apr 2022 06:41:42 GMT
|
||||
- request:
|
||||
method: get
|
||||
uri: "<IMPORT_ZENDESK_ENDPOINT>/users/me"
|
||||
uri: https://<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>/api/v2/users/me
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
|
@ -90,7 +98,7 @@ http_interactions:
|
|||
Accept-Encoding:
|
||||
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
||||
User-Agent:
|
||||
- ZendeskAPI Ruby 1.32.0
|
||||
- ZendeskAPI Ruby 1.35.0
|
||||
Authorization:
|
||||
- Basic <IMPORT_ZENDESK_ENDPOINT_BASIC_AUTH>
|
||||
response:
|
||||
|
@ -99,17 +107,19 @@ http_interactions:
|
|||
message: OK
|
||||
headers:
|
||||
Date:
|
||||
- Fri, 20 Aug 2021 13:25:33 GMT
|
||||
- Thu, 21 Apr 2022 06:41:43 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
Connection:
|
||||
- keep-alive
|
||||
Zendesk-Api-Version:
|
||||
- '2022-01-01'
|
||||
X-Zendesk-Api-Version:
|
||||
- v2
|
||||
X-Zendesk-Application-Version:
|
||||
- v9449
|
||||
- v12002
|
||||
X-Frame-Options:
|
||||
- SAMEORIGIN
|
||||
Access-Control-Expose-Headers:
|
||||
|
@ -123,16 +133,25 @@ http_interactions:
|
|||
Strict-Transport-Security:
|
||||
- max-age=31536000;
|
||||
Etag:
|
||||
- W/"f14a46f2e02be3ac54793639fc4a2bab"
|
||||
- W/"0e26f80afd79359c95ef7eb387576889"
|
||||
Cache-Control:
|
||||
- max-age=0, private, must-revalidate
|
||||
X-Zendesk-Origin-Server:
|
||||
- classic-app-server-5d8ffc66d-tlbz4
|
||||
- classic-app-server-5fd77bc484-hpl7r
|
||||
Set-Cookie:
|
||||
- __cfruid=b43edaabc5d3557e6f0ccf3dce44c9295421c11c-1650523303; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- _zendesk_cookie=BAhJIhl7ImRldmljZV90b2tlbnMiOnt9fQY6BkVU--459ed01949a36415c1716b5711271c3d08918307;
|
||||
path=/; expires=Fri, 21 Apr 2023 05:34:37 GMT; secure; HttpOnly; SameSite=None
|
||||
X-Request-Id:
|
||||
- 681bf2c5282d42f7-FRA
|
||||
- 681bf2c5282d42f7-FRA
|
||||
- 6ff422b66ad59110-FRA
|
||||
- 6ff422b66ad59110-FRA
|
||||
X-Runtime:
|
||||
- '0.211401'
|
||||
- '0.106433'
|
||||
X-Envoy-Upstream-Service-Time:
|
||||
- '108'
|
||||
X-Envoy-Decorator-Operation:
|
||||
- classic.classic.svc.cluster.local:80/*
|
||||
X-Zendesk-Zorg:
|
||||
- 'yes'
|
||||
Content-Encoding:
|
||||
|
@ -144,19 +163,16 @@ http_interactions:
|
|||
Expect-Ct:
|
||||
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
||||
Report-To:
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=lptF1lImDKX46TfzAwSGsGGPe8vCgQJGykBIRA%2B%2B%2F50MYmNlyuNV9bqDghfiMLyqZFABSRwpO57DlW8WMoXvCCLngFo7MyPCmxwsWF9DGqdu0uyoB1hRY9CgaDRzPz1yfiwKO8kfkg%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=RYkOq%2FySJmCFdUJL1K4RhSrL822ORqz7mknBGUgO%2FcISZ9Bea84DtyMcNDdpjKrOBsno2TgicFUnVCzCujrzvIsNK18pn1EviQQcvGtA1FW7YC%2F5sQk7luStiJ%2BK1KUsbswEpR2sBg%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
Nel:
|
||||
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
|
||||
Set-Cookie:
|
||||
- __cfruid=194b2ee3473a1a1f8f7c192193f8c8d8240c03b8-1629465933; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
|
||||
Server:
|
||||
- cloudflare
|
||||
Cf-Ray:
|
||||
- 681bf2c5282d42f7-FRA
|
||||
- 6ff422b66ad59110-FRA
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: !binary |-
|
||||
H4sIAAAAAAAAA21T7WrbMBR9laHfSfxRu0kMhW39WDvYYDSlJWMIxb5x1MiSK125TUrfZm+yF9uVk7QdDPIjlo7OPefo6Jl5B5YVz0xWrEiSPB4fZeOjZMC8VaxgK8TWFVG01V5vVqDa0RZ0BW49Kk0TiVZGXRoFChe9HR7dO6PZgGnRAHF8NosP143EFS1BI2TgXZjFyIW1jz1zYKPd0oJAqLhAgqRxkg/j8TCZztK0yBL6zQnj2+o9Jk2G8WSYxrPkqEjGRToJGJQN8K3R/XSwSgY1UmjB3++ce2taiF4B7Wp3Io6TJEvSjM64lbCkp9/h2jeLkBVaDwNGa2hYob1SA6ZMKRTwPsPDF80GPby5Jhpja6HlVqA0egfKs3Ge58cEtkYFmaJqepUdWLmUQES7McLjCjTKUuKGo1mDJvCpz9cSl8mndn7V2ondCHfTfYmO8wf3/XEVx7fusrs7W2utHlT3sMavAJN6fG9mJoovmqu7bC5vz8q5TKeX02/mdHZxfnd+++PkJFzQE4LVQvUyd+ZQ1I4VP1nKfg2YUFLQFyOoKFF2pH0ndBcVK5ZCOYpnn5yoSfzrohIOuTK11Icr/v/1PRq+JHZjebDPQYuFCpEcuGWtBXobciMdFSCVai9KG4T935Asx01LsJ2R0js0De/X3+w1pgIraNjBCYW9BuQWHFpJHqnLewKj1Ya3VnbUQE6VbcgcDdvLOhwIBf7HtvOuDa/mzUEFS+EV8toa3/Za0izPs2l4eBZaY5GXrjsICu+LUylURcOe2d5GRe2tzGPoQ0opKAkLKnrtUIaSskuvqz+/2cvLy1+xR8KQ5AMAAA==
|
||||
recorded_at: Fri, 20 Aug 2021 13:25:33 GMT
|
||||
recorded_with: VCR 6.0.0
|
||||
H4sIAAAAAAAAA21T227TQBD9FbSvJPG9qS1VAipKqYQq0rRSQWi1tif2Nutds5ekTtW/4U/4MWadpBQJyw/2zNmZM2fOPhFnQJPiifCaFFGUhfMknSfRhDgtSEFaa3tTBMFOOjm0IPrZDmQNZj2rVBewngebOPAlTPD38OzBKEkmRLIOsMYHVb656bhtMQQd475uqcqZ8bF3Y2VfDbOVBmahpswiJA6jbBrOp1G+jOMijfD9hhjX168xcTwN02kcLcOTIkmL5NRjLO+A7pQcu4MW3LPhTDL6OvPRadVD8ALo2/2JMIyiNIpTPGNappHPmKHSdaXXasWEgQnBoFWkkE6ICRGqYgLoKOLxD5uDnN7eYB2lGyb5jlmu5B6UpfMsy04QrJXwPFndjTQ3oPmKAxay2mEb5mwL0vKK24FatQaJ4OTzcnmRJlfN9SLY6U/rt0PDt6eL1NkguBu6225RDvK+clv+OJx3V/laZHf3oskXD6dh9vP6Slx/2eX3t1t5Gbyf64ch7M7bi69nZ35Djxa0ZGKkuR/OssaQ4juJyQ/kIzjDP4JQVlm+Qe57onutXuQ5SMcaJP8SFMxYKlTD5XHH/9/fVtEVVlea+vEpSFYKL8lBesMbyazTXjfkUYNFVx1ISWXh8OmVpXboEZaiuZyxqqNjcNxTHvonicMsx3SnatAMWx7nQcnXYKkGYzXHSdHSBz2UFAPtNd+gESk6t8MRseWB3PGA9/E/wxtnen95/s5Rw4o5YWmjletHUnGaZWnu75+GXmlLK7M5EvLXjKI1RI3Nno7z1GjiWm29K2LUQnAo0e+Nsdx7lVw6Wf/+RZ6fn/8AC1q1LOsDAAA=
|
||||
recorded_at: Thu, 21 Apr 2022 06:41:43 GMT
|
||||
recorded_with: VCR 6.1.0
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: "<IMPORT_ZENDESK_ENDPOINT>/users/me"
|
||||
uri: https://<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>/api/v2/users/me
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
|
@ -21,17 +21,19 @@ http_interactions:
|
|||
message: OK
|
||||
headers:
|
||||
Date:
|
||||
- Fri, 20 Aug 2021 13:25:28 GMT
|
||||
- Thu, 21 Apr 2022 06:41:39 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
Connection:
|
||||
- keep-alive
|
||||
Zendesk-Api-Version:
|
||||
- '2022-01-01'
|
||||
X-Zendesk-Api-Version:
|
||||
- v2
|
||||
X-Zendesk-Application-Version:
|
||||
- v9449
|
||||
- v12002
|
||||
X-Frame-Options:
|
||||
- SAMEORIGIN
|
||||
Access-Control-Expose-Headers:
|
||||
|
@ -45,16 +47,25 @@ http_interactions:
|
|||
Strict-Transport-Security:
|
||||
- max-age=31536000;
|
||||
Etag:
|
||||
- W/"8375b55c4a431d8dfb8712262f6e3751"
|
||||
- W/"681d3e26da91ec1ec3e7adc144a3f491"
|
||||
Cache-Control:
|
||||
- max-age=0, private, must-revalidate
|
||||
X-Zendesk-Origin-Server:
|
||||
- classic-app-server-5d8ffc66d-zdfqv
|
||||
- classic-app-server-5fd77bc484-k6qv7
|
||||
Set-Cookie:
|
||||
- __cfruid=f5aac50801f61e2f1269a27eeca01b5e93639828-1650523299; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- _zendesk_cookie=BAhJIhl7ImRldmljZV90b2tlbnMiOnt9fQY6BkVU--459ed01949a36415c1716b5711271c3d08918307;
|
||||
path=/; expires=Fri, 21 Apr 2023 05:12:03 GMT; secure; HttpOnly; SameSite=None
|
||||
X-Request-Id:
|
||||
- 681bf2a41cd942e1-FRA
|
||||
- 681bf2a41cd942e1-FRA
|
||||
- 6ff4229a4e229be2-FRA
|
||||
- 6ff4229a4e229be2-FRA
|
||||
X-Runtime:
|
||||
- '0.063942'
|
||||
- '0.052510'
|
||||
X-Envoy-Upstream-Service-Time:
|
||||
- '54'
|
||||
X-Envoy-Decorator-Operation:
|
||||
- classic.classic.svc.cluster.local:80/*
|
||||
X-Zendesk-Zorg:
|
||||
- 'yes'
|
||||
X-Content-Type-Options:
|
||||
|
@ -64,23 +75,20 @@ http_interactions:
|
|||
Expect-Ct:
|
||||
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
||||
Report-To:
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=0adRYvUqj6DLw53lysn1c4fdAfplJ9hZLGI9u43zLUexARu6T0reARX2x1XO9KniTTM54OzlS3ViC3jlmu3iwTUzxq2%2BrAos0l6bY1sLYEcPvwgdUUW%2Fu8luaL2vx2k5MVgogIw89Q%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=eS0Ikmx6N5lecS35yXPRjBvNhkhBX3VYvGwDNEJAZhNOoz0gtKggbBtMHsDkLTI%2Fkw%2BmTRgGCt19QxsdEIToASFxW1YOJZNbTYe5fgN0hPTLll9%2FdEnITqSsZl1orTwQ9zu71rbdiA%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
Nel:
|
||||
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
|
||||
Set-Cookie:
|
||||
- __cfruid=d91ca7754792696e2e55df017a943bfcba44da63-1629465928; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
|
||||
Server:
|
||||
- cloudflare
|
||||
Cf-Ray:
|
||||
- 681bf2a41cd942e1-FRA
|
||||
- 6ff4229a4e229be2-FRA
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: '{"user":{"id":null,"url":null,"name":"Nicht registrierter Benutzer","email":"invalid@example.com","created_at":null,"updated_at":null,"time_zone":"Berlin","iana_time_zone":"Europe/Berlin","phone":null,"shared_phone_number":null,"photo":null,"locale_id":8,"locale":"de","organization_id":null,"role":"end-user","verified":false,"authenticity_token":"iN4i2T1LrOEa1Sstda+gU2F9ARv5ICRoTRVuKOiX01BCr29ys5aHk+ANDErHOy9TluEfw9fySXlsnTXG6MetGg=="}}'
|
||||
recorded_at: Fri, 20 Aug 2021 13:25:28 GMT
|
||||
string: '{"user":{"id":null,"url":null,"name":"Nicht registrierter Benutzer","email":"invalid@example.com","created_at":null,"updated_at":null,"time_zone":"Berlin","iana_time_zone":"Europe/Berlin","phone":null,"shared_phone_number":null,"photo":null,"locale_id":8,"locale":"de","organization_id":null,"role":"end-user","verified":false,"authenticity_token":"6mTyHmp0u+ZL2SB8tJn/pLJU6HQg4A3pl+rBVJurfrTLAPr7EvwfsEyXpTUV1ymYOJHeT2h1MBQ+Wdb6BBqoBQ=="}}'
|
||||
recorded_at: Thu, 21 Apr 2022 06:41:39 GMT
|
||||
- request:
|
||||
method: get
|
||||
uri: "<IMPORT_ZENDESK_ENDPOINT>/users/me"
|
||||
uri: https://<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>/api/v2/users/me
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
|
@ -90,7 +98,7 @@ http_interactions:
|
|||
Accept-Encoding:
|
||||
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
||||
User-Agent:
|
||||
- ZendeskAPI Ruby 1.32.0
|
||||
- ZendeskAPI Ruby 1.35.0
|
||||
Authorization:
|
||||
- Basic Ym9iLnNtaXRoQHpudW55LmNvbS90b2tlbjoxbnY0bDFkVDBLM04=
|
||||
response:
|
||||
|
@ -99,17 +107,19 @@ http_interactions:
|
|||
message: OK
|
||||
headers:
|
||||
Date:
|
||||
- Fri, 20 Aug 2021 13:25:30 GMT
|
||||
- Thu, 21 Apr 2022 06:41:40 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
Connection:
|
||||
- keep-alive
|
||||
Zendesk-Api-Version:
|
||||
- '2022-01-01'
|
||||
X-Zendesk-Api-Version:
|
||||
- v2
|
||||
X-Zendesk-Application-Version:
|
||||
- v9449
|
||||
- v12002
|
||||
X-Frame-Options:
|
||||
- SAMEORIGIN
|
||||
Access-Control-Expose-Headers:
|
||||
|
@ -123,16 +133,25 @@ http_interactions:
|
|||
Strict-Transport-Security:
|
||||
- max-age=31536000;
|
||||
Etag:
|
||||
- W/"3a3354af8bec0d0ee73e1dfe8f2afe57"
|
||||
- W/"afe75741108474e98b4b5f9207017b01"
|
||||
Cache-Control:
|
||||
- max-age=0, private, must-revalidate
|
||||
X-Zendesk-Origin-Server:
|
||||
- classic-app-server-5d8ffc66d-gcvf7
|
||||
- classic-app-server-5fd77bc484-blnb7
|
||||
Set-Cookie:
|
||||
- __cfruid=e1b5fda03f1d6a9efdd616432821006b8eb08151-1650523300; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- _zendesk_cookie=BAhJIhl7ImRldmljZV90b2tlbnMiOnt9fQY6BkVU--459ed01949a36415c1716b5711271c3d08918307;
|
||||
path=/; expires=Fri, 21 Apr 2023 05:11:27 GMT; secure; HttpOnly; SameSite=None
|
||||
X-Request-Id:
|
||||
- 681bf2aebcae4ec8-FRA
|
||||
- 681bf2aebcae4ec8-FRA
|
||||
- 6ff422a21e446901-FRA
|
||||
- 6ff422a21e446901-FRA
|
||||
X-Runtime:
|
||||
- '0.070674'
|
||||
- '0.051355'
|
||||
X-Envoy-Upstream-Service-Time:
|
||||
- '54'
|
||||
X-Envoy-Decorator-Operation:
|
||||
- classic.classic.svc.cluster.local:80/*
|
||||
X-Zendesk-Zorg:
|
||||
- 'yes'
|
||||
Content-Encoding:
|
||||
|
@ -144,19 +163,16 @@ http_interactions:
|
|||
Expect-Ct:
|
||||
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
||||
Report-To:
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=3EKqvaJktbKP3J3zBer88hwW1KsiD5eyi6EFc7sUE8Ymynx%2FtRpMMTjeO2kTzweHgePS3b5NPJB12t%2BCcWp9f2yTQtlp2VRmWJknJeUEiog%2B4NcuBmjyah4bgObY7yQGJaFxWYbxEw%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=z0hCFNZdqve4l9brdI1slN6LtqQIToaBk1UgNInq9XGTw3cNpm7MeVelN3a%2Faypwt6jUlU3bdjG1EzVc6sDBKUurkBrDtOU6TRKVtlf3PpVblYyKQLojP1Jcr45HHe6kch%2B1hnSIrw%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
Nel:
|
||||
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
|
||||
Set-Cookie:
|
||||
- __cfruid=cde6c6306e84619802437e5b4c76a238af75f3fe-1629465930; path=/; domain=.<IMPORT_ZENDESK_ENDPOINT_HOSTNAME>;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
- '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
|
||||
Server:
|
||||
- cloudflare
|
||||
Cf-Ray:
|
||||
- 681bf2aebcae4ec8-FRA
|
||||
- 6ff422a21e446901-FRA
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: !binary |-
|
||||
H4sIAAAAAAAAA12QUWvCQBCE/4rcq2mDpVQRhKpYGsSUKqboSziTjVm87MXLRjTif+8lQSl9u52Zj9m9qygLMGJ4FRiLIZVKOaI06v4kmYEYCh+jlDsG9liwQTAMpjMBKrmyrCMgk2gRgXSSCuN3OMssV/Ac6cy6kQHJEIeSHwV5/E9hzCCsNNVlEzAKyYIoSYZ/nVlpdA7uI5CnDdFuXaTS2JZGC6nMdvVZrWU11vdB6UgqCOtzB45oJ9sag23UZi8JK8moqUm0vNGqXgwofmp+yxEnMJgg2EQiVQGOkCWnQIwR8iVkfQCyAA+662A3Xv+8fCTb1cGf+6/eFOfH8bG3WC9mF7psvMpbVm+9ioLg01vwWX1/9fPYTQ7bLpz6Ew91Nl8N/G3X9frLab5xe/vRSNxuv0GxQ424AQAA
|
||||
recorded_at: Fri, 20 Aug 2021 13:25:30 GMT
|
||||
recorded_with: VCR 6.0.0
|
||||
H4sIAAAAAAAAA12QUW+CQBCE/4q5Z1pT00ZrYlKp1tQaU5X6ShZYZfW4w+VAqvG/e0A0Td9uZ+bL7N5Z5Bmy6J8FRaKvcikdkbO8PRUkKPpiTmFsWoxbygwTskFuuahyc7KsIzABsoggVYCk6A1LSFKJj6FOrBsygsHIB3MvSKN/iqEE/ZNWVZmLLElZkECB/9cZ56xTbN8DaVwTzdZZDGxbas1XeRJUZzWW1Yy+DVKHINGvzu05oplsa4S2UfMWFJ3AkFZ1ouFZy2oxVNFD/VuOKJBpQ2gTG5AZOgJyE6MyFJL59Y3eo7JAj8Hz5Kic6ex7uFgextn8vXjpjNZY4GuxcqeBt1oPSzwevrpA5Ux6z17yEwfhVK4/drtJ8NleTo68OUyH+17adTtPo91sMRiIy+UKxPOwHbgBAAA=
|
||||
recorded_at: Thu, 21 Apr 2022 06:41:40 GMT
|
||||
recorded_with: VCR 6.1.0
|
||||
|
|
|
@ -21,24 +21,30 @@ http_interactions:
|
|||
message: Not Found
|
||||
headers:
|
||||
Date:
|
||||
- Fri, 20 Aug 2021 13:25:22 GMT
|
||||
- Thu, 21 Apr 2022 06:41:33 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
Connection:
|
||||
- keep-alive
|
||||
Zendesk-Api-Version:
|
||||
- '2022-01-01'
|
||||
Strict-Transport-Security:
|
||||
- max-age=0;
|
||||
Cache-Control:
|
||||
- no-cache
|
||||
X-Zendesk-Origin-Server:
|
||||
- classic-app-server-687bcbddf6-thrh8
|
||||
- classic-app-server-6d4cf7447c-xg5pq
|
||||
X-Request-Id:
|
||||
- 681bf27f9911dfe3-FRA
|
||||
- 681bf27f9911dfe3-FRA
|
||||
- 6ff42278bce768ec-FRA
|
||||
- 6ff42278bce768ec-FRA
|
||||
X-Runtime:
|
||||
- '0.013831'
|
||||
- '0.011231'
|
||||
X-Envoy-Upstream-Service-Time:
|
||||
- '12'
|
||||
X-Envoy-Decorator-Operation:
|
||||
- classic.classic.svc.cluster.local:80/*
|
||||
X-Zendesk-Zorg:
|
||||
- 'yes'
|
||||
Cf-Cache-Status:
|
||||
|
@ -46,19 +52,19 @@ http_interactions:
|
|||
Expect-Ct:
|
||||
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
||||
Set-Cookie:
|
||||
- __cf_bm=a7f835bb234b38bfc60b856171221a38404366dc-1629465922-1800-AXfdmkG4tiWbLv6YOmgNJw0zp7sMKZurLIa0h/dPedp8qQd+5exVovRZO25rrHNZXnxm8LVadLpPxLYGO5WCXzrwoqVimHeyNRwLvV1AGcDN;
|
||||
path=/; expires=Fri, 20-Aug-21 13:55:22 GMT; domain=.zendesk.com; HttpOnly;
|
||||
- __cf_bm=bE56W0w56GUFHqxTkvSrFU.fX8F48AMZ1oroZJZwtuA-1650523293-0-AY+ps4kQ+Qr5d1JazKTI3tYVb94Gzce7QXKhTGIGhTZYedaETompkjcLlX2al7o1m36FcQaFtdpreRvFQFuXf9HY0lRCwKpXbRDAqc+E6t2z;
|
||||
path=/; expires=Thu, 21-Apr-22 07:11:33 GMT; domain=.zendesk.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- __cfruid=adb8a84aaa2e97ae23ba7001b3ed6d3f495e8165-1629465922; path=/; domain=.zendesk.com;
|
||||
- __cfruid=bd6d8ffcf4725c1722cf4b55e8054e3809031aab-1650523293; path=/; domain=.zendesk.com;
|
||||
HttpOnly; Secure; SameSite=None
|
||||
Report-To:
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=LNVzHYTBH8fWiM2jiWF7B4mIqaHP3B2OeB8AhB6FhS7c0rN%2BA%2B9DAhJ%2FqDdKQ2t0Xk%2B%2FGwhkIsKvBGk1JKqU3ZamMtlqgp9qKbqAwTiCOcX1fenrU2jXHIeILZjl%2BDUhboztaA4agu9IiQauN88%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=I1eBI7bQDQUG%2BadcjaG4Tu%2FljLV9IMjfEzO387O9f%2F4OjpQZZ4A2uR9on%2B9SHnQbsJJ1Q27gKShvn3NpGj9O6fNo9qivsfDLjbqvsMtqL83FP8%2Bxnk53FT%2FbM5mYDOM8e0eRfLicLBzGjcqi8Pg%3D"}],"group":"cf-nel","max_age":604800}'
|
||||
Nel:
|
||||
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
|
||||
Server:
|
||||
- cloudflare
|
||||
Cf-Ray:
|
||||
- 681bf27f9911dfe3-FRA
|
||||
- 6ff42278bce768ec-FRA
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: |
|
||||
|
@ -68,5 +74,5 @@ http_interactions:
|
|||
"message": "There is no help desk configured at this address. This means that the address is available and that you can claim it at http://www.zendesk.com/signup"
|
||||
}
|
||||
}
|
||||
recorded_at: Fri, 20 Aug 2021 13:25:22 GMT
|
||||
recorded_with: VCR 6.0.0
|
||||
recorded_at: Thu, 21 Apr 2022 06:41:33 GMT
|
||||
recorded_with: VCR 6.1.0
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue