da9ac8b26d
* Added dotenv-rails gem to manage environment variables * Added dotenv-rails gem to manage environment variables * Removed figaro which was used earlier for this purpose * Standardized variable names * Changed all env variables to be upper case. This included changes in files referencing env variables. * Added example env file with all variables set to empty value * Removed the earlier setup of copying application.yml and database.yml and the scripts and documentation associated to this * Docker setup * Added docker file for building the docker images * Added entrypoint.sh script which is referenced inside the Docker image * Cloned the Procfile for development using docker which has slight change compared to regular procfile * Added the docker-compose.yml which has 3 service's configuration, postgres, redis and chatwoot server and a mounted volume for postgres * Added docker related info to documentation * Added the docker setup info in the documentation * Added info for using`rbenv` instead of rvm for managing ruby versions * Updated the documentation for environment variables to have one about `dotenv-rails` gem and removed the documentation about the old copy paste method used by figaro * Changing the postgres database, username and password as environment variables * Removed database.yml from gitignore * Made the postgres databse, username and password as environemnt variables * Added this in documentation * Added a quick setup page * Added quick setup page * Removed the docs from README and added link to the docs in website * Removed the figaro related things from circle.ci config * Adding external volume for redis in docker compose * Added instructions for adding the redis volume in docs
51 lines
1.1 KiB
Ruby
51 lines
1.1 KiB
Ruby
unless Rails.env.production?
|
|
bot_files = Dir[Rails.root.join('app', 'bot', '**', '*.rb')]
|
|
bot_reloader = ActiveSupport::FileUpdateChecker.new(bot_files) do
|
|
bot_files.each { |file| require_dependency file }
|
|
end
|
|
|
|
ActiveSupport::Reloader.to_prepare do
|
|
bot_reloader.execute_if_updated
|
|
end
|
|
|
|
bot_files.each { |file| require_dependency file }
|
|
end
|
|
|
|
module Facebook
|
|
module Messenger
|
|
module Incoming
|
|
# The Message class represents an incoming Facebook Messenger message.
|
|
class Message
|
|
include Facebook::Messenger::Incoming::Common
|
|
|
|
def app_id
|
|
@messaging['message']['app_id']
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
class ChatwootFbProvider < Facebook::Messenger::Configuration::Providers::Base
|
|
def valid_verify_token?(_verify_token)
|
|
ENV['FB_VERIFY_TOKEN']
|
|
end
|
|
|
|
def app_secret_for(_page_id)
|
|
ENV['FB_APP_SECRET']
|
|
end
|
|
|
|
def access_token_for(page_id)
|
|
Channel::FacebookPage.where(page_id: page_id).last.access_token
|
|
end
|
|
|
|
private
|
|
|
|
def bot
|
|
MyApp::Bot
|
|
end
|
|
end
|
|
|
|
Facebook::Messenger.configure do |config|
|
|
config.provider = ChatwootFbProvider.new
|
|
end
|