aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2014-06-08 05:11:15 -0400
committerTeddy Wing2014-06-08 05:11:15 -0400
commitf50a3c27280f0f6b0460b4f0b998d2031f408478 (patch)
tree9433bf3894071981cda91052b03604a28027e9e0
parent1a731248b0424281298ed07669b94abb9e25f17d (diff)
parentb84e54e053435f15f3cead2a2a48833f047bc233 (diff)
downloadsellevate-f50a3c27280f0f6b0460b4f0b998d2031f408478.tar.bz2
Merge branch 'feature/contextio-auth' into develop
-rw-r--r--app.rb13
-rw-r--r--fancy_bear/contextio.rb7
-rw-r--r--fancy_bear/contextio/auth.rb18
-rw-r--r--fancy_bear/contextio/config.rb6
-rw-r--r--fancy_bear/fancy_bear.rb4
-rw-r--r--views/auth_callback.erb1
-rw-r--r--views/index.erb7
-rw-r--r--views/layout.erb21
8 files changed, 77 insertions, 0 deletions
diff --git a/app.rb b/app.rb
index 836598b..dd33ca4 100644
--- a/app.rb
+++ b/app.rb
@@ -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>
+