210 lines
6.3 KiB
Ruby
210 lines
6.3 KiB
Ruby
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
|
|
|
FactoryBot.define do
|
|
factory :channel do
|
|
area { 'Email::Dummy' }
|
|
group { ::Group.find(1) }
|
|
active { true }
|
|
options { nil }
|
|
preferences { nil }
|
|
updated_by_id { 1 }
|
|
created_by_id { 1 }
|
|
|
|
factory :email_channel do
|
|
area { 'Email::Account' }
|
|
options do
|
|
{
|
|
inbound: inbound,
|
|
outbound: outbound,
|
|
}
|
|
end
|
|
|
|
transient do
|
|
inbound do
|
|
{
|
|
adapter: 'null', options: {}
|
|
}
|
|
end
|
|
|
|
outbound do
|
|
{
|
|
adapter: 'sendmail'
|
|
}
|
|
end
|
|
end
|
|
end
|
|
|
|
factory :twitter_channel do
|
|
area { 'Twitter::Account' }
|
|
options do
|
|
{
|
|
adapter: 'twitter',
|
|
user: {
|
|
id: oauth_token&.split('-')&.first,
|
|
screen_name: 'nicole_braun',
|
|
name: 'Nicole Braun',
|
|
},
|
|
auth: {
|
|
external_credential_id: external_credential.id,
|
|
oauth_token: oauth_token,
|
|
oauth_token_secret: oauth_token_secret,
|
|
},
|
|
sync: {
|
|
webhook_id: '',
|
|
mentions: {
|
|
group_id: Group.first.id
|
|
},
|
|
direct_messages: {
|
|
group_id: Group.first.id
|
|
},
|
|
search: [
|
|
{
|
|
term: search_term,
|
|
group_id: Group.first.id
|
|
},
|
|
],
|
|
},
|
|
subscribed_to_webhook_id: external_credential.credentials[:webhook_id],
|
|
}.deep_merge(custom_options)
|
|
end
|
|
|
|
transient do
|
|
custom_options { {} }
|
|
external_credential { create(:twitter_credential) }
|
|
oauth_token { external_credential.credentials[:oauth_token] }
|
|
oauth_token_secret { external_credential.credentials[:oauth_token_secret] }
|
|
search_term { 'zammad' }
|
|
end
|
|
|
|
trait :legacy do
|
|
transient do
|
|
custom_options { { sync: { import_older_tweets: true } } }
|
|
end
|
|
end
|
|
|
|
trait :invalid do
|
|
transient do
|
|
external_credential { create(:twitter_credential, :invalid) }
|
|
end
|
|
end
|
|
end
|
|
|
|
factory :facebook_channel do
|
|
area { 'Facebook::Account' }
|
|
options do
|
|
{
|
|
adapter: 'facebook',
|
|
user: {
|
|
id: ENV['FACEBOOK_ADMIN_USER_ID'],
|
|
name: "#{ENV['FACEBOOK_ADMIN_FIRSTNAME']} #{ENV['FACEBOOK_ADMIN_LASTNAME']}",
|
|
},
|
|
auth: {
|
|
access_token: ENV['FACEBOOK_ADMIN_ACCESS_TOKEN'],
|
|
},
|
|
sync: {
|
|
pages: {
|
|
ENV['FACEBOOK_PAGE_1_ID'] => {
|
|
group_id: Group.first.id,
|
|
}
|
|
}
|
|
},
|
|
pages: [
|
|
{
|
|
id: ENV['FACEBOOK_PAGE_1_ID'],
|
|
name: ENV['FACEBOOK_PAGE_1_NAME'],
|
|
access_token: ENV['FACEBOOK_PAGE_1_ACCCESS_TOKEN'],
|
|
},
|
|
{
|
|
id: ENV['FACEBOOK_PAGE_2_ID'],
|
|
name: ENV['FACEBOOK_PAGE_2_NAME'],
|
|
access_token: ENV['FACEBOOK_PAGE_2_ACCCESS_TOKEN'],
|
|
}
|
|
],
|
|
}
|
|
end
|
|
end
|
|
|
|
factory :google_channel do
|
|
area { 'Google::Account' }
|
|
options do
|
|
{
|
|
'inbound' => {
|
|
'adapter' => 'imap',
|
|
'options' => {
|
|
'auth_type' => 'XOAUTH2',
|
|
'host' => 'imap.gmail.com',
|
|
'ssl' => 'ssl',
|
|
'user' => ENV['GMAIL_USER'],
|
|
'folder' => '',
|
|
'keep_on_server' => false,
|
|
}
|
|
},
|
|
'outbound' => {
|
|
'adapter' => 'smtp',
|
|
'options' => {
|
|
'host' => 'smtp.gmail.com',
|
|
'port' => 465,
|
|
'ssl' => true,
|
|
'user' => ENV['GMAIL_USER'],
|
|
'authentication' => 'xoauth2',
|
|
}
|
|
},
|
|
'auth' => {
|
|
'type' => 'XOAUTH2',
|
|
'provider' => 'google',
|
|
'access_token' => 'xxx',
|
|
'expires_in' => 3599,
|
|
'refresh_token' => ENV['GMAIL_REFRESH_TOKEN'],
|
|
'scope' => 'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile https://mail.google.com/ openid',
|
|
'token_type' => 'Bearer',
|
|
'id_token' => 'xxx',
|
|
'created_at' => 30.days.ago,
|
|
'client_id' => ENV['GMAIL_CLIENT_ID'],
|
|
'client_secret' => ENV['GMAIL_CLIENT_SECRET'],
|
|
}
|
|
}
|
|
end
|
|
end
|
|
|
|
factory :microsoft365_channel do
|
|
area { 'Microsoft365::Account' }
|
|
options do
|
|
{
|
|
'inbound' => {
|
|
'adapter' => 'imap',
|
|
'options' => {
|
|
'auth_type' => 'XOAUTH2',
|
|
'host' => 'outlook.office365.com',
|
|
'ssl' => 'ssl',
|
|
'user' => ENV['MICROSOFT365_USER'],
|
|
'folder' => '',
|
|
'keep_on_server' => false,
|
|
}
|
|
},
|
|
'outbound' => {
|
|
'adapter' => 'smtp',
|
|
'options' => {
|
|
'host' => 'smtp.office365.com',
|
|
'port' => 587,
|
|
'user' => ENV['MICROSOFT365_USER'],
|
|
'authentication' => 'xoauth2',
|
|
}
|
|
},
|
|
'auth' => {
|
|
'type' => 'XOAUTH2',
|
|
'provider' => 'microsoft365',
|
|
'access_token' => 'xxx',
|
|
'expires_in' => 3599,
|
|
'refresh_token' => ENV['MICROSOFT365_REFRESH_TOKEN'],
|
|
'scope' => 'https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send offline_access openid profile email',
|
|
'token_type' => 'Bearer',
|
|
'id_token' => 'xxx',
|
|
'created_at' => 30.days.ago,
|
|
'client_id' => ENV['MICROSOFT365_CLIENT_ID'],
|
|
'client_secret' => ENV['MICROSOFT365_CLIENT_SECRET'],
|
|
}
|
|
}
|
|
end
|
|
end
|
|
end
|
|
end
|