Skip to content

Instantly share code, notes, and snippets.

View makefunstuff's full-sized avatar
😇
Why?

Iurii Plugatariov makefunstuff

😇
Why?
View GitHub Profile
class CreateUpdates < ActiveRecord::Migration[5.0]
def change
create_table :updates do |t|
t.integer :user_id
t.integer :mood
t.text :message
t.timestamps
end
end
class CreateUsers < ActiveRecord::Migration[5.0]
def change
create_table :users do |t|
t.string :facebook_id
t.datetime :notification_time
t.timestamps
end
end
end
class Update < ApplicationRecord
enum mood: [:good, :normal, :bad]
belongs_to :user
end
class User < ApplicationRecord
has_many :updates
end
namespace :bot_setup do
desc 'Create get started button'
task get_started_button_create: :environment do
Facebook::Messenger::Thread.set({
setting_type: 'call_to_actions',
thread_state: 'new_thread',
call_to_actions: [
{
payload: 'SETUP_BOT'
}
require 'facebook/messenger'
include Facebook::Messenger
Bot.on :message do |message|
message.id # => 'mid.1457764197618:41d102a3e1ae206a38'
message.sender # => { 'id' => '1008372609250235' }
message.seq # => 73
message.sent_at # => 2016-04-22 21:30:36 +0200
message.text # => 'Hello, bot!'
Rails.application.routes.draw do
mount Facebook::Messenger::Server, at: 'webhooks/messenger'
end
require_relative 'boot'
require "rails"
# Pick the frameworks you want:
require "active_model/railtie"
require "active_job/railtie"
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_view/railtie"
unless Rails.env.production?
bot_files = Dir[Rails.root.join('app', 'messenger_bot', '**', '*.rb')]
bot_reloader = ActiveSupport::FileUpdateChecker.new(bot_files) do
bot_files.each{ |file| require_dependency file }
end
ActionDispatch::Callbacks.to_prepare do
bot_reloader.execute_if_updated
end
// tracker middleware
app.use((req, res, next) => {
if (req.metadata.event) {
tracking(req.metadata.event);
next();
}
});
// logger middleware
app.use('/data', (req, res, next) => {