cookie_jar 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.gitignore +18 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +14 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +1 -0
- data/cookie_jar.gemspec +51 -0
- data/lib/cookie_jar.rb +10 -0
- data/lib/cookie_jar/account.rb +56 -0
- data/lib/cookie_jar/banker.rb +75 -0
- data/lib/cookie_jar/support/errors.rb +81 -0
- data/lib/cookie_jar/transfer.rb +52 -0
- data/lib/cookie_jar/user.rb +42 -0
- data/lib/cookie_jar/version.rb +5 -0
- data/lib/cookie_jar/wallet_base.rb +67 -0
- data/spec/cookie_jar/account_spec.rb +198 -0
- data/spec/cookie_jar/banker_spec.rb +273 -0
- data/spec/cookie_jar/cookie_jar_spec.rb +195 -0
- data/spec/cookie_jar/transfer_spec.rb +190 -0
- data/spec/cookie_jar/user_spec.rb +115 -0
- data/spec/spec_helper.rb +17 -0
- metadata +155 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NmZmODFkYzEwNDgwNTUwNWZkMTc1Zjc5NWQwNmNkNDI2MmVjMTIzNw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NWNjNjZiNTZjMjBiY2E3MzIwYzRmOTY2NGE2YWU0OGVkYmE0ZjIzMQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MmUwYmM1ZGYwMmUyYzkzMDdlYWQ2NzhlZTg5Yjk4ZjFjNDUxNDI5YTBlN2Rl
|
10
|
+
MmRhOThhZWI4ZTAwMDRlOTEyOWQ0YTM4ZTQzYzQ0YWY2ODkxYjllYWRkYjgy
|
11
|
+
YTQzYTgwMTU5MWY3NDY0NjFjYTVhODI2OTQ4YmU4OTZkOGI2ZWQ=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NzA0YzVjMzJkYjMxNDliODVkOWQ0NzM2MjY4ODMyMzk1ZDdiNTJhY2M2MDkx
|
14
|
+
ZDBmYzhlNDY3MDAzMTRjYzRlNWZmNGM2ZDZlYjQ3OWI0MTA4M2UxNGUxZDZj
|
15
|
+
ZGZhZWEzNzViNTEwZjY2MGZmMjE3OGE4ODdkMjU0MTExYjU0YWM=
|
data/.gitignore
ADDED
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
biscuit-wallet-wrapper
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby-1.9.3-p448
|
data/Gemfile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
# Specify your gem's dependencies in cookie_jar.gemspec
|
4
|
+
gemspec
|
5
|
+
|
6
|
+
gem "rspec"
|
7
|
+
gem "forgery", "~> 0.5.0"
|
8
|
+
gem "debugger"
|
9
|
+
gem "ipaddress"
|
10
|
+
|
11
|
+
group :test do
|
12
|
+
gem "webmock"
|
13
|
+
gem 'simplecov', :require => false
|
14
|
+
end
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Aldrin dela Cruz
|
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.
|
data/README.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# CookieJar::Wallet
|
2
|
+
|
3
|
+
TODO: Write a gem description
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'cookie_jar'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install cookie_jar
|
18
|
+
|
19
|
+
## Usage
|
20
|
+
|
21
|
+
TODO: Write usage instructions here
|
22
|
+
|
23
|
+
## Contributing
|
24
|
+
|
25
|
+
1. Fork it
|
26
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
29
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/cookie_jar.gemspec
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'cookie_jar/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "cookie_jar"
|
8
|
+
gem.version = CookieJar::Wallet::VERSION
|
9
|
+
gem.authors = ["Aldrin dela Cruz & Aljon Aniban"]
|
10
|
+
gem.email = ["aldrin@bazinga.com.ph"]
|
11
|
+
gem.description = %q{For Rumpus and CookieJar Integration.}
|
12
|
+
gem.summary = %q{Rumpus and CookieJar Integration.}
|
13
|
+
gem.homepage = ""
|
14
|
+
|
15
|
+
gem.files = `git ls-files`.split($/)
|
16
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
+
gem.require_paths = ["lib"]
|
19
|
+
|
20
|
+
gem.add_dependency "forgery", "~> 0.5.0"
|
21
|
+
gem.add_dependency "rest-client"
|
22
|
+
gem.add_development_dependency "rspec"
|
23
|
+
gem.add_development_dependency "debugger"
|
24
|
+
gem.add_development_dependency "oauth2"
|
25
|
+
gem.add_development_dependency "ipaddress"
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
## -*- encoding: utf-8 -*-
|
30
|
+
#lib = File.expand_path('../lib', __FILE__)
|
31
|
+
#$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
32
|
+
#require 'bazingerZ/version'
|
33
|
+
#
|
34
|
+
#Gem::Specification.new do |gem|
|
35
|
+
# gem.name = "bazingerZ"
|
36
|
+
# gem.version = BazingerZ::VERSION
|
37
|
+
# gem.authors = ["Aldrin dela Cruz & Diwa del Mundo & Mark Sargento"]
|
38
|
+
# gem.email = ["pair+aldrin+diwadm@bazinga.com.ph"]
|
39
|
+
# gem.description = %q{API client for Bazinga World Game Center API.}
|
40
|
+
# gem.summary = %q{Bazinga World Game Center API Client}
|
41
|
+
# gem.homepage = "https://bitbucket.org/bazingainc/bw-game-center-api-client/"
|
42
|
+
#
|
43
|
+
# gem.files = `git ls-files`.split($/)
|
44
|
+
# gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
45
|
+
# gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
46
|
+
# gem.require_paths = ["lib"]
|
47
|
+
#
|
48
|
+
# gem.add_dependency "forgery", "~> 0.5.0"
|
49
|
+
# gem.add_dependency "curb"
|
50
|
+
#end
|
51
|
+
|
data/lib/cookie_jar.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
module CookieJar
|
2
|
+
module Wallet
|
3
|
+
module Account
|
4
|
+
def all_accounts
|
5
|
+
self.url = "#{CookieJar::Wallet::WALLET_HOST}/v1/users/#{self.user_id}/accounts"
|
6
|
+
response = self.get
|
7
|
+
|
8
|
+
#for successful response, self.get will return array. unless it will return error hash
|
9
|
+
if response.is_a?(Hash)
|
10
|
+
raise CookieJar::Error::AccessDenied if response["message"] == "You're not authorized to access the resource" or response[:code] == 401
|
11
|
+
raise CookieJar::Error::UserNotFound if response["message"][0..17] == "Couldn't find User"
|
12
|
+
end
|
13
|
+
|
14
|
+
response
|
15
|
+
end
|
16
|
+
|
17
|
+
def get_account(account_id)
|
18
|
+
self.url = "#{CookieJar::Wallet::WALLET_HOST}/v1/users/#{self.user_id}/accounts/#{account_id}"
|
19
|
+
response = self.get
|
20
|
+
|
21
|
+
unless response["message"].nil? and response[:code].nil?
|
22
|
+
raise CookieJar::Error::AccessDenied if response["message"] == "You're not authorized to access the resource" or response[:code] == 401
|
23
|
+
raise CookieJar::Error::UserNotFound if response["message"][0..17] == "Couldn't find User"
|
24
|
+
raise CookieJar::Error::AccountNotFound if response["message"][0..20] == "Couldn't find Account"
|
25
|
+
end
|
26
|
+
|
27
|
+
response
|
28
|
+
end
|
29
|
+
|
30
|
+
def create_account(description)
|
31
|
+
self.url = "#{CookieJar::Wallet::WALLET_HOST}/v1/users/#{self.user_id}/accounts"
|
32
|
+
response = self.post({:account => { :description => description} })
|
33
|
+
|
34
|
+
unless response["message"].nil? and response[:code].nil?
|
35
|
+
raise CookieJar::Error::AccessDenied if response["message"] == "You're not authorized to access the resource" or response[:code] == 401
|
36
|
+
raise CookieJar::Error::InsufficientParams if response["message"] == "Insufficient parameters."
|
37
|
+
end
|
38
|
+
|
39
|
+
self.account_id = response["id"]
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
def update_account(account_id, description)
|
44
|
+
self.url = "#{CookieJar::Wallet::WALLET_HOST}/v1/users/#{self.user_id}/accounts/#{account_id}"
|
45
|
+
response = self.put({:account => { :description => description} })
|
46
|
+
|
47
|
+
unless response["message"].nil? and response[:code].nil?
|
48
|
+
raise CookieJar::Error::AccessDenied if response["message"] == "You're not authorized to access the resource" or response[:code] == 401
|
49
|
+
raise CookieJar::Error::InsufficientParams if response["message"] == "Insufficient parameters."
|
50
|
+
end
|
51
|
+
|
52
|
+
self.account_id = response["id"]
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require "ipaddress"
|
2
|
+
|
3
|
+
module CookieJar
|
4
|
+
module Wallet
|
5
|
+
class Banker < WalletBase
|
6
|
+
def initialize(client_id, client_secret, username, password, passcode)
|
7
|
+
self.client = OAuth2::Client.new(client_id, client_secret, :site => CookieJar::Wallet::AA_HOST)
|
8
|
+
self.token = init_token(username, password, passcode)
|
9
|
+
self.user_id = get_user_id
|
10
|
+
end
|
11
|
+
|
12
|
+
def init_token(username, password, passcode)
|
13
|
+
self.client.password.get_token(username, password, :passcode => passcode)
|
14
|
+
end
|
15
|
+
|
16
|
+
def all_circulations(user_url, user_ip, user_agent)
|
17
|
+
raise CookieJar::Error::InvalidUserIP unless IPAddress.valid? user_ip
|
18
|
+
|
19
|
+
self.url = "#{CookieJar::Wallet::WALLET_HOST}/v1/circulations"
|
20
|
+
response = self.get({:user_url => user_url, :user_ip => user_ip, :user_agent => user_agent, :user_id => self.user_id})
|
21
|
+
|
22
|
+
if response.is_a?(Hash)
|
23
|
+
raise CookieJar::Error::InsufficientParams if response["message"] == "Insufficient parameters."
|
24
|
+
raise CookieJar::Error::AccessDenied if response["message"] == "You're not authorized to access the resource" or response[:code] == 401
|
25
|
+
end
|
26
|
+
response
|
27
|
+
end
|
28
|
+
|
29
|
+
def get_circulation(circulation_id, user_url, user_ip, user_agent)
|
30
|
+
raise CookieJar::Error::InvalidUserIP unless IPAddress.valid? user_ip
|
31
|
+
|
32
|
+
self.url = "#{CookieJar::Wallet::WALLET_HOST}/v1//circulations/#{circulation_id}"
|
33
|
+
response = self.get({:user_url => user_url, :user_ip => user_ip, :user_agent => user_agent, :user_id => self.user_id})
|
34
|
+
unless response["message"].nil? and response[:code].nil?
|
35
|
+
raise CookieJar::Error::AccessDenied if response["message"] == "You're not authorized to access the resource" or response[:code] == 401
|
36
|
+
raise CookieJar::Error::CirculationNotFound if response["message"][0..21] == "Couldn't find Transfer"
|
37
|
+
raise CookieJar::Error::InsufficientParams if response["message"] == "Insufficient parameters."
|
38
|
+
end
|
39
|
+
|
40
|
+
response
|
41
|
+
end
|
42
|
+
|
43
|
+
def create_circulation(amount, user_url, user_ip, user_agent)
|
44
|
+
raise CookieJar::Error::InvalidUserIP unless IPAddress.valid? user_ip
|
45
|
+
|
46
|
+
self.url = "#{CookieJar::Wallet::WALLET_HOST}/v1/circulations"
|
47
|
+
response = self.post({:amount => amount, :user_url => user_url, :user_ip => user_ip, :user_agent => user_agent, :user_id => self.user_id})
|
48
|
+
|
49
|
+
unless response["message"].nil? and response[:code].nil?
|
50
|
+
raise CookieJar::Error::AccessDenied if response["message"] == "You're not authorized to access the resource" or response[:code] == 401
|
51
|
+
raise CookieJar::Error::CreateError if response["message"] == "Creation of circulation failed."
|
52
|
+
raise CookieJar::Error::InsufficientParams if response["message"] == "Insufficient parameters."
|
53
|
+
end
|
54
|
+
|
55
|
+
response
|
56
|
+
end
|
57
|
+
|
58
|
+
def activate_circulation(circulation_id, user_url, user_ip, user_agent)
|
59
|
+
raise CookieJar::Error::InvalidUserIP unless IPAddress.valid? user_ip
|
60
|
+
|
61
|
+
self.url = "#{CookieJar::Wallet::WALLET_HOST}/v1/circulations/#{circulation_id}/activate"
|
62
|
+
response = self.put(:user_url => user_url, :user_ip => user_ip, :user_agent => user_agent, :user_id => self.user_id)
|
63
|
+
|
64
|
+
unless response["message"].nil? and response[:code].nil?
|
65
|
+
raise CookieJar::Error::AccessDenied if response["message"] == "You're not authorized to access the resource" or response[:code] == 401
|
66
|
+
raise CookieJar::Error::InsufficientParams if response["message"] == "Insufficient parameters."
|
67
|
+
raise CookieJar::Error::CirculationNotFound if response["message"][0..21] == "Couldn't find Transfer"
|
68
|
+
raise CookieJar::Error::CirculationAlreadyActivated if response["message"] == "Circulation is already activated."
|
69
|
+
end
|
70
|
+
|
71
|
+
response
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
module CookieJar
|
2
|
+
module Error
|
3
|
+
class AccessDenied < StandardError
|
4
|
+
def to_s
|
5
|
+
"You're not authorized to access the resource"
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class UserNotFound < StandardError
|
10
|
+
def to_s
|
11
|
+
"User was not found."
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class TransferNotFound < StandardError
|
16
|
+
def to_s
|
17
|
+
"Transfer was not found."
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class CirculationNotFound < StandardError
|
22
|
+
def to_s
|
23
|
+
"Circulation was not found."
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
class CirculationAlreadyActivated < StandardError
|
28
|
+
def to_s
|
29
|
+
"Circulation is already activated."
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
class CreateError < StandardError
|
34
|
+
def to_s
|
35
|
+
"Creation of circulation failed."
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
class AccountNotFound < StandardError
|
40
|
+
def to_s
|
41
|
+
"Account was not found."
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
class InsufficientParams < StandardError
|
46
|
+
def to_s
|
47
|
+
"Insufficient params."
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
class InvalidUserIP < StandardError
|
52
|
+
def to_s
|
53
|
+
"Invalid USER IP address."
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
class InvalidWithdrawAmount < StandardError
|
58
|
+
def to_s
|
59
|
+
"Invalid withdraw amount."
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
class TransferPermissionDenied < StandardError
|
64
|
+
def to_s
|
65
|
+
"You do not have permission to authorize the transfer."
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
class AccountPermissionDenied < StandardError
|
70
|
+
def to_s
|
71
|
+
"You do not have permission to access the account."
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
class TransferAlreadyInitiated < StandardError
|
76
|
+
def to_s
|
77
|
+
"Transfer is already initiated."
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module CookieJar
|
2
|
+
module Wallet
|
3
|
+
module Transfer
|
4
|
+
def create_transfer
|
5
|
+
self.url = "#{CookieJar::Wallet::WALLET_HOST}/v1/users/#{self.user_id}/transfers"
|
6
|
+
response = self.post
|
7
|
+
|
8
|
+
unless response["message"].nil? and response[:code].nil?
|
9
|
+
raise CookieJar::Error::AccessDenied if response["message"] == "You're not authorized to access the resource" or response[:code] == 401
|
10
|
+
end
|
11
|
+
|
12
|
+
response
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_transfer(transfer_id)
|
16
|
+
self.url = "#{CookieJar::Wallet::WALLET_HOST}/v1/users/#{self.user_id}/transfers/#{transfer_id}"
|
17
|
+
response = self.get
|
18
|
+
|
19
|
+
unless response["message"].nil? and response[:code].nil?
|
20
|
+
raise CookieJar::Error::TransferNotFound if response["message"][0..21] == "Couldn't find Transfer"
|
21
|
+
raise CookieJar::Error::AccessDenied if response["message"] == "You're not authorized to access the resource" or response[:code] == 401
|
22
|
+
end
|
23
|
+
|
24
|
+
response
|
25
|
+
end
|
26
|
+
|
27
|
+
def all_transfers
|
28
|
+
self.url = "#{CookieJar::Wallet::WALLET_HOST}/v1/users/#{self.user_id}/transfers"
|
29
|
+
response = self.get
|
30
|
+
|
31
|
+
if response.is_a?(Hash)
|
32
|
+
raise CookieJar::Error::AccessDenied if response["message"] == "You're not authorized to access the resource" or response[:code] == 401
|
33
|
+
end
|
34
|
+
|
35
|
+
response
|
36
|
+
end
|
37
|
+
|
38
|
+
def activate_transfer(transfer_id, amount, from_account, to_account)
|
39
|
+
self.url = "#{CookieJar::Wallet::WALLET_HOST}/v1/users/#{self.user_id}/transfers/#{transfer_id}/transfer"
|
40
|
+
response = self.put({:amount => amount, :accounts => { :from_account => from_account, :to_account => to_account }})
|
41
|
+
|
42
|
+
unless response["message"].nil? and response[:code].nil?
|
43
|
+
raise CookieJar::Error::TransferAlreadyInitiated if response["message"] == "Transfer is already initiated."
|
44
|
+
raise CookieJar::Error::AccountPermissionDenied if response["message"] == "You do not have permission to access the account."
|
45
|
+
raise CookieJar::Error::TransferPermissionDenied if response["message"] == "You do not have permission to access the transfer."
|
46
|
+
raise CookieJar::Error::InvalidWithdrawAmount if response["message"] == "Invalid withdraw amount."
|
47
|
+
end
|
48
|
+
response
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|