tripletexer 0.1.2 → 0.2.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 +4 -4
- data/README.md +6 -1
- data/lib/tripletexer.rb +23 -28
- data/lib/tripletexer/api_client.rb +95 -0
- data/lib/tripletexer/endpoints/abstract_endpoint.rb +12 -62
- data/lib/tripletexer/endpoints/customer.rb +1 -1
- data/lib/tripletexer/endpoints/employee.rb +1 -1
- data/lib/tripletexer/endpoints/invoice.rb +4 -4
- data/lib/tripletexer/endpoints/ledger.rb +10 -10
- data/lib/tripletexer/endpoints/ledger/close_group.rb +2 -2
- data/lib/tripletexer/endpoints/ledger/posting.rb +2 -2
- data/lib/tripletexer/endpoints/ledger/voucher.rb +2 -2
- data/lib/tripletexer/endpoints/order.rb +5 -5
- data/lib/tripletexer/endpoints/project.rb +1 -1
- data/lib/tripletexer/endpoints/timesheet.rb +2 -2
- data/lib/tripletexer/endpoints/timesheet/entry.rb +2 -2
- data/lib/tripletexer/endpoints/timesheet/time_clock.rb +2 -2
- data/lib/tripletexer/endpoints/token.rb +2 -2
- data/lib/tripletexer/endpoints/token/session.rb +7 -7
- data/lib/tripletexer/format_helpers.rb +8 -5
- data/lib/tripletexer/version.rb +1 -1
- data/spec/client_spec.rb +56 -0
- data/spec/endpoints/order_spec.rb +50 -0
- data/spec/endpoints/timesheet_spec.rb +19 -0
- data/spec/endpoints/token/session_spec.rb +33 -0
- data/spec/endpoints/token_spec.rb +19 -0
- data/spec/format_helpers_spec.rb +55 -0
- data/spec/spec_helper.rb +111 -0
- data/spec/tripletexer_spec.rb +114 -0
- data/spec/vcr_cassettes/endpoints/order/find.yml +116 -0
- data/spec/vcr_cassettes/endpoints/order/find__unauthorized.yml +71 -0
- data/spec/vcr_cassettes/endpoints/order/search.yml +164 -0
- data/spec/vcr_cassettes/endpoints/token/session/create.yml +77 -0
- data/spec/vcr_cassettes/endpoints/token/session/destroy.yml +295 -0
- data/spec/vcr_cassettes/endpoints/token/session/whoami.yml +68 -0
- data/spec/web_helper.rb +20 -0
- metadata +162 -16
- data/lib/tripletexer/connection.rb +0 -49
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: bcf1f36657638f5e3584d071122ae69310909da6
         | 
| 4 | 
            +
              data.tar.gz: 66a31e734019fd8137144c90c80808c1f8182a1c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: a2b71951766e6c75960aedee1f37ae3eb048defd4845feb03935d81da3649cab926613dca0598fa83e8f75ef856bc0bfedd34851043d93f883a89cd49efb47cb
         | 
| 7 | 
            +
              data.tar.gz: c1fc07477f60e2e9186ff7c480f6a47130e362fad4c4cec344d27c629db61e43484ccb0239091ab783ebd72321e00d531d6aeec2c34ec0684ddce139467d3ec1
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,9 +1,14 @@ | |
| 1 1 | 
             
            # Tripletexer - ruby client for tripletex.no API v2
         | 
| 2 2 |  | 
| 3 | 
            +
            [](https://travis-ci.org/graudeejs/tripletexer)
         | 
| 4 | 
            +
            [](https://circleci.com/gh/graudeejs/tripletexer)
         | 
| 5 | 
            +
            [](https://codeclimate.com/github/graudeejs/tripletexer)
         | 
| 6 | 
            +
            [](https://coveralls.io/github/graudeejs/tripletexer?branch=master)
         | 
| 7 | 
            +
             | 
| 3 8 | 
             
            ## Getting started
         | 
| 4 9 | 
             
            Add tripletexer to your Gemfile
         | 
| 5 10 | 
             
            ```ruby
         | 
| 6 | 
            -
            gem 'tripletexer', '~> 0. | 
| 11 | 
            +
            gem 'tripletexer', '~> 0.2.0'
         | 
| 7 12 | 
             
            ```
         | 
| 8 13 | 
             
            run bundle install
         | 
| 9 14 |  | 
    
        data/lib/tripletexer.rb
    CHANGED
    
    | @@ -3,7 +3,7 @@ | |
| 3 3 | 
             
            %w[
         | 
| 4 4 | 
             
              tripletexer/version.rb
         | 
| 5 5 | 
             
              tripletexer/errors.rb
         | 
| 6 | 
            -
              tripletexer/ | 
| 6 | 
            +
              tripletexer/api_client.rb
         | 
| 7 7 | 
             
              tripletexer/format_helpers.rb
         | 
| 8 8 | 
             
              tripletexer/endpoints.rb
         | 
| 9 9 | 
             
              tripletexer/endpoints/abstract_endpoint.rb
         | 
| @@ -47,90 +47,85 @@ | |
| 47 47 | 
             
            end
         | 
| 48 48 |  | 
| 49 49 | 
             
            class Tripletexer
         | 
| 50 | 
            -
              def initialize( | 
| 51 | 
            -
                @ | 
| 52 | 
            -
                @ | 
| 53 | 
            -
                connection.token = token if token
         | 
| 50 | 
            +
              def initialize(api_client: Tripletexer::APIClient.new, session_token: nil)
         | 
| 51 | 
            +
                @api_client = api_client
         | 
| 52 | 
            +
                @api_client.session_token = session_token if session_token
         | 
| 54 53 | 
             
              end
         | 
| 55 54 |  | 
| 56 55 | 
             
              def activity
         | 
| 57 | 
            -
                Tripletexer::Endpoints::Activity.new( | 
| 56 | 
            +
                Tripletexer::Endpoints::Activity.new(api_client)
         | 
| 58 57 | 
             
              end
         | 
| 59 58 |  | 
| 60 59 | 
             
              def address
         | 
| 61 | 
            -
                Tripletexer::Endpoints::Address.new( | 
| 60 | 
            +
                Tripletexer::Endpoints::Address.new(api_client)
         | 
| 62 61 | 
             
              end
         | 
| 63 62 |  | 
| 64 63 | 
             
              def company
         | 
| 65 | 
            -
                Tripletexer::Endpoints::Company.new( | 
| 64 | 
            +
                Tripletexer::Endpoints::Company.new(api_client)
         | 
| 66 65 | 
             
              end
         | 
| 67 66 |  | 
| 68 67 | 
             
              def contact
         | 
| 69 | 
            -
                Tripletexer::Endpoints::Contact.new( | 
| 68 | 
            +
                Tripletexer::Endpoints::Contact.new(api_client)
         | 
| 70 69 | 
             
              end
         | 
| 71 70 |  | 
| 72 71 | 
             
              def country
         | 
| 73 | 
            -
                Tripletexer::Endpoints::Country.new( | 
| 72 | 
            +
                Tripletexer::Endpoints::Country.new(api_client)
         | 
| 74 73 | 
             
              end
         | 
| 75 74 |  | 
| 76 75 | 
             
              def currency
         | 
| 77 | 
            -
                Tripletexer::Endpoints::Currency.new( | 
| 76 | 
            +
                Tripletexer::Endpoints::Currency.new(api_client)
         | 
| 78 77 | 
             
              end
         | 
| 79 78 |  | 
| 80 79 | 
             
              def customer
         | 
| 81 | 
            -
                Tripletexer::Endpoints::Customer.new( | 
| 80 | 
            +
                Tripletexer::Endpoints::Customer.new(api_client)
         | 
| 82 81 | 
             
              end
         | 
| 83 82 |  | 
| 84 83 | 
             
              def department
         | 
| 85 | 
            -
                Tripletexer::Endpoints::Department.new( | 
| 84 | 
            +
                Tripletexer::Endpoints::Department.new(api_client)
         | 
| 86 85 | 
             
              end
         | 
| 87 86 |  | 
| 88 87 | 
             
              def employee
         | 
| 89 | 
            -
                Tripletexer::Endpoints::Employee.new( | 
| 88 | 
            +
                Tripletexer::Endpoints::Employee.new(api_client)
         | 
| 90 89 | 
             
              end
         | 
| 91 90 |  | 
| 92 91 | 
             
              def inventory
         | 
| 93 | 
            -
                Tripletexer::Endpoints::Inventory.new( | 
| 92 | 
            +
                Tripletexer::Endpoints::Inventory.new(api_client)
         | 
| 94 93 | 
             
              end
         | 
| 95 94 |  | 
| 96 95 | 
             
              def invoice
         | 
| 97 | 
            -
                Tripletexer::Endpoints::Invoice.new( | 
| 96 | 
            +
                Tripletexer::Endpoints::Invoice.new(api_client)
         | 
| 98 97 | 
             
              end
         | 
| 99 98 |  | 
| 100 99 | 
             
              def ledger
         | 
| 101 | 
            -
                Tripletexer::Endpoints::Ledger.new( | 
| 100 | 
            +
                Tripletexer::Endpoints::Ledger.new(api_client)
         | 
| 102 101 | 
             
              end
         | 
| 103 102 |  | 
| 104 103 | 
             
              def order
         | 
| 105 | 
            -
                Tripletexer::Endpoints::Order.new( | 
| 104 | 
            +
                Tripletexer::Endpoints::Order.new(api_client)
         | 
| 106 105 | 
             
              end
         | 
| 107 106 |  | 
| 108 107 | 
             
              def product
         | 
| 109 | 
            -
                Tripletexer::Endpoints::Product.new( | 
| 108 | 
            +
                Tripletexer::Endpoints::Product.new(api_client)
         | 
| 110 109 | 
             
              end
         | 
| 111 110 |  | 
| 112 111 | 
             
              def project
         | 
| 113 | 
            -
                Tripletexer::Endpoints::Project.new( | 
| 112 | 
            +
                Tripletexer::Endpoints::Project.new(api_client)
         | 
| 114 113 | 
             
              end
         | 
| 115 114 |  | 
| 116 115 | 
             
              def supplier
         | 
| 117 | 
            -
                Tripletexer::Endpoints::Supplier.new( | 
| 116 | 
            +
                Tripletexer::Endpoints::Supplier.new(api_client)
         | 
| 118 117 | 
             
              end
         | 
| 119 118 |  | 
| 120 119 | 
             
              def timesheet
         | 
| 121 | 
            -
                Tripletexer::Endpoints::Timesheet.new( | 
| 120 | 
            +
                Tripletexer::Endpoints::Timesheet.new(api_client)
         | 
| 122 121 | 
             
              end
         | 
| 123 122 |  | 
| 124 123 | 
             
              def token
         | 
| 125 | 
            -
                Tripletexer::Endpoints::Token.new( | 
| 124 | 
            +
                Tripletexer::Endpoints::Token.new(api_client)
         | 
| 126 125 | 
             
              end
         | 
| 127 126 |  | 
| 128 127 | 
             
              private
         | 
| 129 128 |  | 
| 130 | 
            -
              attr_accessor : | 
| 131 | 
            -
             | 
| 132 | 
            -
              def connection
         | 
| 133 | 
            -
                @connection ||= Tripletexer::Connection.new(object_class: object_class, proxy: proxy)
         | 
| 134 | 
            -
              end
         | 
| 129 | 
            +
              attr_accessor :api_client
         | 
| 135 130 |  | 
| 136 131 | 
             
            end
         | 
| @@ -0,0 +1,95 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'uri'
         | 
| 4 | 
            +
            require 'json'
         | 
| 5 | 
            +
            require 'faraday'
         | 
| 6 | 
            +
            require 'faraday_middleware'
         | 
| 7 | 
            +
             | 
| 8 | 
            +
             | 
| 9 | 
            +
            class Tripletexer::APIClient
         | 
| 10 | 
            +
              ENDPOINT = 'https://tripletex.no/'
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              attr_reader :session_token, :debug
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              def initialize(object_class: Hash, proxy: nil, debug: false)
         | 
| 15 | 
            +
                @object_class = object_class
         | 
| 16 | 
            +
                @proxy = proxy
         | 
| 17 | 
            +
                @debug = debug
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              def connection
         | 
| 21 | 
            +
                return @connection if session_token && @connection
         | 
| 22 | 
            +
                @connection = init_connection
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
              def reset_connection
         | 
| 26 | 
            +
                @session_token = @connection = nil
         | 
| 27 | 
            +
              end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
              def session_token=(new_session_token)
         | 
| 30 | 
            +
                reset_connection
         | 
| 31 | 
            +
                @session_token = new_session_token
         | 
| 32 | 
            +
              end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
              def get(path, *args, &block)
         | 
| 35 | 
            +
                call(:get, path, *args, &block)
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
              def post(path, *args, &block)
         | 
| 39 | 
            +
                call(:post, path, *args, &block)
         | 
| 40 | 
            +
              end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
              def put(path, *args, &block)
         | 
| 43 | 
            +
                call(:put, path, *args, &block)
         | 
| 44 | 
            +
              end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
              def delete(path, *args, &block)
         | 
| 47 | 
            +
                call(:delete, path, *args, &block)
         | 
| 48 | 
            +
              end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
              private
         | 
| 51 | 
            +
             | 
| 52 | 
            +
              attr_reader :object_class, :proxy
         | 
| 53 | 
            +
             | 
| 54 | 
            +
              def init_connection
         | 
| 55 | 
            +
                Faraday.new(url: ENDPOINT) do |faraday|
         | 
| 56 | 
            +
                  faraday.response :logger if debug
         | 
| 57 | 
            +
                  faraday.response :json, parser_options: { object_class: object_class }, content_type: %r[/json$]
         | 
| 58 | 
            +
                  faraday.headers = {
         | 
| 59 | 
            +
                    'Content-Type' => 'application/json'
         | 
| 60 | 
            +
                  }
         | 
| 61 | 
            +
                  faraday.adapter :net_http
         | 
| 62 | 
            +
                  faraday.basic_auth(0, session_token) if session_token
         | 
| 63 | 
            +
                  faraday.proxy = proxy if proxy # https://github.com/lostisland/faraday/issues/733
         | 
| 64 | 
            +
                end
         | 
| 65 | 
            +
              end
         | 
| 66 | 
            +
             | 
| 67 | 
            +
              def call(method, path, *args, &block)
         | 
| 68 | 
            +
                normalized_path = URI.escape(path)
         | 
| 69 | 
            +
                response = connection.public_send(method, normalized_path, *args, &block)
         | 
| 70 | 
            +
                handle_response(response)
         | 
| 71 | 
            +
              end
         | 
| 72 | 
            +
             | 
| 73 | 
            +
              def handle_response(response)
         | 
| 74 | 
            +
                body = response.body
         | 
| 75 | 
            +
                case response.status
         | 
| 76 | 
            +
                when 200, 201, 204
         | 
| 77 | 
            +
                  body
         | 
| 78 | 
            +
                when 400, 422
         | 
| 79 | 
            +
                  raise ::Tripletexer::Errors::BadRequest, body
         | 
| 80 | 
            +
                when 401
         | 
| 81 | 
            +
                  raise ::Tripletexer::Errors::Unauthorized, body
         | 
| 82 | 
            +
                when 403
         | 
| 83 | 
            +
                  raise ::Tripletexer::Errors::Forbidden, body
         | 
| 84 | 
            +
                when 404
         | 
| 85 | 
            +
                  raise ::Tripletexer::Errors::NotFound, body
         | 
| 86 | 
            +
                when 409
         | 
| 87 | 
            +
                  raise ::Tripletexer::Errors::Conflict, body
         | 
| 88 | 
            +
                when 500
         | 
| 89 | 
            +
                  raise ::Tripletexer::Errors::InternalError, body
         | 
| 90 | 
            +
                else
         | 
| 91 | 
            +
                  raise NotImplementedError, "don't know how to handle #{response.status} http status code"
         | 
| 92 | 
            +
                end
         | 
| 93 | 
            +
              end
         | 
| 94 | 
            +
             | 
| 95 | 
            +
            end
         | 
| @@ -1,25 +1,21 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 | 
            -
            require 'json'
         | 
| 4 | 
            -
            require 'uri'
         | 
| 5 | 
            -
             | 
| 6 3 | 
             
            module Tripletexer::Endpoints
         | 
| 7 4 | 
             
              class AbstractEndpoint
         | 
| 8 | 
            -
                include ::Tripletexer::FormatHelpers
         | 
| 9 5 |  | 
| 10 | 
            -
                def initialize( | 
| 11 | 
            -
                  @ | 
| 6 | 
            +
                def initialize(api_client)
         | 
| 7 | 
            +
                  @api_client = api_client
         | 
| 12 8 | 
             
                end
         | 
| 13 9 |  | 
| 14 10 | 
             
                private
         | 
| 15 11 |  | 
| 16 | 
            -
                attr_reader : | 
| 12 | 
            +
                attr_reader :api_client
         | 
| 17 13 |  | 
| 18 14 | 
             
                def find_entities(path, params, &block)
         | 
| 19 15 | 
             
                  Enumerator.new do |enum_yielder|
         | 
| 20 16 | 
             
                    request_params = params.dup
         | 
| 21 17 | 
             
                    begin
         | 
| 22 | 
            -
                      result = get(path, request_params, &block)
         | 
| 18 | 
            +
                      result = api_client.get(path, request_params, &block)
         | 
| 23 19 |  | 
| 24 20 | 
             
                      result['values'].each do |value|
         | 
| 25 21 | 
             
                        enum_yielder.yield(value)
         | 
| @@ -31,74 +27,28 @@ module Tripletexer::Endpoints | |
| 31 27 | 
             
                end
         | 
| 32 28 |  | 
| 33 29 | 
             
                def find_entity(path, params = {})
         | 
| 34 | 
            -
                  get(path, params)['value']
         | 
| 30 | 
            +
                  api_client.get(path, params)['value']
         | 
| 35 31 | 
             
                end
         | 
| 36 32 |  | 
| 37 33 | 
             
                def create_entity(path, body, params = {})
         | 
| 38 | 
            -
                  post | 
| 39 | 
            -
                    req.body = normalize_body(body)
         | 
| 40 | 
            -
                  end['value']
         | 
| 34 | 
            +
                  send_data(:post, path, body, params)['value']
         | 
| 41 35 | 
             
                end
         | 
| 42 36 |  | 
| 43 37 | 
             
                def update_entity(path, body, params = {})
         | 
| 44 | 
            -
                  put | 
| 45 | 
            -
                    req.body = normalize_body(body)
         | 
| 46 | 
            -
                  end['value']
         | 
| 38 | 
            +
                  send_data(:put, path, body, params)['value']
         | 
| 47 39 | 
             
                end
         | 
| 48 40 |  | 
| 49 41 | 
             
                def create_entities(path, body, params = {})
         | 
| 50 | 
            -
                  post | 
| 51 | 
            -
                    req.body = normalize_body(body)
         | 
| 52 | 
            -
                  end['values']
         | 
| 42 | 
            +
                  send_data(:post, path, body, params)['values']
         | 
| 53 43 | 
             
                end
         | 
| 54 44 |  | 
| 55 45 | 
             
                def update_entities(path, body, params = {})
         | 
| 56 | 
            -
                  put | 
| 57 | 
            -
                    req.body = normalize_body(body)
         | 
| 58 | 
            -
                  end['values']
         | 
| 59 | 
            -
                end
         | 
| 60 | 
            -
             | 
| 61 | 
            -
                def get(path, *args, &block)
         | 
| 62 | 
            -
                  call(:get, path, *args, &block)
         | 
| 63 | 
            -
                end
         | 
| 64 | 
            -
             | 
| 65 | 
            -
                def post(path, *args, &block)
         | 
| 66 | 
            -
                  call(:post, path, *args, &block)
         | 
| 67 | 
            -
                end
         | 
| 68 | 
            -
             | 
| 69 | 
            -
                def put(path, *args, &block)
         | 
| 70 | 
            -
                  call(:put, path, *args, &block)
         | 
| 71 | 
            -
                end
         | 
| 72 | 
            -
             | 
| 73 | 
            -
                def delete(path, *args, &block)
         | 
| 74 | 
            -
                  call(:delete, path, *args, &block)
         | 
| 75 | 
            -
                end
         | 
| 76 | 
            -
             | 
| 77 | 
            -
                def call(method, path, *args, &block)
         | 
| 78 | 
            -
                  normalized_path = URI.escape(path)
         | 
| 79 | 
            -
                  response = connection.connection.public_send(method, normalized_path, *args, &block)
         | 
| 80 | 
            -
                  handle_response(response)
         | 
| 46 | 
            +
                  send_data(:put, path, body, params)['values']
         | 
| 81 47 | 
             
                end
         | 
| 82 48 |  | 
| 83 | 
            -
                def  | 
| 84 | 
            -
                   | 
| 85 | 
            -
             | 
| 86 | 
            -
                  when 200, 201, 204
         | 
| 87 | 
            -
                    body
         | 
| 88 | 
            -
                  when 400, 422
         | 
| 89 | 
            -
                    raise ::Tripletexer::Errors::BadRequest, body
         | 
| 90 | 
            -
                  when 401
         | 
| 91 | 
            -
                    raise ::Tripletexer::Errors::Unauthorized, body
         | 
| 92 | 
            -
                  when 403
         | 
| 93 | 
            -
                    raise ::Tripletexer::Errors::Forbidden, body
         | 
| 94 | 
            -
                  when 404
         | 
| 95 | 
            -
                    raise ::Tripletexer::Errors::NotFound, body
         | 
| 96 | 
            -
                  when 409
         | 
| 97 | 
            -
                    raise ::Tripletexer::Errors::Conflict, body
         | 
| 98 | 
            -
                  when 500
         | 
| 99 | 
            -
                    raise ::Tripletexer::Errors::InternalError, body
         | 
| 100 | 
            -
                  else
         | 
| 101 | 
            -
                    raise NotImplementedError, "don't know how to handle #{response.status} http status code"
         | 
| 49 | 
            +
                def send_data(method, path, body, params)
         | 
| 50 | 
            +
                  api_client.public_send(method, path, params) do |req|
         | 
| 51 | 
            +
                    req.body = ::Tripletexer::FormatHelpers.normalize_body(body)
         | 
| 102 52 | 
             
                  end
         | 
| 103 53 | 
             
                end
         | 
| 104 54 |  | 
| @@ -6,8 +6,8 @@ module Tripletexer::Endpoints | |
| 6 6 | 
             
                # https://tripletex.no/v2-docs/#!/invoice/search
         | 
| 7 7 | 
             
                def search(date_from, date_to, params = {})
         | 
| 8 8 | 
             
                  final_params = params.merge(
         | 
| 9 | 
            -
                    'invoiceDateFrom' => format_date(date_from),
         | 
| 10 | 
            -
                    'invoiceDateTo' => format_date(date_to)
         | 
| 9 | 
            +
                    'invoiceDateFrom' => ::Tripletexer::FormatHelpers.format_date(date_from),
         | 
| 10 | 
            +
                    'invoiceDateTo' => ::Tripletexer::FormatHelpers.format_date(date_to)
         | 
| 11 11 | 
             
                  )
         | 
| 12 12 | 
             
                  find_entities('/v2/invoice', final_params)
         | 
| 13 13 | 
             
                end
         | 
| @@ -34,11 +34,11 @@ module Tripletexer::Endpoints | |
| 34 34 | 
             
                    'paymentTypeId' => payment_type_id,
         | 
| 35 35 | 
             
                    'paidAmount' => paid_amount
         | 
| 36 36 | 
             
                  }
         | 
| 37 | 
            -
                  put("/v2/invoice/#{id}/:payment", final_params)
         | 
| 37 | 
            +
                  api_client.put("/v2/invoice/#{id}/:payment", final_params)
         | 
| 38 38 | 
             
                end
         | 
| 39 39 |  | 
| 40 40 | 
             
                def payment_type
         | 
| 41 | 
            -
                  Tripletexer::Endpoints::Invoice::PaymentType.new( | 
| 41 | 
            +
                  Tripletexer::Endpoints::Invoice::PaymentType.new(api_client)
         | 
| 42 42 | 
             
                end
         | 
| 43 43 | 
             
              end
         | 
| 44 44 | 
             
            end
         | 
| @@ -7,43 +7,43 @@ module Tripletexer::Endpoints | |
| 7 7 | 
             
                # https://tripletex.no/v2-docs/#!/ledger/search
         | 
| 8 8 | 
             
                def search(date_from, date_to, params = {})
         | 
| 9 9 | 
             
                  final_params = params.merge(
         | 
| 10 | 
            -
                    'dateFrom' => format_date(date_from),
         | 
| 11 | 
            -
                    'dateTo' => format_date(date_to)
         | 
| 10 | 
            +
                    'dateFrom' => ::Tripletexer::FormatHelpers.format_date(date_from),
         | 
| 11 | 
            +
                    'dateTo' => ::Tripletexer::FormatHelpers.format_date(date_to)
         | 
| 12 12 | 
             
                  )
         | 
| 13 13 | 
             
                  final_params['fields'] = DEFAULT_FIELDS unless final_params.key?('fields')
         | 
| 14 14 | 
             
                  find_entities('/v2/ledger', final_params)
         | 
| 15 15 | 
             
                end
         | 
| 16 16 |  | 
| 17 17 | 
             
                def account
         | 
| 18 | 
            -
                  Tripletexer::Endpoints::Ledger::Account.new( | 
| 18 | 
            +
                  Tripletexer::Endpoints::Ledger::Account.new(api_client)
         | 
| 19 19 | 
             
                end
         | 
| 20 20 |  | 
| 21 21 | 
             
                def accounting_period
         | 
| 22 | 
            -
                  Tripletexer::Endpoints::Ledger::AccountingPeriod.new( | 
| 22 | 
            +
                  Tripletexer::Endpoints::Ledger::AccountingPeriod.new(api_client)
         | 
| 23 23 | 
             
                end
         | 
| 24 24 |  | 
| 25 25 | 
             
                def annual_account
         | 
| 26 | 
            -
                  Tripletexer::Endpoints::Ledger::AnnualAccount.new( | 
| 26 | 
            +
                  Tripletexer::Endpoints::Ledger::AnnualAccount.new(api_client)
         | 
| 27 27 | 
             
                end
         | 
| 28 28 |  | 
| 29 29 | 
             
                def close_group
         | 
| 30 | 
            -
                  Tripletexer::Endpoints::Ledger::CloseGroup.new( | 
| 30 | 
            +
                  Tripletexer::Endpoints::Ledger::CloseGroup.new(api_client)
         | 
| 31 31 | 
             
                end
         | 
| 32 32 |  | 
| 33 33 | 
             
                def posting
         | 
| 34 | 
            -
                  Tripletexer::Endpoints::Ledger::Posting.new( | 
| 34 | 
            +
                  Tripletexer::Endpoints::Ledger::Posting.new(api_client)
         | 
| 35 35 | 
             
                end
         | 
| 36 36 |  | 
| 37 37 | 
             
                def vat_type
         | 
| 38 | 
            -
                  Tripletexer::Endpoints::Ledger::VatType.new( | 
| 38 | 
            +
                  Tripletexer::Endpoints::Ledger::VatType.new(api_client)
         | 
| 39 39 | 
             
                end
         | 
| 40 40 |  | 
| 41 41 | 
             
                def voucher
         | 
| 42 | 
            -
                  Tripletexer::Endpoints::Ledger::Voucher.new( | 
| 42 | 
            +
                  Tripletexer::Endpoints::Ledger::Voucher.new(api_client)
         | 
| 43 43 | 
             
                end
         | 
| 44 44 |  | 
| 45 45 | 
             
                def type
         | 
| 46 | 
            -
                  Tripletexer::Endpoints::Ledger::Type.new( | 
| 46 | 
            +
                  Tripletexer::Endpoints::Ledger::Type.new(api_client)
         | 
| 47 47 | 
             
                end
         | 
| 48 48 | 
             
              end
         | 
| 49 49 | 
             
            end
         |