This repository has been archived by the owner on Apr 14, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.rb
100 lines (89 loc) · 2.73 KB
/
app.rb
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
require 'sinatra'
require 'sinatra/reloader'
require 'slim'
require 'slim/include'
require 'compass'
require 'coffee-script'
require 'lib/mocks/slack_mock'
require 'lib/connections/slack_connection'
require 'lib/services/messages_service'
require 'lib/services/channels_service'
require 'lib/models/api/response_base'
module Komonjo
# routing
class App < Sinatra::Base
enable :sessions
configure :development do
register Sinatra::Reloader
require 'dotenv'
Dotenv.load
end
Compass.configuration do |c|
c.project_path = File.dirname(__FILE__)
c.sass_dir = 'views/scss'
end
get '/css/:name.css' do
scss :"scss/#{params[:name]}"
end
get '/scripts/:name.js' do
coffee :"coffee/#{params[:name]}"
end
post '/api/login' do
res = Komonjo::Model::API::ResponseBase.new
api_token = params[:api_token] || ''
if api_token != ''
session[:api_token] = api_token
else
res.ok = false
res.message = 'ERROR: api_token is required.'
end
res.to_json
end
get '/api/channels' do
res = Komonjo::Model::API::ResponseBase.new
puts session[:api_token]
api_token = session[:api_token] || ''
if !api_token.nil? && api_token != ''
channels_service = Komonjo::Service::ChannelsService.new(api_token)
res.data = channels_service.channels.map(&:name)
else
res.ok = false
res.message = 'ERROR: api_token is required.'
end
res.to_json
end
get '/api/messages' do
res = Komonjo::Model::API::ResponseBase.new
api_token = session[:api_token] || ''
channel_name = params[:channel_name] || ''
if api_token != '' && channel_name != ''
messages_service = Komonjo::Service::MessagesService.new(api_token)
res.data = messages_service.messages(channel_name)
else
res.ok = false
res.message = 'ERROR: api_token and channel_name are required.'
end
res.to_json
end
get '/' do
@api_token = ENV['KOMONJO_SLACK_API_TOKEN'] || ''
if @api_token != ''
channels_service = Komonjo::Service::ChannelsService.new(@api_token)
@channels = channels_service.channels.map(&:name)
else
@channels = []
end
@messages = Komonjo::Mock::SlackMock.chat_logs
slim :index
end
post '/' do
@api_token = params[:api_token]
@channel_name = params[:channel_name]
channels_service = Komonjo::Service::ChannelsService.new(@api_token)
@channels = channels_service.channels.map(&:name)
messages_service = Komonjo::Service::MessagesService.new(@api_token)
@messages = messages_service.messages @channel_name
slim :index
end
end
end