Skip to content
This repository was archived by the owner on Sep 28, 2021. It is now read-only.

Commit 80a8cc8

Browse files
committed
1.4.0
1 parent 909c7a3 commit 80a8cc8

20 files changed

+760
-568
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
/node_modules/xml2js
44
/node_modules/underscore
55
/node_modules/vows
6+
/node_modules/mocha
67
/tags

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 1.4.0
2+
3+
* Adds verification search
4+
15
## 1.3.0
26

37
* Additional card information, such as prepaid, debit, commercial, Durbin regulated, healthcare, and payroll, are returned on credit card responses

Rakefile

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ task :default => %w[spec:unit spec:integration]
33
namespace :spec do
44
desc "Run units"
55
task :unit => :install_vows do
6-
sh "#{local_vows} " + Dir.glob("spec/unit/**/*_spec.coffee").join(" ")
6+
sh "#{local_mocha} spec --recursive --compilers 'coffee:coffee-script'"
77
end
88

99
desc "Run integration"
@@ -12,10 +12,20 @@ namespace :spec do
1212
end
1313
end
1414

15+
task :mocha do
16+
sh "#{local_mocha} spec --recursive --compilers 'coffee:coffee-script'"
17+
end
18+
1519
task :install_vows do
16-
sh "npm install" unless File.exist?(local_vows)
20+
unless File.exist?(local_mocha) && File.exist?(local_vows)
21+
sh "npm install"
22+
end
1723
end
1824

1925
def local_vows
2026
"./node_modules/.bin/vows"
2127
end
28+
29+
def local_mocha
30+
"./node_modules/mocha/bin/mocha"
31+
end

lib/braintree.coffee

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ connect = (config) ->
77
new BraintreeGateway(new Config(config))
88

99
exports.connect = connect
10-
exports.version = '1.3.0'
10+
exports.version = '1.4.0'
1111
exports.Environment = Environment
1212
exports.errorTypes = errorTypes

lib/braintree/braintree_gateway.coffee

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{Http} = require('./http')
22
{AddressGateway} = require("./address_gateway")
33
{CreditCardGateway} = require("./credit_card_gateway")
4+
{CreditCardVerificationGateway} = require("./credit_card_verification_gateway")
45
{CustomerGateway} = require("./customer_gateway")
56
{SettlementBatchSummaryGateway} = require("./settlement_batch_summary_gateway")
67
{SubscriptionGateway} = require("./subscription_gateway")
@@ -14,6 +15,7 @@ class BraintreeGateway
1415
@http = new Http(@config)
1516
@address = new AddressGateway(this)
1617
@creditCard = new CreditCardGateway(this)
18+
@creditCardVerification = new CreditCardVerificationGateway(this)
1719
@customer = new CustomerGateway(this)
1820
@settlementBatchSummary = new SettlementBatchSummaryGateway(this)
1921
@subscription = new SubscriptionGateway(this)

lib/braintree/config.coffee

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
class Config
22
constructor: (rawConfig) ->
3-
@apiVersion = '2'
3+
@apiVersion = '3'
44
@environment = rawConfig.environment
55
@merchantId = rawConfig.merchantId
66
@publicKey = rawConfig.publicKey
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{AttributeSetter} = require('./attribute_setter')
2+
3+
class CreditCardVerification extends AttributeSetter
4+
constructor: (attributes) ->
5+
super attributes
6+
7+
exports.CreditCardVerification = CreditCardVerification
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
{Gateway} = require('./gateway')
2+
{CreditCardVerification} = require('./credit_card_verification')
3+
{CreditCardVerificationSearch} = require('./credit_card_verification_search')
4+
5+
util = require('util')
6+
_ = require('underscore')
7+
8+
exceptions = require('./exceptions')
9+
10+
class CreditCardVerificationGateway extends Gateway
11+
constructor: (@gateway) ->
12+
13+
find: (creditCardVerificationId, callback) ->
14+
if(creditCardVerificationId.trim() == '')
15+
callback(exceptions.NotFoundError(), null)
16+
else
17+
@gateway.http.get "/verifications/#{creditCardVerificationId}", (err, response) ->
18+
if err
19+
callback(err, null)
20+
else
21+
callback(null, new CreditCardVerification(response.verification))
22+
23+
search: (fn, callback) ->
24+
search = new CreditCardVerificationSearch()
25+
fn(search)
26+
@gateway.http.post("/verifications/advanced_search_ids", {search: search.toHash()}, @searchResponseHandler(@pagingFunctionGenerator(search), callback))
27+
28+
responseHandler: (callback) ->
29+
@createResponseHandler("creditCardVerification", CreditCardVerification, callback)
30+
31+
pagingFunctionGenerator: (search) ->
32+
(ids, callback) =>
33+
searchCriteria = search.toHash()
34+
searchCriteria["ids"] = ids
35+
@gateway.http.post("/verifications/advanced_search",
36+
{ search : searchCriteria },
37+
(err, response) ->
38+
if err
39+
callback(err, null)
40+
else
41+
if _.isArray(response.creditCardVerifications.verification)
42+
for creditCardVerification in response.creditCardVerifications.verification
43+
callback(null, new CreditCardVerification(creditCardVerification))
44+
else
45+
callback(null, new CreditCardVerification(response.creditCardVerifications.verification)))
46+
47+
48+
exports.CreditCardVerificationGateway = CreditCardVerificationGateway
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{AdvancedSearch} = require('./advanced_search')
2+
{CreditCard} = require('./credit_card')
3+
4+
class CreditCardVerificationSearch extends AdvancedSearch
5+
@textFields(
6+
"creditCardCardholderName"
7+
"id"
8+
)
9+
10+
@equalityFields "creditCardExpirationDate"
11+
12+
@partialMatchFields "creditCardNumber"
13+
14+
@multipleValueField "creditCardCardType", { "allows" : CreditCard.CardType.All() }
15+
@multipleValueField "ids"
16+
17+
@rangeFields("createdAt")
18+
19+
20+
exports.CreditCardVerificationSearch = CreditCardVerificationSearch

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name" : "braintree",
3-
"version" : "1.3.0",
3+
"version" : "1.4.0",
44
"description" : "A library for integrating with Braintree.",
55
"keywords" : ["payments"],
66
"homepage" : "http://github.com/braintree/braintree_node",
@@ -16,6 +16,7 @@
1616
"underscore" : "=1.3.1"
1717
},
1818
"devDependencies" : {
19-
"vows" : "=0.6.1"
19+
"vows" : "=0.6.1",
20+
"mocha" : "=1.6.0"
2021
}
2122
}

0 commit comments

Comments
 (0)