gigya 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 68df57c03b0c57dcc5153ab121f41f08c87b5084
4
+ data.tar.gz: caf740b1c4b09e19554c573e8ed128a5707c7588
5
+ SHA512:
6
+ metadata.gz: a084d94db8a7cef67e4cac7a64c8fde19c09e32d978c9357ec5258efbb85a99de354eb8d025188bf5407f04ea590e39c3cc093131bb1ff595542cbe5fa7261a4
7
+ data.tar.gz: a4ab80367dbf6500f1b42bde7223499c8e7265da84b54d8005006866a9b84458f2328b109393bb7abae1a7119a0fd449c65412c48df6cd5b98794bcdabb0a739
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format documentation
@@ -0,0 +1,5 @@
1
+ rvm:
2
+ # MRI
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1.0
data/Gemfile ADDED
@@ -0,0 +1,15 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem "bundler", "~> 1.5"
4
+
5
+ group :development, :test do
6
+ gem "rake"
7
+ gem "pry"
8
+ gem "pry-nav"
9
+ gem "rspec"
10
+ gem "vcr"
11
+ gem "webmock"
12
+ gem "multi_json"
13
+ end
14
+
15
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Johalf Farina
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,31 @@
1
+ [![Build Status](https://travis-ci.org/johalf/gigya.svg?branch=master)](https://travis-ci.org/johalf/gigya)
2
+
3
+ # Gigya
4
+
5
+ Gigya's gem is a lightweight library to connect for multiple social networks using Gigya's REST API. It allows read/write access REST API, as well as support for OAuth.
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ gem 'gigya'
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install gigya
20
+
21
+ ## Usage
22
+
23
+ TODO: Write usage instructions here
24
+
25
+ ## Contributing
26
+
27
+ 1. Fork it ( http://github.com/johalf/gigya/fork )
28
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
29
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
30
+ 4. Push to the branch (`git push origin my-new-feature`)
31
+ 5. Create new Pull Request
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new('spec')
5
+
6
+ task default: :spec
@@ -0,0 +1,21 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'gigya/version'
4
+
5
+ Gem::Specification.new do |gem|
6
+ gem.name = "gigya"
7
+ gem.version = Gigya::VERSION
8
+ gem.authors = ["Johalf Farina", "Otto Henrique"]
9
+ gem.email = ["johalffarina@gmail.com", "ottohenrique@gmail.com"]
10
+ gem.summary = %q{A lightweight library to social integration using Gigya's REST API service.}
11
+ gem.description = %q{Gigya's gem is a lightweight library to connect for multiple social networks using Gigya's REST API. It allows read/write access REST API, as well as support for OAuth.}
12
+ gem.homepage = "http://johalf.github.io/gigya"
13
+ gem.license = "MIT"
14
+
15
+ gem.files = `git ls-files -z`.split("\x0")
16
+ gem.executables = gem.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ["lib"]
19
+
20
+ gem.add_runtime_dependency "faraday"
21
+ end
@@ -0,0 +1,25 @@
1
+ require 'gigya/version'
2
+ require 'gigya/http_service'
3
+ require 'gigya/oauth'
4
+ require 'gigya/rest_api'
5
+
6
+ module Gigya
7
+ BASE_URL = 'https://socialize.gigya.com'
8
+
9
+ URIS = {
10
+ login: '/socialize.login',
11
+ get_token: '/socialize.getToken',
12
+ get_user_info: '/socialize.getUserInfo'
13
+ }
14
+
15
+ class << self
16
+ attr_accessor :connection
17
+ end
18
+
19
+ def self.connection=(service)
20
+ @connection = service.connection
21
+ end
22
+
23
+ self.connection = HTTPService
24
+ end
25
+
@@ -0,0 +1,12 @@
1
+ require 'faraday'
2
+
3
+ module Gigya
4
+ module HTTPService
5
+ def self.connection
6
+ Faraday.new(url: Gigya::BASE_URL) do |faraday|
7
+ faraday.request :url_encoded
8
+ faraday.adapter Faraday.default_adapter
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,38 @@
1
+ module Gigya
2
+ class OAuth
3
+ attr_reader :client_id, :client_secret, :oauth_callback_url
4
+
5
+ def initialize(client_id, client_secret, oauth_callback_url = nil)
6
+ @client_id = client_id
7
+ @client_secret = client_secret
8
+ @oauth_callback_url = oauth_callback_url
9
+ end
10
+
11
+ def login(provider)
12
+ params = {
13
+ client_id: @client_id,
14
+ redirect_uri: @oauth_callback_url,
15
+ response_type: 'code',
16
+ x_provider: provider
17
+ }
18
+
19
+ response = Gigya.connection.get(Gigya::URIS[:login], params)
20
+
21
+ response['location']
22
+ end
23
+
24
+ def get_token(code)
25
+ params = {
26
+ client_id: @client_id,
27
+ client_secret: @client_secret,
28
+ redirect_uri: @oauth_callback_url,
29
+ grant_type: 'authorization_code',
30
+ code: code
31
+ }
32
+
33
+ response = Gigya.connection.post(Gigya::URIS[:get_token], params)
34
+
35
+ JSON.parse response.body
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,9 @@
1
+ module Gigya
2
+ module RestAPI
3
+ def self.get_user_info(oauth_token)
4
+ response = Gigya.connection.get(Gigya::URIS[:get_user_info], { oauth_token: oauth_token, format: 'json' })
5
+
6
+ JSON.parse response.body
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ module Gigya
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"post","uri":"https://socialize.gigya.com/socialize.getToken","body":{"encoding":"US-ASCII","base64_string":"Y2xpZW50X2lkPTNfZ0ZjajFmd3NjWTVPQVFSVG05NC1lU0dZQkowWWhrdEIw\nVE9zNlZXNkFodmd2VlhVYndTN1RUWXg2SXpzUFhuZiZjbGllbnRfc2VjcmV0\nPXFGSm1xQ3d3Zm96SWVUaUFtQXdhWTZpN205N3BUQldYRzY1OHQ0b0phdzAl\nM0QmY29kZT1WQzFfRjUwRDg5N0UzMTczMUYxQUY0NEFFMjc3RDgxNjBCNkNf\nNmFKdm5JdnZ1cFREUVk3a0NhZ3pQZGNtWFpFN0VDNElDWGxGb0xUWWRFaXFD\nU2M0bmNCUGY4M09yM1lNdEEwczdDZVlRcWswQk1aRHViYk0tRnVsTWpBYjRO\nZFpKb2U0UERzN010RTM0dTVDRUhrSHZlT2pYYVBvVm9HS1hoWmtyU0NmanUw\nanNpUDF4VURCX2dtTXh6YUlOS00zeXplcVBzNmdDQ0NCeXZlMngyM25OdXp6\nSkJZeE5jb0J2a0RTJmdyYW50X3R5cGU9YXV0aG9yaXphdGlvbl9jb2RlJnJl\nZGlyZWN0X3VyaT1odHRwcyUzQSUyRiUyRmxvY2FsaG9zdCUzQTMwMDAlMkZm\ncmVlLXZpZGVvcw==\n"},"headers":{"User-Agent":["Faraday v0.9.0"],"Content-Type":["application/x-www-form-urlencoded"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["private, no-store"],"Transfer-Encoding":["chunked"],"Content-Type":["text/javascript; charset=utf-8"],"Set-Cookie":["ASP.NET_SessionId=yqmobjt1c0yfusi0rfvrbcoq; path=/; HttpOnly"],"X-Xss-Protection":["0"],"X-Xrds-Location":["https://socialize.gigya.com/Xrds.aspx"],"X-Server":["web504"],"X-Powered-By":["ASP.NET"],"P3p":["CP=\"IDC COR PSA DEV ADM OUR IND ONL\""],"Date":["Wed, 30 Apr 2014 13:49:48 GMT"]},"body":{"encoding":"US-ASCII","base64_string":"eyJhY2Nlc3NfdG9rZW4iOiJBVDNfNkZEMkQ3NUQxNjBFMEQ5Rjc4MTBGMUI5\nNDU3RDQ0MDVfWVkxQU5Tb1BUT191cjM2cnlLSXYzcDNnVDNiOFdCa2ZwRTBZ\nRk1FOHZwcG5VS1MtTzJIOEd0d1NjM1RoQ0ljcFNEcjlIeVdfZnROcGRnakN2\nbnc1dVRPODRCMnBtdVNCQlFvUDZ3OEhfY0MwMElIVW1ILXhmRFdyRXo4cjFi\nYVkifQ==\n"},"http_version":null},"recorded_at":"Wed, 30 Apr 2014 13:49:48 GMT"}],"recorded_with":"VCR 2.8.0"}
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"get","uri":"https://socialize.gigya.com/socialize.login?client_id=3_gFcj1fwscY5OAQRTm94-eSGYBJ0YhktB0TOs6VW6AhvgvVXUbwS7TTYx6IzsPXnf&redirect_uri=https://localhost:3000/free-videos&response_type=code&x_provider=facebook","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"User-Agent":["Faraday v0.9.0"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":302,"message":"Found"},"headers":{"Cache-Control":["private, no-store"],"Transfer-Encoding":["chunked"],"Content-Type":["text/html; charset=utf-8"],"Location":["https://www.facebook.com/dialog/oauth?client_id=64368537493&redirect_uri=https%3a%2f%2fsocialize.gigya.com%2fGS%2fGSLogin.aspx%3fst%3dTWe3E8QKaqrp5ggLdoiXDYCSYMdunNdGTQXXs0fnYrQ.&response_type=code&scope=user_location%2cuser_birthday&display=popup"],"Set-Cookie":["ASP.NET_SessionId=vrpg2spctefujua0r2m0pps2; path=/; HttpOnly","GLEC=0; domain=socialize.gigya.com; expires=Tue, 29-Apr-2014 13:49:00 GMT; path=/; HttpOnly","glnk=stBE2MNNULo5_hU2fjWp-EwnFDhVq8RQp13O954aCCHlEw_PDfavI2cZxj4Tw1mqhy5i8rkVQnnVhNvcuO-JAQDl7gxply-663xHEpUQNqDPRTYPEMW3MJS19Hzg6VQprDiRflxeGWobCiiuxyakFW8aWhkHPK_ut_dWVTt-RhYndhYVb5tG08gNMT3Omu1eLPWyhbpsx6d79jpfDuDssicPv5DaeG_lyJambY3eSsn9w87Ufcsxpxgk6X26eopsLIhLaHt0F8E3ZXRWL124rvsxYn-X7J-LD5iZ-YN06ub0ZbVi4ZD9Kn-RV-IStR_PyJCJD9t9cJw89a8V-t0ylP7Zg; domain=socialize.gigya.com; expires=Wed, 30-Apr-2014 14:19:00 GMT; path=/; secure; HttpOnly","gst=TWe3E8QKaqrp5ggLdoiXDYCSYMdunNdGTQXXs0fnYrQ.; domain=socialize.gigya.com; expires=Wed, 30-Apr-2014 14:19:00 GMT; path=/; secure; HttpOnly","ucid=zXnnpL8WzKLIuZTsI3GUPg==; domain=gigya.com; expires=Tue, 30-Apr-2024 13:49:00 GMT; path=/"],"X-Xss-Protection":["0"],"X-Xrds-Location":["https://socialize.gigya.com/Xrds.aspx"],"P3p":["CP=\"IDC COR PSA DEV ADM OUR IND ONL\"","CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""],"X-Server":["web507"],"X-Powered-By":["ASP.NET"],"Date":["Wed, 30 Apr 2014 13:48:59 GMT"]},"body":{"encoding":"US-ASCII","base64_string":"PGh0bWw+PGhlYWQ+PHRpdGxlPk9iamVjdCBtb3ZlZDwvdGl0bGU+PC9oZWFk\nPjxib2R5Pg0KPGgyPk9iamVjdCBtb3ZlZCB0byA8YSBocmVmPSJodHRwczov\nL3d3dy5mYWNlYm9vay5jb20vZGlhbG9nL29hdXRoP2NsaWVudF9pZD02NDM2\nODUzNzQ5MyZhbXA7cmVkaXJlY3RfdXJpPWh0dHBzJTNhJTJmJTJmc29jaWFs\naXplLmdpZ3lhLmNvbSUyZkdTJTJmR1NMb2dpbi5hc3B4JTNmc3QlM2RUV2Uz\nRThRS2FxcnA1Z2dMZG9pWERZQ1NZTWR1bk5kR1RRWFhzMGZuWXJRLiZhbXA7\ncmVzcG9uc2VfdHlwZT1jb2RlJmFtcDtzY29wZT11c2VyX2xvY2F0aW9uJTJj\ndXNlcl9iaXJ0aGRheSZhbXA7ZGlzcGxheT1wb3B1cCI+aGVyZTwvYT4uPC9o\nMj4NCjwvYm9keT48L2h0bWw+DQo=\n"},"http_version":null},"recorded_at":"Wed, 30 Apr 2014 13:48:59 GMT"}],"recorded_with":"VCR 2.8.0"}
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"get","uri":"https://socialize.gigya.com/socialize.getUserInfo?format=json&oauth_token=AT3_6FD2D75D160E0D9F7810F1B9457D4405_YY1ANSoPTO_ur36ryKIv3p3gT3b8WBkfpE0YFME8vppnUKS-O2H8GtwSc3ThCIcpSDr9HyW_ftNpdgjCvnw5uTO84B2pmuSBBQoP6w8H_cC00IHUmH-xfDWrEz8r1baY","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"User-Agent":["Faraday v0.9.0"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["private"],"Content-Type":["text/javascript; charset=utf-8"],"Expires":["Wed, 30 Apr 2014 14:12:42 GMT"],"Vary":["Accept-Encoding"],"X-Xss-Protection":["0"],"X-Timing":["cache=15,total=15"],"X-Server":["web509"],"X-Powered-By":["ASP.NET"],"P3p":["CP=\"IDC COR PSA DEV ADM OUR IND ONL\""],"Date":["Wed, 30 Apr 2014 14:13:41 GMT"],"Connection":["close"],"Content-Length":["748"]},"body":{"encoding":"UTF-8","base64_string":"ew0KICAiVUlEIjogIl9ndWlkX29wVTFrUjlHNlpiRjB5MzNqT1V4UGdPdkdh\nUjN2Mm9tY3B2SXRzMzFSczA9IiwNCiAgIlVJRFNpZyI6ICJiSHZaQzVXaTkr\nZ0M4WUZON3QzbzBWdmR2TE09IiwNCiAgInRpbWVzdGFtcCI6ICIyMDE0LTA0\nLTMwIDE0OjEzOjQyIiwNCiAgIlVJRFNpZ25hdHVyZSI6ICJUbEhRUjdYdkJI\nTTFEVjhyODlETnRUdU10SzQ9IiwNCiAgInNpZ25hdHVyZVRpbWVzdGFtcCI6\nICIxMzk4ODY3MjIyIiwNCiAgImlzU2l0ZVVzZXIiOiB0cnVlLA0KICAiaXND\nb25uZWN0ZWQiOiB0cnVlLA0KICAiaXNMb2dnZWRJbiI6IHRydWUsDQogICJp\nc1RlbXBVc2VyIjogZmFsc2UsDQogICJsb2dpblByb3ZpZGVyIjogImZhY2Vi\nb29rIiwNCiAgImxvZ2luUHJvdmlkZXJVSUQiOiAiMTAwMDAzNTY5MDE4NjE3\nIiwNCiAgImlzU2l0ZVVJRCI6IGZhbHNlLA0KICAiaWRlbnRpdGllcyI6IFsN\nCiAgICB7DQogICAgICAicHJvdmlkZXIiOiAiZmFjZWJvb2siLA0KICAgICAg\nInByb3ZpZGVyVUlEIjogIjEwMDAwMzU2OTAxODYxNyIsDQogICAgICAiaXNM\nb2dpbklkZW50aXR5IjogdHJ1ZSwNCiAgICAgICJuaWNrbmFtZSI6ICJKb2hh\nbGYgRGV2ZWxvcG1lbnQiLA0KICAgICAgInBob3RvVVJMIjogImh0dHA6Ly9n\ncmFwaC5mYWNlYm9vay5jb20vMTAwMDAzNTY5MDE4NjE3L3BpY3R1cmU/dHlw\nZT1sYXJnZSIsDQogICAgICAidGh1bWJuYWlsVVJMIjogImh0dHA6Ly9ncmFw\naC5mYWNlYm9vay5jb20vMTAwMDAzNTY5MDE4NjE3L3BpY3R1cmU/dHlwZT1z\ncXVhcmUiLA0KICAgICAgImZpcnN0TmFtZSI6ICJKb2hhbGYiLA0KICAgICAg\nImxhc3ROYW1lIjogIkRldmVsb3BtZW50IiwNCiAgICAgICJnZW5kZXIiOiAi\nbSIsDQogICAgICAiYWdlIjogIjI4IiwNCiAgICAgICJiaXJ0aERheSI6ICIx\nOCIsDQogICAgICAiYmlydGhNb250aCI6ICIxIiwNCiAgICAgICJiaXJ0aFll\nYXIiOiAiMTk4NiIsDQogICAgICAiZW1haWwiOiAiam9oYWxmZGV2ZWxvcG1l\nbnRAZ21haWwuY29tIiwNCiAgICAgICJwcm9maWxlVVJMIjogImh0dHBzOi8v\nd3d3LmZhY2Vib29rLmNvbS9qb2hhbGYuZGV2ZWxvcG1lbnQiLA0KICAgICAg\nInByb3hpZWRFbWFpbCI6ICIiLA0KICAgICAgImFsbG93c0xvZ2luIjogdHJ1\nZSwNCiAgICAgICJpc0V4cGlyZWRTZXNzaW9uIjogZmFsc2UsDQogICAgICAi\nbGFzdExvZ2luVGltZSI6IDEzOTg4NjU3NTQsDQogICAgICAibGFzdFVwZGF0\nZWQiOiAiMjAxNC0wNC0zMFQxMzo0OToxMy45MzFaIiwNCiAgICAgICJsYXN0\nVXBkYXRlZFRpbWVzdGFtcCI6IDEzOTg4NjU3NTM5MzEsDQogICAgICAib2xk\nZXN0RGF0YVVwZGF0ZWQiOiAiMjAxNC0wNC0zMFQxMzo0OToxMy45MzFaIiwN\nCiAgICAgICJvbGRlc3REYXRhVXBkYXRlZFRpbWVzdGFtcCI6IDEzOTg4NjU3\nNTM5MzENCiAgICB9DQogIF0sDQogICJuaWNrbmFtZSI6ICJKb2hhbGYgRGV2\nZWxvcG1lbnQiLA0KICAicGhvdG9VUkwiOiAiaHR0cDovL2dyYXBoLmZhY2Vi\nb29rLmNvbS8xMDAwMDM1NjkwMTg2MTcvcGljdHVyZT90eXBlPWxhcmdlIiwN\nCiAgInRodW1ibmFpbFVSTCI6ICJodHRwOi8vZ3JhcGguZmFjZWJvb2suY29t\nLzEwMDAwMzU2OTAxODYxNy9waWN0dXJlP3R5cGU9c3F1YXJlIiwNCiAgImZp\ncnN0TmFtZSI6ICJKb2hhbGYiLA0KICAibGFzdE5hbWUiOiAiRGV2ZWxvcG1l\nbnQiLA0KICAiZ2VuZGVyIjogIm0iLA0KICAiYWdlIjogIjI4IiwNCiAgImJp\ncnRoRGF5IjogIjE4IiwNCiAgImJpcnRoTW9udGgiOiAiMSIsDQogICJiaXJ0\naFllYXIiOiAiMTk4NiIsDQogICJlbWFpbCI6ICJqb2hhbGZkZXZlbG9wbWVu\ndEBnbWFpbC5jb20iLA0KICAicHJvZmlsZVVSTCI6ICJodHRwczovL3d3dy5m\nYWNlYm9vay5jb20vam9oYWxmLmRldmVsb3BtZW50IiwNCiAgInByb3hpZWRF\nbWFpbCI6ICIiLA0KICAiY2FwYWJpbGl0aWVzIjogIkxvZ2luLCBGcmllbmRz\nLCBQaG90b3MsIFBsYWNlcyIsDQogICJwcm92aWRlcnMiOiAiZmFjZWJvb2si\nLA0KICAic3RhdHVzQ29kZSI6IDIwMCwNCiAgImVycm9yQ29kZSI6IDAsDQog\nICJzdGF0dXNSZWFzb24iOiAiT0siLA0KICAiY2FsbElkIjogImYzMzZjOTIy\nMmRiMzQ3Yzc4Mzg3YTViYTkwMTYyMzY3IiwNCiAgIm9sZGVzdERhdGFVcGRh\ndGVkVGltZXN0YW1wIjogMTM5ODg2NTc1MzkzMSwNCiAgIm9sZGVzdERhdGFB\nZ2UiOiAxNDY4DQp9\n"},"http_version":null},"recorded_at":"Wed, 30 Apr 2014 14:13:41 GMT"}],"recorded_with":"VCR 2.8.0"}
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gigya::OAuth, :vcr do
4
+ # My personal Gigya's account credencials
5
+ #
6
+ let(:client_id) { '3_gFcj1fwscY5OAQRTm94-eSGYBJ0YhktB0TOs6VW6AhvgvVXUbwS7TTYx6IzsPXnf' }
7
+ let(:client_secret) { 'qFJmqCwwfozIeTiAmAwaY6i7m97pTBWXG658t4oJaw0=' }
8
+ let(:oauth_callback_url) { 'https://localhost:3000/free-videos' }
9
+
10
+ subject(:oauth) { Gigya::OAuth.new(client_id, client_secret, oauth_callback_url) }
11
+
12
+ describe 'login' do
13
+ let(:provider) { 'facebook' }
14
+
15
+ subject(:login) { oauth.login(provider) }
16
+
17
+ it 'returns the code in response location' do
18
+ expect(login).to_not be_nil
19
+ end
20
+ end
21
+
22
+ describe 'get_token' do
23
+ let(:code) { 'VC1_F50D897E31731F1AF44AE277D8160B6C_6aJvnIvvupTDQY7kCagzPdcmXZE7EC4ICXlFoLTYdEiqCSc4ncBPf83Or3YMtA0s7CeYQqk0BMZDubbM-FulMjAb4NdZJoe4PDs7MtE34u5CEHkHveOjXaPoVoGKXhZkrSCfju0jsiP1xUDB_gmMxzaINKM3yzeqPs6gCCCByve2x23nNuzzJBYxNcoBvkDS' }
24
+
25
+ subject(:get_token) { oauth.get_token(code) }
26
+
27
+ it 'returns the oauth access token' do
28
+ expect(get_token['access_token']).to_not be_nil
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gigya::RestAPI, :vcr do
4
+ describe 'get_user_info' do
5
+ let(:access_token) { 'AT3_6FD2D75D160E0D9F7810F1B9457D4405_YY1ANSoPTO_ur36ryKIv3p3gT3b8WBkfpE0YFME8vppnUKS-O2H8GtwSc3ThCIcpSDr9HyW_ftNpdgjCvnw5uTO84B2pmuSBBQoP6w8H_cC00IHUmH-xfDWrEz8r1baY' }
6
+
7
+ subject(:get_user_info) { Gigya::RestAPI.get_user_info(access_token) }
8
+
9
+ it 'returns the user infos' do
10
+ user = get_user_info
11
+
12
+ expect(user['email']).to eq 'johalfdevelopment@gmail.com'
13
+ expect(user['nickname']).to eq 'Johalf Development'
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gigya do
4
+ describe 'connection' do
5
+ subject { Gigya.connection }
6
+
7
+ it { expect(subject).to be_kind_of(Faraday::Connection) }
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ require 'bundler/setup'
2
+ Bundler.setup
3
+
4
+ require 'gigya'
5
+
6
+ spec_root = File.expand_path(File.dirname(__FILE__))
7
+
8
+ $: << spec_root
9
+
10
+ Dir[File.join(spec_root, "support/**/*.rb")].each { |f| require f }
@@ -0,0 +1,23 @@
1
+ require 'vcr'
2
+
3
+ class VCR::Cassette
4
+ def sanitized_name
5
+ name.to_s.gsub(/[^\w\-\/]+/, '_').downcase
6
+ end
7
+ end
8
+
9
+ RSpec.configure do |config|
10
+ config.extend VCR::RSpec::Macros
11
+ config.treat_symbols_as_metadata_keys_with_true_values = true
12
+ end
13
+
14
+ VCR.configure do |config|
15
+ config.hook_into :webmock
16
+ config.cassette_library_dir = 'spec/cassettes'
17
+ config.default_cassette_options = {
18
+ record: :new_episodes,
19
+ serialize_with: :json,
20
+ preserve_exact_body_bytes: true
21
+ }
22
+ config.configure_rspec_metadata!
23
+ end
metadata ADDED
@@ -0,0 +1,91 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gigya
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Johalf Farina
8
+ - Otto Henrique
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-04-30 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: faraday
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ description: Gigya's gem is a lightweight library to connect for multiple social networks
29
+ using Gigya's REST API. It allows read/write access REST API, as well as support
30
+ for OAuth.
31
+ email:
32
+ - johalffarina@gmail.com
33
+ - ottohenrique@gmail.com
34
+ executables: []
35
+ extensions: []
36
+ extra_rdoc_files: []
37
+ files:
38
+ - ".gitignore"
39
+ - ".rspec"
40
+ - ".travis.yml"
41
+ - Gemfile
42
+ - LICENSE.txt
43
+ - README.md
44
+ - Rakefile
45
+ - gigya.gemspec
46
+ - lib/gigya.rb
47
+ - lib/gigya/http_service.rb
48
+ - lib/gigya/oauth.rb
49
+ - lib/gigya/rest_api.rb
50
+ - lib/gigya/version.rb
51
+ - spec/cassettes/Gigya_OAuth/get_token/returns_the_oauth_access_token.json
52
+ - spec/cassettes/Gigya_OAuth/login/returns_the_code_in_response_location.json
53
+ - spec/cassettes/Gigya_RestAPI/get_user_info/returns_the_user_infos.json
54
+ - spec/lib/gigya/oauth_spec.rb
55
+ - spec/lib/gigya/rest_api_spec.rb
56
+ - spec/lib/gigya_spec.rb
57
+ - spec/spec_helper.rb
58
+ - spec/support/vcr.rb
59
+ homepage: http://johalf.github.io/gigya
60
+ licenses:
61
+ - MIT
62
+ metadata: {}
63
+ post_install_message:
64
+ rdoc_options: []
65
+ require_paths:
66
+ - lib
67
+ required_ruby_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ requirements: []
78
+ rubyforge_project:
79
+ rubygems_version: 2.2.2
80
+ signing_key:
81
+ specification_version: 4
82
+ summary: A lightweight library to social integration using Gigya's REST API service.
83
+ test_files:
84
+ - spec/cassettes/Gigya_OAuth/get_token/returns_the_oauth_access_token.json
85
+ - spec/cassettes/Gigya_OAuth/login/returns_the_code_in_response_location.json
86
+ - spec/cassettes/Gigya_RestAPI/get_user_info/returns_the_user_infos.json
87
+ - spec/lib/gigya/oauth_spec.rb
88
+ - spec/lib/gigya/rest_api_spec.rb
89
+ - spec/lib/gigya_spec.rb
90
+ - spec/spec_helper.rb
91
+ - spec/support/vcr.rb