mifiel 1.2.0 → 1.3.1

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
- SHA1:
3
- metadata.gz: 1772670719d1f6b0a3701a741a365e1365aed0e5
4
- data.tar.gz: 6c35a0f222ce5fe6d21d7559fb813a6f41f2a1c9
2
+ SHA256:
3
+ metadata.gz: 1569646681fcf22ebc9758654ea1cd69335c0de8fea3be1d91a2141c0c06f83d
4
+ data.tar.gz: fab079bd4ba6f4edb93a458c934b8e2f783b90296c00bc4e0d0ae0b9d8992d3b
5
5
  SHA512:
6
- metadata.gz: dd0ca66ba48690fcfb88f5186293b0e8b4dcf1a96f2d903c5aa0f173ceecc6ba5cb5abbee468b567d21501707be7e23b73d7f3460506b509562cf05c8219a8b7
7
- data.tar.gz: 22f6a6bb79aa959591450e0e7267e078e20d543e460b61b58995ca808b4720004c9ddcf6a4dd3f5efbe13699616bb25c07866214231d64871547a2f7139f90a4
6
+ metadata.gz: 34ea17ff1b1e888dec3ee6f9f5c2b3460bfa29dfc3629330880d0dfe831760e60e3271c2f80511d8edf2b9e0de3f5708944f221581cbf424b9ac13f7c3be303f
7
+ data.tar.gz: 6f04cbd056834f0709067c43223c2f695c63e9ea9d2d51a2d6419cef800047065be3d46fe739406c9ed9d260cb7c01a6a123b89ae7e21bb6800b6f57726248ac
data/.gitignore CHANGED
@@ -17,3 +17,5 @@ rubocop.html
17
17
  .ruby-version
18
18
  *.sublime-workspace
19
19
  vendor
20
+ gemfiles/*.lock
21
+ .idea
data/.rubocop.yml CHANGED
@@ -1,27 +1,18 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.1
3
-
4
- Style/IndentationConsistency:
5
- Enabled: false
6
-
7
- Style/AlignHash:
8
- Enabled: false
2
+ TargetRubyVersion: 2.3
3
+ Exclude:
4
+ - 'gemfiles/**/*'
9
5
 
10
- Style/SpaceAroundEqualsInParameterDefault:
11
- Enabled: false
6
+ Layout/LineLength:
7
+ Max: 190
12
8
 
13
9
  Style/Documentation:
14
10
  Enabled: false
15
11
 
16
- Style/EmptyLinesAroundBlockBody:
17
- Enabled: false
18
-
19
- Metrics/LineLength:
20
- Max: 190
21
-
22
12
  Style/HashSyntax:
23
13
  EnforcedStyle: ruby19
24
14
 
25
15
  Metrics/BlockLength:
26
16
  Exclude:
27
17
  - 'spec/**/*'
18
+ - '*.gemspec'
data/.travis.yml CHANGED
@@ -1,15 +1,34 @@
1
1
  language: ruby
2
2
  cache: bundler
3
3
  sudo: false
4
+
5
+ gemfile:
6
+ - gemfiles/rails_5.gemfile
7
+ - gemfiles/rails_6.gemfile
8
+
4
9
  rvm:
5
- - 2.1
6
- - 2.2
7
- - 2.3.0
10
+ - 2.3
11
+ - 2.4
12
+ - 2.5
13
+ - 2.6
14
+ - 2.7
15
+ - 3.0
16
+ - 3.1
17
+
8
18
  notifications:
9
19
  email:
10
20
  on_success: change
11
21
  on_failure: always
22
+
12
23
  script:
13
- - mkdir ./tmp/
14
- - bundle exec rubocop
15
- - bundle exec rspec spec
24
+ - mkdir ./tmp/
25
+ - bundle exec rubocop
26
+ - bundle exec rspec
27
+
28
+ matrix:
29
+ exclude:
30
+ - rvm: 2.3
31
+ gemfile: gemfiles/rails_6.gemfile
32
+ - rvm: 2.4
33
+ gemfile: gemfiles/rails_6.gemfile
34
+ fast_finish: true
data/Appraisals ADDED
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ appraise 'rails-5' do
4
+ gem 'rails', '5'
5
+ gem 'sinatra'
6
+ end
7
+
8
+ appraise 'rails-6' do
9
+ gem 'rails', '6'
10
+ gem 'sinatra'
11
+ end
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in mifiel.gemspec
@@ -5,10 +7,4 @@ gemspec
5
7
 
6
8
  group :development, :test do
7
9
  gem 'coveralls', require: false
8
- gem 'guard', '2.13.0'
9
- gem 'guard-rspec'
10
- # compatible with ruby >= 1.9.3
11
- gem 'guard-rubocop'
12
- gem 'listen', '3.0.8'
13
- gem 'terminal-notifier-guard'
14
10
  end
data/README.md CHANGED
@@ -38,6 +38,7 @@ Then you can configure the gem with:
38
38
  Mifiel.config do |config|
39
39
  config.app_id = '<APP_ID>'
40
40
  config.app_secret = '<APP_SECRET>'
41
+ config.base_url = 'https://app-sandbox.mifiel.com/api/v1' #remove this line when you wish to use the prod environment
41
42
  end
42
43
  ```
43
44
 
@@ -149,6 +150,30 @@ Certificate methods:
149
150
  certificate.delete
150
151
  ```
151
152
 
153
+ User methods
154
+
155
+ - Setup Widget
156
+
157
+ ```ruby
158
+ args = {
159
+ email: 'some@email.com',
160
+ tax_id: 'AAA010101AAA',
161
+ callback_url: 'http://some-callback.url'
162
+ }
163
+
164
+ user = Mifiel::User.setup_widget(args)
165
+ user.widget_id
166
+ ```
167
+
168
+ Filtering Results
169
+
170
+ Our API returns a JSON list of items, this result can be filtered using a `where` method matching a specified criteria (or matching using regular expressions):
171
+
172
+ ```ruby
173
+ document = Mifiel::Document.find('id')
174
+ document.signers.where(field: /receiver|issuer/, email: 'some@email.com')
175
+ ```
176
+
152
177
  ## Contributing
153
178
 
154
179
  1. Fork it ( https://github.com/[my-github-username]/mifiel/fork )
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
 
3
5
  task :console do
@@ -0,0 +1,12 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "5"
6
+ gem "sinatra"
7
+
8
+ group :development, :test do
9
+ gem "coveralls", require: false
10
+ end
11
+
12
+ gemspec path: "../"
@@ -0,0 +1,12 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "6"
6
+ gem "sinatra"
7
+
8
+ group :development, :test do
9
+ gem "coveralls", require: false
10
+ end
11
+
12
+ gemspec path: "../"
data/lib/mifiel/base.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rest-client'
2
4
 
3
5
  module Mifiel
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Mifiel
2
4
  class Certificate < Mifiel::Base
3
5
  get :all, '/keys'
data/lib/mifiel/config.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Mifiel
2
4
  module Config
3
5
  class << self
@@ -26,11 +28,11 @@ module Mifiel
26
28
 
27
29
  private
28
30
 
29
- def set_api_auth_credentials
30
- Flexirest::Base.base_url = base_url
31
- Flexirest::Base.api_auth_credentials(app_id, app_secret)
32
- Flexirest::Base.request_body_type = :json
33
- end
31
+ def set_api_auth_credentials
32
+ Flexirest::Base.base_url = base_url
33
+ Flexirest::Base.api_auth_credentials(app_id, app_secret)
34
+ Flexirest::Base.request_body_type = :json
35
+ end
34
36
  end
35
37
 
36
38
  reset
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'open3'
2
4
  require 'api-auth'
3
5
 
@@ -19,6 +21,7 @@ module Mifiel
19
21
  callback_url = args[:callback_url]
20
22
  raise ArgumentError, 'Either file or hash must be provided' if !file && !hash
21
23
  raise ArgumentError, 'Only one of file or hash must be provided' if file && hash
24
+
22
25
  payload = {
23
26
  signatories: build_signatories(signatories),
24
27
  callback_url: callback_url,
@@ -33,20 +36,30 @@ module Mifiel
33
36
  end
34
37
  # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
35
38
 
36
- def request_signature(email, cc: nil)
39
+ def request_signature(email, cc: nil) # rubocop:disable Naming/MethodParameterName
37
40
  params = { email: email }
38
41
  params[:cc] = cc if cc.is_a?(Array)
39
42
  Mifiel::Document._request("#{Mifiel.config.base_url}/documents/#{id}/request_signature", :post, params)
40
43
  end
41
44
 
42
- def save_file(path)
45
+ def raw_data
43
46
  response = Mifiel::Document.process_request("/documents/#{id}/file", :get)
44
- File.open(path, 'wb') { |file| file.write(response) }
47
+
48
+ response.body
45
49
  end
46
50
 
47
- def save_file_signed(path)
51
+ def save_file(path)
52
+ File.open(path, 'wb') { |file| file.write(raw_data) }
53
+ end
54
+
55
+ def raw_signed_data
48
56
  response = Mifiel::Document.process_request("/documents/#{id}/file_signed", :get)
49
- File.open(path, 'wb') { |file| file.write(response) }
57
+
58
+ response.body
59
+ end
60
+
61
+ def save_file_signed(path)
62
+ File.open(path, 'wb') { |file| file.write(raw_signed_data) }
50
63
  end
51
64
 
52
65
  def save_xml(path)
@@ -54,10 +67,9 @@ module Mifiel
54
67
  File.open(path, 'w') { |file| file.write(response) }
55
68
  end
56
69
 
57
- def self.process_request(path, method, payload=nil)
58
- path[0] = '' if path[0] == '/'
70
+ def self.process_request(path, method, payload = nil)
59
71
  rest_request = RestClient::Request.new(
60
- url: "#{Mifiel.config.base_url}/#{path}",
72
+ url: "#{Mifiel.config.base_url}/#{path.gsub(%r{^\/}, '')}",
61
73
  method: method,
62
74
  payload: payload,
63
75
  ssl_version: 'SSLv23'
data/lib/mifiel/errors.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Mifiel
2
4
  MifielError = Class.new StandardError
3
5
  BadRequestError = Class.new StandardError
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Mifiel
2
4
  class Template < Mifiel::Base
3
5
  get :all, '/templates'
@@ -5,14 +7,15 @@ module Mifiel
5
7
  put :save, '/templates/:id'
6
8
  post :create, '/templates'
7
9
  delete :delete, '/templates/:id'
10
+ get :fields, '/templates/:id/fields'
8
11
 
9
12
  def generate_document(args = {})
10
13
  Mifiel::Document.create_from_template(args.merge(template_id: id))
11
14
  end
12
15
 
13
- def generate_documents(callback_url:, identifier: nil, documents:)
16
+ def generate_documents(callback_url:, documents:, identifier: nil)
14
17
  Mifiel::Document.create_many_from_template(
15
- template_id: template_id,
18
+ template_id: id,
16
19
  identifier: identifier,
17
20
  documents: documents,
18
21
  callback_url: callback_url
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mifiel
4
+ class User < Mifiel::Base
5
+ post :setup_widget, '/users/setup-widget'
6
+
7
+ def self.setup_widget(args) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
8
+ email = args[:email]
9
+ tax_id = args[:tax_id]
10
+ callback_url = args[:callback_url]
11
+
12
+ raise ArgumentError, 'Email must be provided' unless email
13
+ raise ArgumentError, 'Tax id must be provided' unless tax_id
14
+
15
+ rest_request = RestClient::Request.new(
16
+ url: "#{Mifiel.config.base_url}/users/setup-widget",
17
+ method: :post,
18
+ payload: {
19
+ email: email,
20
+ tax_id: tax_id,
21
+ callback_url: callback_url
22
+ },
23
+ ssl_version: 'SSLv23'
24
+ )
25
+ req = ApiAuth.sign!(rest_request, Mifiel.config.app_id, Mifiel.config.app_secret)
26
+ Mifiel::User.new(JSON.parse(req.execute))
27
+ end
28
+ end
29
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Mifiel
2
- VERSION = '1.2.0'.freeze
4
+ VERSION = '1.3.1'
3
5
  end
data/lib/mifiel.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'flexirest'
2
4
 
3
5
  module Mifiel
@@ -7,8 +9,9 @@ module Mifiel
7
9
  autoload :Certificate, 'mifiel/certificate'
8
10
  autoload :Template, 'mifiel/template'
9
11
  autoload :Config, 'mifiel/config'
12
+ autoload :User, 'mifiel/user'
10
13
 
11
- BASE_URL = 'https://www.mifiel.com/api/v1'.freeze
14
+ BASE_URL = 'https://www.mifiel.com/api/v1'
12
15
 
13
16
  def self.config
14
17
  if block_given?
data/mifiel.gemspec CHANGED
@@ -1,9 +1,10 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+
4
6
  require 'mifiel/version'
5
7
 
6
- # rubocop:disable Metrics/BlockLength
7
8
  Gem::Specification.new do |spec|
8
9
  spec.name = 'mifiel'
9
10
  spec.version = Mifiel::VERSION
@@ -17,28 +18,21 @@ Gem::Specification.new do |spec|
17
18
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
20
  spec.require_paths = ['lib']
20
- spec.required_ruby_version = '~> 2.1'
21
+ spec.required_ruby_version = '>= 2.3'
21
22
 
22
- spec.add_runtime_dependency 'rest-client', '>= 1.8'
23
- spec.add_runtime_dependency 'json', '~> 1.8'
24
- spec.add_runtime_dependency 'api-auth', '~> 1.4'
25
- # Use Gem::Version to parse the Ruby version for reliable comparison
26
- # ActiveSupport 5+ requires Ruby 2.2.2
27
- if Gem::Version.new(RUBY_VERSION) > Gem::Version.new('2.2.2')
28
- spec.add_runtime_dependency 'activesupport'
29
- else
30
- spec.add_runtime_dependency 'activesupport', '< 5.0.0'
31
- end
32
- spec.add_runtime_dependency 'flexirest', '~> 1.3.35'
23
+ spec.add_runtime_dependency 'activesupport'
24
+ spec.add_runtime_dependency 'api-auth', '~> 1.4'
25
+ spec.add_runtime_dependency 'flexirest', '~> 1.6'
26
+ spec.add_runtime_dependency 'json', '>= 1.8'
27
+ spec.add_runtime_dependency 'rest-client', '>= 1.8'
33
28
 
34
- spec.add_development_dependency 'bundler', '~> 1.6'
35
- spec.add_development_dependency 'rake', '~> 10.0'
36
- spec.add_development_dependency 'rspec', '~> 3.1', '>= 3.1.7'
37
- spec.add_development_dependency 'byebug', '~> 9.0', '< 9.0.6'
38
- spec.add_development_dependency 'pry-byebug', '~> 3.4', '>= 3.3.0'
39
- spec.add_development_dependency 'bump', '~> 0.5', '>= 0.5.3'
40
- spec.add_development_dependency 'webmock', '~> 1.22', '>= 1.22.2'
41
- spec.add_development_dependency 'sinatra', '~> 1.4', '>= 1.4.7'
42
- spec.add_development_dependency 'rubocop', '0.47.1'
43
- spec.add_development_dependency 'simplecov', '~> 0.15'
29
+ spec.add_development_dependency 'appraisal'
30
+ spec.add_development_dependency 'bump', '~> 0.5', '>= 0.5.3'
31
+ spec.add_development_dependency 'bundler'
32
+ spec.add_development_dependency 'rake', '~> 13.0'
33
+ spec.add_development_dependency 'rspec', '~> 3.10'
34
+ spec.add_development_dependency 'rubocop', '~> 1.24'
35
+ spec.add_development_dependency 'simplecov', '~> 0.21'
36
+ spec.add_development_dependency 'sinatra'
37
+ spec.add_development_dependency 'webmock'
44
38
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  describe Mifiel::Base do
2
4
  describe 'rescue_errors' do
3
5
  describe 'when bad request' do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  describe Mifiel::Certificate do
2
4
  describe '#create' do
3
5
  let(:certificate) do
@@ -8,5 +10,4 @@ describe Mifiel::Certificate do
8
10
 
9
11
  it { expect(certificate).to be_a(Mifiel::Certificate) }
10
12
  end
11
-
12
13
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  describe Mifiel::Document do
2
4
  let!(:certificate) { File.read('spec/fixtures/FIEL_AAA010101AAA.cer') }
3
5
  let!(:private_key) { File.read('spec/fixtures/FIEL_AAA010101AAA.key') }
@@ -68,6 +70,22 @@ describe Mifiel::Document do
68
70
  describe 'working with a document' do
69
71
  let!(:document) { Mifiel::Document.all.first }
70
72
 
73
+ describe '#raw_data' do
74
+ let(:document_content) { 'some-pdf-formatted-string' }
75
+
76
+ it 'should get the file raw data' do
77
+ expect(document.raw_data).to eq document_content
78
+ end
79
+ end
80
+
81
+ describe '#raw_signed_data' do
82
+ let(:document_content) { 'some-pdf-formatted-string' }
83
+
84
+ it 'should get the file raw signed data' do
85
+ expect(document.raw_signed_data).to eq document_content
86
+ end
87
+ end
88
+
71
89
  describe '#save_file' do
72
90
  let!(:path) { 'tmp/the-file.pdf' }
73
91
  before { File.unlink(path) if File.exist?(path) }
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  describe Mifiel::Template do
2
4
  let!(:template_id) { 'bb7d65b4-47f1-470e-85e4-22ddae86f9ea' }
3
5
 
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Mifiel::User do
4
+ describe '#setup_widget' do
5
+ let(:user) do
6
+ Mifiel::User.setup_widget(
7
+ email: 'user@email.com',
8
+ tax_id: 'AAA010101AAA',
9
+ callback_url: 'http://some-callback.url/mifiel'
10
+ )
11
+ end
12
+
13
+ it { expect(user.success).to be_truthy }
14
+ it { expect(user.widget_id).to_not be_nil }
15
+ end
16
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,26 +1,29 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'pry'
2
- require 'byebug'
3
- require 'pry-byebug'
4
4
  require 'mifiel'
5
5
  require 'webmock/rspec'
6
-
7
6
  require 'simplecov'
8
7
  require 'coveralls'
8
+
9
9
  SimpleCov.start do
10
10
  add_filter '/spec/'
11
11
  end
12
+
12
13
  Coveralls.wear!
13
14
 
14
- Dir['./spec/support/**/*.rb'].each { |f| require f }
15
+ Dir['./spec/support/**/*.rb'].sort.each { |f| require f }
15
16
 
16
17
  RSpec.configure do |config|
17
-
18
18
  config.before(:suite) do
19
19
  Mifiel.config do |conf|
20
20
  conf.app_id = 'APP_ID'
21
21
  conf.app_secret = 'APP_SECRET'
22
22
  conf.base_url = 'http://www.mifiel.com/api/v1'
23
23
  end
24
+
25
+ # Creates ruby-api-client/tmp folder so signed files can be saved correctly
26
+ Dir.mkdir 'tmp' unless File.directory? 'tmp'
24
27
  end
25
28
 
26
29
  config.before(:each) do
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'sinatra/base'
2
- # rubocop:disable Metrics/ClassLength
3
- class FakeMifiel < Sinatra::Base
4
+
5
+ class FakeMifiel < Sinatra::Base # rubocop:disable Metrics/ClassLength
4
6
  get '/api/v1/keys' do
5
7
  content_type :json
6
8
  status 200
@@ -99,61 +101,66 @@ class FakeMifiel < Sinatra::Base
99
101
  { bla: 'Correo enviado' }.to_json
100
102
  end
101
103
 
104
+ post '/api/v1/users/setup-widget' do
105
+ content_type :json
106
+ status 200
107
+ { widget_id: '123bc', success: true }.to_json
108
+ end
109
+
102
110
  private
103
111
 
104
- def template(args = {})
105
- {
106
- id: args[:id] || SecureRandom.uuid,
107
- name: 'some-template',
108
- content: '<div><field name="name">NAME</field></div>'
109
- }
110
- end
111
-
112
- def key(args={})
113
- id = args[:id] || SecureRandom.uuid
114
- {
115
- id: id,
116
- type_of: 'FIEL',
117
- cer_hex: '308204cf30...1303030303030323',
118
- owner: 'JORGE MORALES MENDEZ',
119
- tax_id: 'MOMJ811012643',
120
- expires_at: '2017-04-28T19:43:23.000Z',
121
- expired: false
122
- }
123
- end
124
-
125
- # rubocop:disable Metrics/MethodLength
126
- def document(args={})
127
- id = args[:id] || SecureRandom.uuid
128
- {
129
- id: id,
130
- original_hash: Digest::SHA256.hexdigest(id),
131
- file_file_name: 'test-pdf.pdf',
132
- signed_by_all: true,
112
+ def template(args = {})
113
+ {
114
+ id: args[:id] || SecureRandom.uuid,
115
+ name: 'some-template',
116
+ content: '<div><field name="name">NAME</field></div>'
117
+ }
118
+ end
119
+
120
+ def key(args = {})
121
+ id = args[:id] || SecureRandom.uuid
122
+ {
123
+ id: id,
124
+ type_of: 'FIEL',
125
+ cer_hex: '308204cf30...1303030303030323',
126
+ owner: 'JORGE MORALES MENDEZ',
127
+ tax_id: 'MOMJ811012643',
128
+ expires_at: '2017-04-28T19:43:23.000Z',
129
+ expired: false
130
+ }
131
+ end
132
+
133
+ def document(args = {}) # rubocop:disable Metrics/MethodLength
134
+ id = args[:id] || SecureRandom.uuid
135
+ {
136
+ id: id,
137
+ original_hash: Digest::SHA256.hexdigest(id),
138
+ file_file_name: 'test-pdf.pdf',
139
+ signed_by_all: true,
140
+ signed: true,
141
+ signed_at: Time.now.utc.iso8601,
142
+ status: [1, 'Firmado'],
143
+ owner: {
144
+ email: 'signer1@email.com',
145
+ name: 'Jorge Morales'
146
+ },
147
+ file: "/api/v1/documents/#{id}/file",
148
+ file_download: "/api/v1/documents/#{id}/file?download=true",
149
+ file_signed: "/api/v1/documents/#{id}/file_signed",
150
+ file_signed_download: "/api/v1/documents/#{id}/file_signed?download=true",
151
+ file_zipped: "/api/v1/documents/#{id}/zip",
152
+ signatures: [{
153
+ email: 'signer1@email.com',
133
154
  signed: true,
134
- signed_at: Time.now.utc.iso8601,
135
- status: [1, 'Firmado'],
136
- owner: {
155
+ signed_at: (Time.now.utc - 10_000).iso8601,
156
+ certificate_number: '20001000000200001410',
157
+ tax_id: 'AAA010101AAA',
158
+ signature: '77cd5156779c..4e276ef1056c1de11b7f70bed28',
159
+ user: {
137
160
  email: 'signer1@email.com',
138
161
  name: 'Jorge Morales'
139
- },
140
- file: "/api/v1/documents/#{id}/file",
141
- file_download: "/api/v1/documents/#{id}/file?download=true",
142
- file_signed: "/api/v1/documents/#{id}/file_signed",
143
- file_signed_download: "/api/v1/documents/#{id}/file_signed?download=true",
144
- file_zipped: "/api/v1/documents/#{id}/zip",
145
- signatures: [{
146
- email: 'signer1@email.com',
147
- signed: true,
148
- signed_at: (Time.now.utc - 10_000).iso8601,
149
- certificate_number: '20001000000200001410',
150
- tax_id: 'AAA010101AAA',
151
- signature: '77cd5156779c..4e276ef1056c1de11b7f70bed28',
152
- user: {
153
- email: 'signer1@email.com',
154
- name: 'Jorge Morales'
155
- }
156
- }]
157
- }
158
- end
162
+ }
163
+ }]
164
+ }
165
+ end
159
166
  end
metadata CHANGED
@@ -1,262 +1,218 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mifiel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genaro Madrid
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-15 00:00:00.000000000 Z
11
+ date: 2022-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rest-client
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.8'
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.8'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: json
28
+ name: api-auth
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.8'
33
+ version: '1.4'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.8'
40
+ version: '1.4'
41
41
  - !ruby/object:Gem::Dependency
42
- name: api-auth
42
+ name: flexirest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.4'
47
+ version: '1.6'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.4'
54
+ version: '1.6'
55
55
  - !ruby/object:Gem::Dependency
56
- name: activesupport
56
+ name: json
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "<"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 5.0.0
61
+ version: '1.8'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "<"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 5.0.0
68
+ version: '1.8'
69
69
  - !ruby/object:Gem::Dependency
70
- name: flexirest
70
+ name: rest-client
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 1.3.35
75
+ version: '1.8'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 1.3.35
82
+ version: '1.8'
83
83
  - !ruby/object:Gem::Dependency
84
- name: bundler
84
+ name: appraisal
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '1.6'
89
+ version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '1.6'
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: rake
98
+ name: bump
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '10.0'
103
+ version: '0.5'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 0.5.3
104
107
  type: :development
105
108
  prerelease: false
106
109
  version_requirements: !ruby/object:Gem::Requirement
107
110
  requirements:
108
111
  - - "~>"
109
112
  - !ruby/object:Gem::Version
110
- version: '10.0'
113
+ version: '0.5'
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 0.5.3
111
117
  - !ruby/object:Gem::Dependency
112
- name: rspec
118
+ name: bundler
113
119
  requirement: !ruby/object:Gem::Requirement
114
120
  requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '3.1'
118
121
  - - ">="
119
122
  - !ruby/object:Gem::Version
120
- version: 3.1.7
123
+ version: '0'
121
124
  type: :development
122
125
  prerelease: false
123
126
  version_requirements: !ruby/object:Gem::Requirement
124
127
  requirements:
125
- - - "~>"
126
- - !ruby/object:Gem::Version
127
- version: '3.1'
128
128
  - - ">="
129
129
  - !ruby/object:Gem::Version
130
- version: 3.1.7
130
+ version: '0'
131
131
  - !ruby/object:Gem::Dependency
132
- name: byebug
132
+ name: rake
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - "~>"
136
136
  - !ruby/object:Gem::Version
137
- version: '9.0'
138
- - - "<"
139
- - !ruby/object:Gem::Version
140
- version: 9.0.6
137
+ version: '13.0'
141
138
  type: :development
142
139
  prerelease: false
143
140
  version_requirements: !ruby/object:Gem::Requirement
144
141
  requirements:
145
142
  - - "~>"
146
143
  - !ruby/object:Gem::Version
147
- version: '9.0'
148
- - - "<"
149
- - !ruby/object:Gem::Version
150
- version: 9.0.6
144
+ version: '13.0'
151
145
  - !ruby/object:Gem::Dependency
152
- name: pry-byebug
146
+ name: rspec
153
147
  requirement: !ruby/object:Gem::Requirement
154
148
  requirements:
155
149
  - - "~>"
156
150
  - !ruby/object:Gem::Version
157
- version: '3.4'
158
- - - ">="
159
- - !ruby/object:Gem::Version
160
- version: 3.3.0
151
+ version: '3.10'
161
152
  type: :development
162
153
  prerelease: false
163
154
  version_requirements: !ruby/object:Gem::Requirement
164
155
  requirements:
165
156
  - - "~>"
166
157
  - !ruby/object:Gem::Version
167
- version: '3.4'
168
- - - ">="
169
- - !ruby/object:Gem::Version
170
- version: 3.3.0
158
+ version: '3.10'
171
159
  - !ruby/object:Gem::Dependency
172
- name: bump
160
+ name: rubocop
173
161
  requirement: !ruby/object:Gem::Requirement
174
162
  requirements:
175
163
  - - "~>"
176
164
  - !ruby/object:Gem::Version
177
- version: '0.5'
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: 0.5.3
165
+ version: '1.24'
181
166
  type: :development
182
167
  prerelease: false
183
168
  version_requirements: !ruby/object:Gem::Requirement
184
169
  requirements:
185
170
  - - "~>"
186
171
  - !ruby/object:Gem::Version
187
- version: '0.5'
188
- - - ">="
189
- - !ruby/object:Gem::Version
190
- version: 0.5.3
172
+ version: '1.24'
191
173
  - !ruby/object:Gem::Dependency
192
- name: webmock
174
+ name: simplecov
193
175
  requirement: !ruby/object:Gem::Requirement
194
176
  requirements:
195
177
  - - "~>"
196
178
  - !ruby/object:Gem::Version
197
- version: '1.22'
198
- - - ">="
199
- - !ruby/object:Gem::Version
200
- version: 1.22.2
179
+ version: '0.21'
201
180
  type: :development
202
181
  prerelease: false
203
182
  version_requirements: !ruby/object:Gem::Requirement
204
183
  requirements:
205
184
  - - "~>"
206
185
  - !ruby/object:Gem::Version
207
- version: '1.22'
208
- - - ">="
209
- - !ruby/object:Gem::Version
210
- version: 1.22.2
186
+ version: '0.21'
211
187
  - !ruby/object:Gem::Dependency
212
188
  name: sinatra
213
189
  requirement: !ruby/object:Gem::Requirement
214
190
  requirements:
215
- - - "~>"
216
- - !ruby/object:Gem::Version
217
- version: '1.4'
218
191
  - - ">="
219
192
  - !ruby/object:Gem::Version
220
- version: 1.4.7
193
+ version: '0'
221
194
  type: :development
222
195
  prerelease: false
223
196
  version_requirements: !ruby/object:Gem::Requirement
224
197
  requirements:
225
- - - "~>"
226
- - !ruby/object:Gem::Version
227
- version: '1.4'
228
198
  - - ">="
229
199
  - !ruby/object:Gem::Version
230
- version: 1.4.7
200
+ version: '0'
231
201
  - !ruby/object:Gem::Dependency
232
- name: rubocop
233
- requirement: !ruby/object:Gem::Requirement
234
- requirements:
235
- - - '='
236
- - !ruby/object:Gem::Version
237
- version: 0.47.1
238
- type: :development
239
- prerelease: false
240
- version_requirements: !ruby/object:Gem::Requirement
241
- requirements:
242
- - - '='
243
- - !ruby/object:Gem::Version
244
- version: 0.47.1
245
- - !ruby/object:Gem::Dependency
246
- name: simplecov
202
+ name: webmock
247
203
  requirement: !ruby/object:Gem::Requirement
248
204
  requirements:
249
- - - "~>"
205
+ - - ">="
250
206
  - !ruby/object:Gem::Version
251
- version: '0.15'
207
+ version: '0'
252
208
  type: :development
253
209
  prerelease: false
254
210
  version_requirements: !ruby/object:Gem::Requirement
255
211
  requirements:
256
- - - "~>"
212
+ - - ">="
257
213
  - !ruby/object:Gem::Version
258
- version: '0.15'
259
- description:
214
+ version: '0'
215
+ description:
260
216
  email:
261
217
  - genmadrid@gmail.com
262
218
  executables: []
@@ -268,12 +224,14 @@ files:
268
224
  - ".rspec"
269
225
  - ".rubocop.yml"
270
226
  - ".travis.yml"
227
+ - Appraisals
271
228
  - Gemfile
272
- - Guardfile
273
229
  - LICENSE.txt
274
230
  - README.md
275
231
  - Rakefile
276
232
  - bump
233
+ - gemfiles/rails_5.gemfile
234
+ - gemfiles/rails_6.gemfile
277
235
  - lib/mifiel.rb
278
236
  - lib/mifiel/base.rb
279
237
  - lib/mifiel/certificate.rb
@@ -281,6 +239,7 @@ files:
281
239
  - lib/mifiel/document.rb
282
240
  - lib/mifiel/errors.rb
283
241
  - lib/mifiel/template.rb
242
+ - lib/mifiel/user.rb
284
243
  - lib/mifiel/version.rb
285
244
  - mifiel-ruby-api-client.sublime-project
286
245
  - mifiel.gemspec
@@ -291,30 +250,30 @@ files:
291
250
  - spec/mifiel/certificate_spec.rb
292
251
  - spec/mifiel/document_spec.rb
293
252
  - spec/mifiel/template_spec.rb
253
+ - spec/mifiel/user_spec.rb
294
254
  - spec/spec_helper.rb
295
255
  - spec/support/fake_mifiel.rb
296
256
  homepage: https://www.mifiel.com
297
257
  licenses:
298
258
  - MIT
299
259
  metadata: {}
300
- post_install_message:
260
+ post_install_message:
301
261
  rdoc_options: []
302
262
  require_paths:
303
263
  - lib
304
264
  required_ruby_version: !ruby/object:Gem::Requirement
305
265
  requirements:
306
- - - "~>"
266
+ - - ">="
307
267
  - !ruby/object:Gem::Version
308
- version: '2.1'
268
+ version: '2.3'
309
269
  required_rubygems_version: !ruby/object:Gem::Requirement
310
270
  requirements:
311
271
  - - ">="
312
272
  - !ruby/object:Gem::Version
313
273
  version: '0'
314
274
  requirements: []
315
- rubyforge_project:
316
- rubygems_version: 2.2.2
317
- signing_key:
275
+ rubygems_version: 3.1.6
276
+ signing_key:
318
277
  specification_version: 4
319
278
  summary: Ruby SDK for mifiel.com.
320
279
  test_files:
@@ -325,5 +284,6 @@ test_files:
325
284
  - spec/mifiel/certificate_spec.rb
326
285
  - spec/mifiel/document_spec.rb
327
286
  - spec/mifiel/template_spec.rb
287
+ - spec/mifiel/user_spec.rb
328
288
  - spec/spec_helper.rb
329
289
  - spec/support/fake_mifiel.rb
data/Guardfile DELETED
@@ -1,37 +0,0 @@
1
- notification :terminal_notifier
2
-
3
- rspec_options = {
4
- all_after_pass: false,
5
- cmd: 'rspec spec',
6
- failed_mode: :focus
7
- }
8
-
9
- clearing :on
10
-
11
- guard :rspec, rspec_options do
12
- require 'ostruct'
13
-
14
- # Generic Ruby apps
15
- rspec = OpenStruct.new
16
- rspec.spec = ->(m) { "spec/#{m}_spec.rb" }
17
- rspec.spec_dir = 'spec'
18
- rspec.spec_helper = 'spec/spec_helper.rb'
19
-
20
- watch(%r{^spec/.+_spec\.rb$})
21
- watch(%r{^lib/mifiel/(.+)\.rb$}) do |m|
22
- "spec/mifiel/#{m[1]}_spec.rb"
23
- end
24
- watch(%r{^lib/mifiel/(.+)\.rb$}) do |m|
25
- "spec/mifiel/integration/#{m[1]}_spec.rb"
26
- end
27
- watch(rspec.spec_helper) { rspec.spec_dir }
28
- end
29
-
30
- rubocop_opts = {
31
- all_on_start: false,
32
- cli: '--format html -o rubocop.html'
33
- }
34
- guard :rubocop, rubocop_opts do
35
- watch(/.+\.rb$/)
36
- watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
37
- end