santander_chile-api_client 0.0.2 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4181a35bfe455c8109971d8b3e0e17b8708336c2eea5bb5ce5e8c3c99d6ad425
4
- data.tar.gz: 2c322570559efe7d938431962a572554e4b942e2bebf1463575965d757e8fa1a
3
+ metadata.gz: 771a6b84cdb5be50f473e910aea00e9afe3f458d91674aaa5f5487deae311f5b
4
+ data.tar.gz: fcb01d7f84b575f907b7c429b936b827263a8d69e6739565254d20c3cbf5dd4e
5
5
  SHA512:
6
- metadata.gz: c7b564818a9c5b5ee9fec659f425e7f505a2d2ad40d883b6f9483272724eda5738cf2e036d316f7839dab4b9417bca6d1cfd04f30fab782ade51292780a8a5c8
7
- data.tar.gz: 11a6c3f3efa1ed715c8a9f34b86243ef5494ec80bd6b41eb262f0c99267103d2276591456170bc01931835d31d036f4ad70b18e1d348e978502904a4f7979c7d
6
+ metadata.gz: 2379249a58802e803829e4dd8c0f2cf9555ba4841dabc4f672ba6b9e2a7c2b3f331721e1cbcf9c24a38898ed7a8674e7ba454ffec30319ff8a9a573da346b896
7
+ data.tar.gz: fa7105defabcb5c31451d640097419df0ac80f8e305d755686aa96d76ba1eb3d9a01e74c1a13a98581462c66ae92f1aca82a79882e7f1101c900594ef64377b3
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- santander_chile-api_client (0.0.2)
4
+ santander_chile-api_client (1.0.0)
5
5
  faraday (~> 1.7)
6
6
  faraday_middleware (~> 1.1)
7
7
 
data/README.md CHANGED
@@ -38,16 +38,37 @@ client.login(
38
38
 
39
39
  #### Products (accounts)
40
40
  ```rb
41
- results = client.products.list
41
+ results = client.products
42
42
  #=> SantanderChile::ApiClient::Collection
43
43
 
44
- results.data
45
- #=> [#<SantanderChile::ApiClient::Account>, #<SantanderChile::ApiClient::Account:>]
44
+ results.each { |x| x }
45
+ #=> <SantanderChile::ApiClient::Account>
46
+ #=> <SantanderChile::ApiClient::Account:>
47
+ #=> <SantanderChile::ApiClient::Account>
48
+
49
+ account = result.first
50
+ #=> <SantanderChile::ApiClient::Account>
51
+
52
+ ```
53
+ #### Movements
54
+ ```rb
55
+ movements = client.movements(account)
56
+ #=> SantanderChile::ApiClient::Collection
57
+
58
+ movements.each { |x| x }
59
+ #=> <SantanderChile::ApiClient::Movement *empty movement*>
60
+ #=> <SantanderChile::ApiClient::Movement>
61
+ #=> <SantanderChile::ApiClient::Movement>
62
+
63
+ # ** For some reason, the api return a list with and empty first element
64
+
46
65
  ```
66
+
67
+
47
68
  ### Todo
48
69
  - [x] ~~Products (accounts)~~
70
+ - [x] ~~Movements~~
49
71
  - [ ] Balance
50
- - [ ] Transactions
51
72
  - [ ] Transfers
52
73
  - [ ] Payments
53
74
 
@@ -1,6 +1,7 @@
1
1
  module SantanderChile
2
2
  module ApiClient
3
3
  class Collection
4
+ include Enumerable
4
5
  attr_reader :data
5
6
 
6
7
  def initialize(data:)
@@ -16,6 +17,10 @@ module SantanderChile
16
17
  },
17
18
  )
18
19
  end
20
+
21
+ def each(*args, &block)
22
+ @data.each(*args, &block)
23
+ end
19
24
  end
20
25
  end
21
26
  end
@@ -10,9 +10,9 @@ module SantanderChile
10
10
  "PATH": "ConsultaSaldo",
11
11
  "KEYS_TO": ["DATA", "AS_TIB_Consulta_Saldo_Response", "OUTPUT", "ESCALARES"],
12
12
  }
13
- TRANSACTIONS = {
14
- "PATH": "MvtosYDeposiDocCtas",
15
- "KEYS_TO": [],
13
+ MOVEMENTS = {
14
+ "PATH": "Consultas/MvtosYDeposiDocCtas",
15
+ "KEYS_TO": ["DATA", "MovimientosDepositos"],
16
16
  }
17
17
  end
18
18
  end
@@ -0,0 +1,53 @@
1
+ module SantanderChile
2
+ module ApiClient
3
+ class Movement < Object
4
+ ATTRIBUTES = {
5
+ "record_type" => "TipReg",
6
+ "transaction_number" => "NumMov",
7
+ "code" => "Codigo",
8
+ "amount" => "Importe",
9
+ # "" => "Concepto",
10
+ "post_date" => "FechConta",
11
+ "transaction_date" => "FechOper",
12
+ "transaction_time" => "HoraOper",
13
+ #"" => "FechValor",
14
+ #"" => "Cheque",
15
+ "balance" => "NuevoSaldo",
16
+ # "" => "IndAomo",
17
+ # "" => "IndAct",
18
+ # "" => "IndAnulab",
19
+ # "" => "IndAnulado",
20
+ # "" => "IndCargabo",
21
+ # "" => "IndGiro",
22
+ # "" => "Codigur",
23
+ # "" => "TipoCambio",
24
+ # "canal" => "Canal",
25
+ # "" => "IndPpal",
26
+ # "" => "Transaccion",
27
+ # "" => "CodAplicac",
28
+ # "" => "TermNio",
29
+ # "" => "FechNio",
30
+ # "" => "HoraNio",
31
+
32
+ "ConcepAmp" => "ConcepAmp",
33
+ "CodigoAmp" => "CodigoAmp",
34
+ "EntidadUmo" => "EntidadUmo",
35
+ "CentroUmo" => "CentroUmo",
36
+ "UseridUmo" => "UseridUmo",
37
+ "CajeroUmo" => "CajeroUmo",
38
+
39
+ "annotation" => "Observa",
40
+ "reference" => "ReferMvto",
41
+ # "" => "TipDep",
42
+ # "" => "DivDep",
43
+ # "" => "CentroDep",
44
+ # "" => "NumPapeleta",
45
+ # "" => "IndRetEsp",
46
+ # "" => "TimeUmo",
47
+
48
+ }
49
+
50
+ attr_accessor(*ATTRIBUTES.keys.map { |x| x.to_sym })
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,32 @@
1
+ module SantanderChile
2
+ module ApiClient
3
+ class MovementsResource < Resource
4
+ ## PATHS on santander_chile/api_client/endpoints.rb
5
+ def movements_params(client, account)
6
+ {
7
+ "Cabecera" => {
8
+ "HOST" => {
9
+ "USUARIO-ALT" => "GHOBP",
10
+ "TERMINAL-ALT" => "",
11
+ "CANAL-ID" => "078",
12
+ },
13
+ "CanalFisico" => "78",
14
+ "CanalLogico" => "74",
15
+ "RutCliente" => client.username,
16
+ "RutUsuario" => client.username,
17
+ "IpCliente" => "",
18
+ "InfoDispositivo" => "xx",
19
+ },
20
+ "Entrada" => {
21
+ "NumeroCuenta" => account.account_number,
22
+ },
23
+ }
24
+ end
25
+
26
+ def list(account, *params)
27
+ response = post_request(MOVEMENTS[:PATH], body: movements_params(@client, account).to_json)
28
+ Collection.from_response(response, keys_to: MOVEMENTS[:KEYS_TO], type: Movement)
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,5 +1,5 @@
1
1
  module SantanderChile
2
2
  module ApiClient
3
- VERSION = "0.0.2"
3
+ VERSION = "1.0.0"
4
4
  end
5
5
  end
@@ -10,10 +10,12 @@ module SantanderChile
10
10
 
11
11
  autoload :Object, "santander_chile/api_client/models/object"
12
12
  autoload :Account, "santander_chile/api_client/models/account"
13
+ autoload :Movement, "santander_chile/api_client/models/movement"
13
14
  autoload :Collection, "santander_chile/api_client/collection"
14
15
 
15
16
  autoload :Resource, "santander_chile/api_client/resources/resource"
16
17
  autoload :ProductsResource, "santander_chile/api_client/resources/products"
18
+ autoload :MovementsResource, "santander_chile/api_client/resources/movements"
17
19
 
18
20
  class Client
19
21
  autoload :Configuration, "santander_chile/api_client/client/configuration"
@@ -34,7 +36,11 @@ module SantanderChile
34
36
  end
35
37
 
36
38
  def products
37
- ProductsResource.new(self)
39
+ ProductsResource.new(self).list
40
+ end
41
+
42
+ def movements(account)
43
+ MovementsResource.new(self).list(account)
38
44
  end
39
45
  end
40
46
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: santander_chile-api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jerry Mendoza
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-10-05 00:00:00.000000000 Z
11
+ date: 2021-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -64,7 +64,9 @@ files:
64
64
  - lib/santander_chile/api_client/endpoints.rb
65
65
  - lib/santander_chile/api_client/error.rb
66
66
  - lib/santander_chile/api_client/models/account.rb
67
+ - lib/santander_chile/api_client/models/movement.rb
67
68
  - lib/santander_chile/api_client/models/object.rb
69
+ - lib/santander_chile/api_client/resources/movements.rb
68
70
  - lib/santander_chile/api_client/resources/products.rb
69
71
  - lib/santander_chile/api_client/resources/resource.rb
70
72
  - lib/santander_chile/api_client/token.rb