-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.rb
More file actions
55 lines (46 loc) · 1.3 KB
/
app.rb
File metadata and controls
55 lines (46 loc) · 1.3 KB
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
require 'sass/plugin/rack'
require "sinatra/reloader" if development?
require 'uri'
require 'securerandom'
# sassをコンパイルしてcssをよしなにしてくれるようにする
use Sass::Plugin::Rack
# slimでlayoutを使う設定
set :slim, layout: true
# sessionsを許可する
use Rack::Session::Cookie,
expire_after: 2_592_000,
secret: SecureRandom.alphanumeric(64)
require './helpers'
require './routes/api'
get '/' do
slim :index
end
get '/memo' do
redirect '/login' unless login?
slim :memo
end
get '/logout' do
session[:user_id] = nil
redirect '/'
end
get '/login' do
client = MstdnIvory::Client.new('https://mstdn-workers.com')
id, secret = AppRegister.instance.client_info
uri = client.create_authorization_url(id, secret, 'read', AppRegister.instance.redirect_uri)
redirect uri
end
get '/callback/oauth' do
code = params['code']
client = MstdnIvory::Client.new('https://mstdn-workers.com')
id, secret = AppRegister.instance.client_info
client.get_access_token(id, secret, code, AppRegister.instance.redirect_uri)
id = client.get('/api/v1/accounts/verify_credentials').id
session[:user_id] = id.to_i
redirect '/memo'
end
delete '/memo/:memo_id' do
pp Memo.find(params[:memo_id])
deleted_user = Memo.find(params[:memo_id])
deleted_user.destroy
redirect "memo"
end