bsb 1.2.14 → 1.3.0

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.
@@ -7,9 +7,6 @@ module BSB
7
7
  module Client
8
8
  class MissingSubscriptionKeyError < StandardError; end
9
9
 
10
- OUTPUT_PARAM_WIDTH = 30
11
- LEADER_WIDTH = OUTPUT_PARAM_WIDTH + 11
12
-
13
10
  Response = Struct.new(:body, keyword_init: true)
14
11
 
15
12
  def self.fetch_all_bsbs
@@ -26,13 +23,12 @@ module BSB
26
23
  }
27
24
  ) do |faraday|
28
25
  faraday.response :raise_error
26
+ faraday.response :json
29
27
  end
30
28
 
31
- response = conn.post('/bsbquery/manual/paths/invoke') do |req|
32
- req.body = { outputparam: ' ' * OUTPUT_PARAM_WIDTH }.to_json
33
- end
29
+ response = conn.post('/BSBQuery-V2/manual/paths/invoke')
34
30
 
35
- Response.new(body: response.body[LEADER_WIDTH..])
31
+ Response.new(body: response.body.fetch('data'))
36
32
  end
37
33
  end
38
34
  end
@@ -10,8 +10,10 @@ module BSB
10
10
  @hash = hash
11
11
  end
12
12
 
13
- def json
14
- JSON.pretty_generate(@hash)
13
+ def json(sorted: false)
14
+ return JSON.pretty_generate(@hash) unless sorted
15
+
16
+ JSON.pretty_generate(@hash.sort.to_h)
15
17
  end
16
18
  end
17
19
  end
data/lib/bsb/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BSB
4
- VERSION = '1.2.14'
4
+ VERSION = '1.3.0'
5
5
  end
@@ -28,7 +28,7 @@ namespace :bsb do
28
28
  }
29
29
  )
30
30
 
31
- File.write(BSB::DB_FILEPATH, latest_db.json)
31
+ File.write(BSB::DB_FILEPATH, latest_db.json(sorted: true))
32
32
  File.write(BSB::CHANGES_FILEPATH, changes_json)
33
33
  end
34
34
  end
@@ -5,7 +5,16 @@ require 'test_helper'
5
5
 
6
6
  describe BSB::AusPayNet::Client do
7
7
  describe '.fetch_all_bsbs' do
8
- before { ENV['AUSPAYNET_SUB_KEY'] = 'something' }
8
+ before do
9
+ if ENV['AUSPAYNET_SUB_KEY'].nil?
10
+ @remove_auspay_key = true
11
+ ENV['AUSPAYNET_SUB_KEY'] = 'something'
12
+ end
13
+ end
14
+
15
+ after do
16
+ ENV.delete('AUSPAYNET_SUB_KEY') if @remove_auspay_key
17
+ end
9
18
 
10
19
  it 'returns the expected response' do
11
20
  VCR.use_cassette('auspaynet_fetch_all_bsbs') do
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+ require 'bsb/base_generator'
5
+
6
+ describe BSB::BaseGenerator do
7
+ describe '#json' do
8
+ it 'returns a JSON string' do
9
+ hash = { key: 'value' }
10
+ generator = BSB::BaseGenerator.new(hash)
11
+ expected_json = <<~JSON.strip
12
+ {
13
+ "key": "value"
14
+ }
15
+ JSON
16
+
17
+ assert_equal expected_json, generator.json
18
+ end
19
+
20
+ it 'returns a JSON representation of the sorted hash when sorted is true' do
21
+ hash = { '123456' => '3', '012345' => '2', '234567' => '4', '00001' => '1' }
22
+ generator = BSB::BaseGenerator.new(hash)
23
+ expected_json = <<~JSON.strip
24
+ {
25
+ "00001": "1",
26
+ "012345": "2",
27
+ "123456": "3",
28
+ "234567": "4"
29
+ }
30
+ JSON
31
+
32
+ assert_equal expected_json, generator.json(sorted: true)
33
+ end
34
+
35
+ it 'returns a JSON representation of the unsorted hash when sorted is false' do
36
+ hash = { '123456' => '3', '012345' => '2', '234567' => '4', '00001' => '1' }
37
+ generator = BSB::BaseGenerator.new(hash)
38
+ expected_json = <<~JSON.strip
39
+ {
40
+ "123456": "3",
41
+ "012345": "2",
42
+ "234567": "4",
43
+ "00001": "1"
44
+ }
45
+ JSON
46
+
47
+ assert_equal expected_json, generator.json(sorted: false)
48
+ end
49
+ end
50
+ end
@@ -2,17 +2,17 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: post
5
- uri: https://auspaynet-bicbsb-api-prod.azure-api.net/bsbquery/manual/paths/invoke
5
+ uri: https://auspaynet-bicbsb-api-prod.azure-api.net/BSBQuery-V2/manual/paths/invoke
6
6
  body:
7
- encoding: UTF-8
8
- string: '{"outputparam":" "}'
7
+ encoding: US-ASCII
8
+ string: ''
9
9
  headers:
10
10
  Content-type:
11
11
  - application/json
12
12
  Ocp-apim-subscription-key:
13
13
  - "<AUSPAYNET_SUB_KEY>"
14
14
  User-Agent:
15
- - Faraday v2.10.1
15
+ - Faraday v2.12.0
16
16
  response:
17
17
  status:
18
18
  code: 200
@@ -25,56 +25,55 @@ http_interactions:
25
25
  transfer-encoding:
26
26
  - chunked
27
27
  content-type:
28
- - text/plain; charset=utf-8
28
+ - application/json
29
29
  content-encoding:
30
30
  - gzip
31
31
  expires:
32
32
  - "-1"
33
33
  vary:
34
34
  - Accept-Encoding
35
- set-cookie:
36
- - ARRAffinity=0aa69915266871205a67096b40953eafb333722c9d662666b4ee1cbd3af96c28;Path=/;HttpOnly;Secure;Domain=prod-07.australiasoutheast.logic.azure.com,
37
- ARRAffinitySameSite=0aa69915266871205a67096b40953eafb333722c9d662666b4ee1cbd3af96c28;Path=/;HttpOnly;SameSite=None;Secure;Domain=prod-07.australiasoutheast.logic.azure.com
38
35
  strict-transport-security:
39
36
  - max-age=31536000; includeSubDomains
40
37
  x-ms-workflow-run-id:
41
- - '08584759810780029358383571724CU01'
38
+ - '08584575192488054635250345459CU61'
42
39
  x-ms-correlation-id:
43
- - 8d349630-46fe-44ae-9d3f-0dc53071b48e
40
+ - a1c9ff2c-1071-48cb-89b9-abcba0c3ca33
44
41
  x-ms-client-tracking-id:
45
- - '08584759810780029358383571724CU01'
42
+ - '08584575192488054635250345459CU61'
46
43
  x-ms-trigger-history-name:
47
- - '08584759810780029358383571724CU01'
44
+ - '08584575192488054635250345459CU61'
48
45
  x-ms-execution-location:
49
46
  - australiasoutheast
50
47
  x-ms-workflow-system-id:
51
- - "/locations/australiasoutheast/scaleunits/prod-07/workflows/55b07bc2b01c48cea922b9673bb16c54"
48
+ - "/locations/australiasoutheast/scaleunits/prod-58/workflows/b6cb1d81c12f46cd9433109c878b4ca2"
52
49
  x-ms-workflow-id:
53
- - 55b07bc2b01c48cea922b9673bb16c54
50
+ - b6cb1d81c12f46cd9433109c878b4ca2
54
51
  x-ms-workflow-version:
55
- - '08584793971872858901'
52
+ - '08584576177772871167'
56
53
  x-ms-workflow-name:
57
- - logicapp-all-wildcardquery
54
+ - logicapp-all-wildcardquery-V2
58
55
  x-ms-tracking-id:
59
- - 8d349630-46fe-44ae-9d3f-0dc53071b48e
56
+ - a1c9ff2c-1071-48cb-89b9-abcba0c3ca33
60
57
  x-ms-ratelimit-burst-remaining-workflow-writes:
61
- - '2999'
58
+ - '2044'
62
59
  x-ms-ratelimit-remaining-workflow-download-contentsize:
63
- - '210888995'
64
- x-ms-ratelimit-remaining-workflow-upload-contentsize:
65
- - '214748112'
60
+ - '140739431'
66
61
  x-ms-ratelimit-time-remaining-directapirequests:
67
- - '19998471'
62
+ - '13634951'
68
63
  x-ms-request-id:
69
- - australiasoutheast:8d349630-46fe-44ae-9d3f-0dc53071b48e
64
+ - australiasoutheast:a1c9ff2c-1071-48cb-89b9-abcba0c3ca33
70
65
  request-context:
71
66
  - appId=cid-v1:62fce8e1-7550-4725-83ec-f11232c5768f
72
67
  date:
73
- - Fri, 06 Sep 2024 12:30:08 GMT
68
+ - Tue, 08 Apr 2025 04:47:18 GMT
74
69
  body:
75
- encoding: UTF-8
76
- string: '{"outputparam":"Query results returned "}[{"BSBCode":"012-002","BSBName":"ANZ
77
- Smart Choice","FiMnemonic":"ANZ","Address":"115 Pitt Street","Suburb":"Sydney","State":"NSW","Postcode":"2000","StreamCode":"PEH","lastmodified":null,"BIC":"ANZBAU3R","BICINT":"","repair":"00"},{"BSBCode":"012-003","BSBName":"Merged","FiMnemonic":"ANZ","Address":"Refer
78
- to BSB 012-019","Suburb":"Sydney","State":"NSW","Postcode":"2000","StreamCode":"PEH","lastmodified":null,"BIC":"ANZBAU3R","BICINT":"","repair":"00"}]'
79
- recorded_at: Fri, 06 Sep 2024 12:30:09 GMT
70
+ encoding: ASCII-8BIT
71
+ string: '{"status":"success","message":"Query executed with filters applied","timestamp":"2025-04-08T04:47:16.863","requestId":"08584575192488054635250345459CU61","data":"[{\"BSBCode\":\"942-304\",\"BSBName\":\"Bank
72
+ of Sydney Ltd - Doncaster\",\"FiMnemonic\":\"LBA\",\"Address\":\"Shop 1, 700
73
+ Doncaster Road\",\"Suburb\":\"Doncaster\",\"State\":\"VIC\",\"Postcode\":\"3108\",\"StreamCode\":\"EH\",\"lastmodified\":\"2024-03-01T06:48:44\",\"BIC\":\"LIKIAU2S\",\"BICINT\":\"\",\"repair\":\"0\",\"FIName\":\"Bank
74
+ of Sydney Ltd\"},{\"BSBCode\":\"942-303\",\"BSBName\":\"Bank of Sydney Ltd
75
+ - Northcote\",\"FiMnemonic\":\"LBA\",\"Address\":\"25 Nthcote Ctr High & Seperation
76
+ St\",\"Suburb\":\"Northcote\",\"State\":\"VIC\",\"Postcode\":\"3070\",\"StreamCode\":\"EH\",\"lastmodified\":\"2024-03-01T06:48:44\",\"BIC\":\"LIKIAU2S\",\"BICINT\":\"\",\"repair\":\"0\",\"FIName\":\"Bank
77
+ of Sydney Ltd\"}]"}'
78
+ recorded_at: Tue, 08 Apr 2025 04:47:19 GMT
80
79
  recorded_with: VCR 6.3.1
@@ -6,12 +6,17 @@ require 'bsb/database_generator'
6
6
 
7
7
  describe 'sync_bsb_db rake task' do # rubocop:disable Metrics/BlockLength
8
8
  before do
9
+ @old_sub_key = ENV.fetch('AUSPAYNET_SUB_KEY', nil)
9
10
  ENV.update('AUSPAYNET_SUB_KEY' => 'something')
10
11
  Rake.application.rake_require('../lib/tasks/sync_bsb_db')
11
12
  Rake::Task['bsb:sync_bsb_db'].reenable
12
13
  File.write('test/tmp/bsb_db.json', File.read('test/fixtures/bsb_db.json'))
13
14
  end
14
15
 
16
+ after do
17
+ ENV['AUSPAYNET_SUB_KEY'] = @old_sub_key
18
+ end
19
+
15
20
  let(:auspaynet_bsb_client_response) do
16
21
  BSB::AusPayNet::Client::Response.new(
17
22
  body: JSON.dump(
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bsb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.14
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Zhou
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-04-02 00:00:00.000000000 Z
11
+ date: 2025-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -58,6 +58,7 @@ files:
58
58
  - lib/tasks/sync_bsb_db.rake
59
59
  - release-please-config.json
60
60
  - test/bsb/aus_pay_net/client_test.rb
61
+ - test/bsb/base_generator_test.rb
61
62
  - test/bsb_number_validator_test.rb
62
63
  - test/bsb_test.rb
63
64
  - test/fixtures/bsb_db.json