omie-ruby 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: f7c397f140aaafc1cc63e52b0f33af4f1563dfc865de7cb38520f50d3192c7f5
4
+ data.tar.gz: 9ab752b1eb2e621b6a9479242719d95c88efdc516e6037d065f9b131b28dbc79
5
+ SHA512:
6
+ metadata.gz: '08843628cdc911b1091992314deb601b068906d30e979464f6bbb0505628b783fe7c79714829420b390fd7cf1379533144b7884fe02835105a0f8c7734baa46c'
7
+ data.tar.gz: addf7f0188cbb241f41166910ea990ae8d9e74e14683071991b21a681bc336a578273def5566318902572a0529ea4ca22d776012a7b64e1e973f69d79c8c9493
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "omie/version"
4
+ require "omie/client"
5
+
6
+ module Omie
7
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "omie/api/base"
4
+ require "omie/api/customer"
5
+ require "omie/api/service_invoice"
6
+ require "omie/api/service_order"
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Omie
4
+ module API
5
+ class Base
6
+ def initialize(conn)
7
+ @conn = conn
8
+ end
9
+
10
+ private
11
+
12
+ attr_reader :conn
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Omie
4
+ module API
5
+ class Customer < Base
6
+ def upsert(data)
7
+ conn.post("geral/clientes/", { call: "UpsertCliente", param: [data] })
8
+ end
9
+
10
+ def batch_upsert(data, part: 1)
11
+ conn.post(
12
+ "geral/clientes/",
13
+ {
14
+ call: "UpsertClientesPorLote",
15
+ param: [
16
+ clientes_cadastro: data,
17
+ lote: part
18
+ ]
19
+ }
20
+ )
21
+ end
22
+
23
+ # rubocop:disable Naming/AccessorMethodName
24
+ def set_integration_id(data)
25
+ conn.post(
26
+ "geral/clientes/",
27
+ { call: "AssociarCodIntCliente", param: [data] }
28
+ )
29
+ end
30
+ # rubocop:enable Naming/AccessorMethodName
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Omie
4
+ module API
5
+ class ServiceInvoice < Base
6
+ def list(data)
7
+ conn.post("servicos/nfse/", { call: "ListarNFSEs", param: [data] })
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Omie
4
+ module API
5
+ class ServiceOrder < Base
6
+ def create(data)
7
+ conn.post("servicos/os/", { call: "IncluirOS", param: [data] })
8
+ end
9
+
10
+ def create_invoice(data)
11
+ conn.post("servicos/osp/", { call: "FaturarOS", param: [data] })
12
+ end
13
+
14
+ def cancel_invoice(data)
15
+ conn.post("servicos/osp/", { call: "CancelarOS", param: [data] })
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "faraday"
4
+ require "omie/middleware"
5
+ require "omie/api"
6
+
7
+ module Omie
8
+ class Client
9
+ BASE_URL = "https://app.omie.com.br/api/v1"
10
+
11
+ attr_reader :app_key, :app_secret
12
+
13
+ def initialize(app_key: nil, app_secret: nil)
14
+ @app_key = app_key || ENV.fetch("OMIE_APP_KEY")
15
+ @app_secret = app_secret || ENV.fetch("OMIE_APP_SECRET")
16
+
17
+ @conn = Faraday.new(BASE_URL) do |conn|
18
+ conn.request :omie_authentication, app_key: @app_key,
19
+ app_secret: @app_secret
20
+ conn.request :json
21
+ conn.response :json
22
+ end
23
+ end
24
+
25
+ def customer
26
+ @customer ||= API::Customer.new(conn)
27
+ end
28
+
29
+ def service_order
30
+ @service_order ||= API::ServiceOrder.new(conn)
31
+ end
32
+
33
+ def service_invoice
34
+ @service_invoice ||= API::ServiceInvoice.new(conn)
35
+ end
36
+
37
+ private
38
+
39
+ attr_reader :conn
40
+ end
41
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "faraday_middleware"
4
+ require "omie/middleware/authentication"
5
+
6
+ Faraday::Request.register_middleware(
7
+ omie_authentication: -> { Omie::Middleware::Authentication }
8
+ )
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Omie
4
+ module Middleware
5
+ class Authentication
6
+ attr_reader :app, :app_key, :app_secret
7
+
8
+ def initialize(app, options = {})
9
+ @app = app
10
+ @app_key = options.fetch(:app_key)
11
+ @app_secret = options.fetch(:app_secret)
12
+ end
13
+
14
+ def call(env)
15
+ env[:body] = body_with_authentication(env[:body])
16
+
17
+ app.call(env)
18
+ end
19
+
20
+ private
21
+
22
+ def body_with_authentication(body)
23
+ return body unless body.respond_to?(:merge)
24
+
25
+ body.merge(
26
+ app_key: app_key,
27
+ app_secret: app_secret
28
+ )
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Omie
4
+ module Version
5
+ MAJOR = "0"
6
+ MINOR = "3"
7
+ PATCH = "0"
8
+
9
+ STRING = [MAJOR, MINOR, PATCH].join(".")
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,183 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: omie-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ platform: ruby
6
+ authors:
7
+ - Alexandre Saldanha
8
+ - Nathália Oliveira
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2020-11-25 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: faraday
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: faraday_middleware
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '1.0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '1.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: minitest
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '5.14'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '5.14'
56
+ - !ruby/object:Gem::Dependency
57
+ name: minitest-reporters
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '1.4'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.4'
70
+ - !ruby/object:Gem::Dependency
71
+ name: pry-byebug
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '3.7'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '3.7'
84
+ - !ruby/object:Gem::Dependency
85
+ name: rake
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '13.0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '13.0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: rubocop
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - '='
103
+ - !ruby/object:Gem::Version
104
+ version: 0.82.0
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - '='
110
+ - !ruby/object:Gem::Version
111
+ version: 0.82.0
112
+ - !ruby/object:Gem::Dependency
113
+ name: simplecov
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: 0.18.5
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: 0.18.5
126
+ - !ruby/object:Gem::Dependency
127
+ name: vcr
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '6.0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '6.0'
140
+ description:
141
+ email:
142
+ - absaldanha@protonmail.com
143
+ - nathipsl@gmail.com
144
+ executables: []
145
+ extensions: []
146
+ extra_rdoc_files: []
147
+ files:
148
+ - lib/omie.rb
149
+ - lib/omie/api.rb
150
+ - lib/omie/api/base.rb
151
+ - lib/omie/api/customer.rb
152
+ - lib/omie/api/service_invoice.rb
153
+ - lib/omie/api/service_order.rb
154
+ - lib/omie/client.rb
155
+ - lib/omie/middleware.rb
156
+ - lib/omie/middleware/authentication.rb
157
+ - lib/omie/version.rb
158
+ homepage:
159
+ licenses:
160
+ - MIT
161
+ metadata:
162
+ source_code_uri: https://github.com/agendor/omie-ruby
163
+ post_install_message:
164
+ rdoc_options: []
165
+ require_paths:
166
+ - lib
167
+ required_ruby_version: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: 2.4.0
172
+ required_rubygems_version: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ requirements: []
178
+ rubyforge_project:
179
+ rubygems_version: 2.7.6
180
+ signing_key:
181
+ specification_version: 4
182
+ summary: An Omie API wrapper for Ruby
183
+ test_files: []