gigya 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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