-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrun_app.rb
More file actions
39 lines (30 loc) · 689 Bytes
/
run_app.rb
File metadata and controls
39 lines (30 loc) · 689 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
require 'sinatra/base'
require 'sinatra-initializers'
class RunApp < Sinatra::Base
register Sinatra::Initializers
def self.setup(app_class)
get "/#{app_class.stub}" do
app_class.title
end
post "/#{app_class.stub}/:event" do
event, data, payload = parse_request
if app = app_class.receive(event, data, payload)
"OK"
end
end
end
SupportBeeApp::Base.apps.each do |app|
app.setup_for(self)
end
get "/" do
"OK"
end
def parse_request
parse_json_request
end
def parse_json_request
req = JSON.parse(request.body.read)
[params[:event], req['data'], req['payload']]
end
run! if app_file == $0
end