santander_chile-api_client 0.0.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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