Skip to content
This repository has been archived by the owner on May 25, 2022. It is now read-only.

Commit

Permalink
Refactor: Move client into issuer & renames
Browse files Browse the repository at this point in the history
  • Loading branch information
luissifu committed Mar 1, 2017
1 parent ff6dd9c commit 345b77c
Show file tree
Hide file tree
Showing 7 changed files with 85 additions and 70 deletions.
2 changes: 1 addition & 1 deletion ditto_ruby.gemspec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# coding: utf-8
lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'ditto_ruby/version'
require 'ditto/version'

Gem::Specification.new do |spec|
spec.name = "ditto_ruby"
Expand Down
36 changes: 36 additions & 0 deletions lib/ditto/client.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
require 'faraday'
require 'faraday_middleware'

class Ditto::Client
def get(path, params = {})
connection.get do |request|
request.url "#{Ditto.base_path}/#{path}"
request.headers['Content-Type'] = 'application/json'
params.each { |key, val| request.params[key] = val }
end.body
end

def put(path, params = {})
connection.put do |request|
request.url "#{Ditto.base_path}/#{path}"
request.headers['Content-Type'] = 'application/json'
request.body = params.to_json
end.body
end

def post(path, params = {})
connection.post do |request|
request.url "#{Ditto.base_path}/#{path}"
request.headers['Content-Type'] = 'application/json'
request.body = params.to_json
end.body
end

def connection
@connection ||= Faraday.new(url: Ditto.base_url) do |c|
c.adapter Faraday.default_adapter
c.use Faraday::Response::RaiseError
c.response :json, content_type: /\bjson$/
end
end
end
39 changes: 39 additions & 0 deletions lib/ditto/issuer.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
require 'ditto/client'

class Ditto::Issuer
ATTRIBUTES = [:id, :name, :rfc, :regimen, :userNameSF, :passwordSF, :satPass,
:production, :location, :fiscalLocation]
attr_accessor(*ATTRIBUTES)

def initialize(attrs = {})
attrs.each do |key, value|
send("#{key}=", value) if respond_to? key
end
end

def self.create(attrs = {})
new(attrs).save
end

def save
if id.nil?
client.post("/SaveEmisorMaster/Emisor?UserId=#{Ditto.api_key}", to_hash)
end
end

private
def client
@client ||= Ditto::Client.new
end

def to_hash
attrs = {}

ATTRIBUTES.each do |a|
value = send("#{a}")
attrs[a] = value if !value.nil?
end

attrs
end
end
File renamed without changes.
12 changes: 9 additions & 3 deletions lib/ditto_ruby.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
require 'ditto_ruby/version'
require 'ditto_ruby/client'
require 'ditto_ruby/emisor'
require 'ditto/version'
require 'ditto/issuer'

module Ditto
@api_key = 'benoror'
@base_url = 'http://d9d5452e.ngrok.io'
@base_path = '/Api/webresources/invoice'

class << self
attr_accessor :api_key, :base_url, :base_path
end
end
53 changes: 0 additions & 53 deletions lib/ditto_ruby/client.rb

This file was deleted.

13 changes: 0 additions & 13 deletions lib/ditto_ruby/emisor.rb

This file was deleted.

0 comments on commit 345b77c

Please sign in to comment.