diff options
| -rw-r--r-- | app.rb | 13 | ||||
| -rw-r--r-- | fancy_bear/contextio.rb | 7 | ||||
| -rw-r--r-- | fancy_bear/contextio/auth.rb | 18 | ||||
| -rw-r--r-- | fancy_bear/contextio/config.rb | 6 | ||||
| -rw-r--r-- | fancy_bear/fancy_bear.rb | 4 | ||||
| -rw-r--r-- | views/auth_callback.erb | 1 | ||||
| -rw-r--r-- | views/index.erb | 7 | ||||
| -rw-r--r-- | views/layout.erb | 21 |
8 files changed, 77 insertions, 0 deletions
@@ -1,4 +1,5 @@ require 'sinatra' +require './fancy_bear/fancy_bear' class App < Sinatra::Base configure :production, :development do @@ -16,4 +17,16 @@ class App < Sinatra::Base post '/sign-up' do # end + + get '/auth-begin' do + contextio = FancyBear::ContextIO::Auth.new + + redirect_url = contextio.connect("#{request['REQUEST_URI']}/auth-callback") + + redirect to(redirect_url) + end + + get '/auth-callback' do + erb :auth_callback + end end diff --git a/fancy_bear/contextio.rb b/fancy_bear/contextio.rb new file mode 100644 index 0000000..88fc988 --- /dev/null +++ b/fancy_bear/contextio.rb @@ -0,0 +1,7 @@ +require_relative 'contextio/config' +require_relative 'contextio/auth' + +module FancyBear + module ContextIO + end +end diff --git a/fancy_bear/contextio/auth.rb b/fancy_bear/contextio/auth.rb new file mode 100644 index 0000000..174648a --- /dev/null +++ b/fancy_bear/contextio/auth.rb @@ -0,0 +1,18 @@ +require 'contextio' + +module FancyBear + module ContextIO + + class Auth + def initialize + @contextio = ::ContextIO.new(API_KEY, API_SECRET) + end + + def connect(callback_url) + connection_token = @contextio.connect_tokens.create(callback_url) + connection_token.browser_redirect_url + end + end + + end +end diff --git a/fancy_bear/contextio/config.rb b/fancy_bear/contextio/config.rb new file mode 100644 index 0000000..046848d --- /dev/null +++ b/fancy_bear/contextio/config.rb @@ -0,0 +1,6 @@ +module FancyBear + module ContextIO + API_KEY = ENV['CONTEXTIO_API_KEY'] + API_SECRET = ENV['CONTEXTIO_API_SECRET'] + end +end diff --git a/fancy_bear/fancy_bear.rb b/fancy_bear/fancy_bear.rb new file mode 100644 index 0000000..81feb4f --- /dev/null +++ b/fancy_bear/fancy_bear.rb @@ -0,0 +1,4 @@ +require_relative 'contextio' + +module FancyBear +end diff --git a/views/auth_callback.erb b/views/auth_callback.erb new file mode 100644 index 0000000..123c701 --- /dev/null +++ b/views/auth_callback.erb @@ -0,0 +1 @@ +Your Gmail account has been connected. diff --git a/views/index.erb b/views/index.erb index e69de29..dc2c780 100644 --- a/views/index.erb +++ b/views/index.erb @@ -0,0 +1,7 @@ +<div> + <a href="/auth-begin" class="btn btn-primary">Connect Your Gmail Account</a> +</div> + +<div> + <img src="http://i.imgur.com/NlIehmF.png" alt="" /> +</div> diff --git a/views/layout.erb b/views/layout.erb new file mode 100644 index 0000000..72e7e4c --- /dev/null +++ b/views/layout.erb @@ -0,0 +1,21 @@ +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>Fancy Bear</title> + <meta name="description" content=""> + + <meta name="viewport" content="width=device-width"> + + <style type="text/css"> + html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0} + + </style> +</head> +<body> + <div role="main"> + <%= yield %> + </div> +</body> +</html> + |
