productive 0.3.4 → 0.4.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
  SHA1:
3
- metadata.gz: 768f7ef8ee39d877dfdaadb41ea45f84e5e638f5
4
- data.tar.gz: ddbdb36e54bdef5561c9eb1b8e816a64c4bf1fad
3
+ metadata.gz: 01c529d1bbf883940638129e43c18f29c5c5ebd2
4
+ data.tar.gz: 00f4d9c2358aa70d1663521ad1d716396c5eb0fa
5
5
  SHA512:
6
- metadata.gz: 9fad1037a1d913b23c8fbc9635b4c734ee1635e2d58bf6064110a189367ff92fa6f56e036a2caeca066a632832fe85c404d4234c13d07f45e6d6f1b7e63e3161
7
- data.tar.gz: a4f3251f83c768f5e52e8f465da6caa555d15d53c1dd855d3b9b9321e8c96066cc86493e6be2cc0fb3cec3c54438ae5626eea4eb63b29e34a5ebcc5c44476a3c
6
+ metadata.gz: f461a58354f7736681341e7801c05e66153cbb59e60b8e72681f29f9224f0b99a3de3608f28acc561be246190eec41761f1e08b4febfc1d56b34395158082584
7
+ data.tar.gz: 72405c9c61fe96e56cd707be201d266e390bc081309573ab7c9abc71dd5c2ebe198b509ed1ecd6502cc6f2227484fc566185206127919e5e1ef8eca8f7997821
data/README.md CHANGED
@@ -22,14 +22,12 @@ rails generate productive API_KEY ACCOUNT_ID
22
22
  ```
23
23
  which will generate ```config/initializers/productive.rb``` initializer, setting up your `API_KEY` and `ACCOUNT ID`.
24
24
 
25
- If you're using the gem in a standalone project, you need to configure the `API_KEY` and `ACCOUNT_ID` and setup the `Productive::Base` resource class:
25
+ If you're using the gem in a standalone project, you need to configure the `API_KEY` and `ACCOUNT_ID`:
26
26
  ```ruby
27
27
  Productive.configure do |config|
28
28
  config.api_key = ENV.fetch('productive_api_key')
29
29
  config.account_id = ACCOUNT_ID
30
30
  end
31
-
32
- Productive::Base.setup(Productive.configuration)
33
31
  ```
34
32
 
35
33
  ## Usage
@@ -3,18 +3,24 @@ require 'json_api_client'
3
3
  require 'productive/version'
4
4
  require 'productive/configuration'
5
5
  require 'productive/resources/base'
6
+ require 'productive/resources/base_account'
6
7
  require 'productive/resources/attachment'
7
- require 'productive/resources/client'
8
+ require 'productive/resources/comment'
8
9
  require 'productive/resources/company'
10
+ require 'productive/resources/contact_entry'
9
11
  require 'productive/resources/contract'
10
12
  require 'productive/resources/deal'
11
13
  require 'productive/resources/deal_status'
12
14
  require 'productive/resources/invoice'
15
+ require 'productive/resources/organization'
16
+ require 'productive/resources/organization_membership'
13
17
  require 'productive/resources/person'
18
+ require 'productive/resources/profitability_report'
14
19
  require 'productive/resources/project'
15
20
  require 'productive/resources/service'
16
21
  require 'productive/resources/service_type'
17
22
  require 'productive/resources/time_entry'
23
+ require 'productive/resources/user'
18
24
 
19
25
  require 'productive/railtie' if defined?(Rails::Railtie)
20
26
 
@@ -22,6 +28,9 @@ module Productive
22
28
  class << self
23
29
  def configure
24
30
  yield configuration
31
+
32
+ Productive::Base.setup(@configuration)
33
+ Productive::BaseAccount.setup(@configuration)
25
34
  end
26
35
 
27
36
  def configuration
@@ -1,4 +1,4 @@
1
1
  module Productive
2
- class Attachment < Base
2
+ class Attachment < BaseAccount
3
3
  end
4
4
  end
@@ -1,8 +1,20 @@
1
1
  module Productive
2
2
  class Base < JsonApiClient::Resource
3
3
  def self.setup(config)
4
- self.site = File.join config.base_url, config.account_id.to_s, '/'
5
- self.connection_options = {headers: {'X-Auth-Token' => config.api_key}}
4
+ site_setup config
5
+ connection_options_setup config
6
+ paginator_setup config
7
+ end
8
+
9
+ def self.site_setup(config)
10
+ self.site = File.join config.base_url, '/'
11
+ end
12
+
13
+ def self.connection_options_setup(config)
14
+ self.connection_options = { headers: { 'X-Auth-Token' => config.api_key } }
15
+ end
16
+
17
+ def self.paginator_setup(config)
6
18
  self.paginator = config.paginator
7
19
  end
8
20
  end
@@ -0,0 +1,7 @@
1
+ module Productive
2
+ class BaseAccount < Base
3
+ def self.site_setup(config)
4
+ self.site = File.join config.base_url, config.account_id.to_s, '/'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,4 @@
1
+ module Productive
2
+ class Comment < BaseAccount
3
+ end
4
+ end
@@ -1,4 +1,4 @@
1
1
  module Productive
2
- class Company < Base
2
+ class Company < BaseAccount
3
3
  end
4
4
  end
@@ -0,0 +1,4 @@
1
+ module Productive
2
+ class ContactEntry < BaseAccount
3
+ end
4
+ end
@@ -1,5 +1,5 @@
1
1
  module Productive
2
- class Contract < Base
2
+ class Contract < BaseAccount
3
3
  has_one :template, class_name: :deal
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  module Productive
2
- class Deal < Base
2
+ class Deal < BaseAccount
3
3
  has_one :deal_status
4
4
  end
5
5
  end
@@ -1,4 +1,4 @@
1
1
  module Productive
2
- class DealStatus < Base
2
+ class DealStatus < BaseAccount
3
3
  end
4
4
  end
@@ -1,5 +1,5 @@
1
1
  module Productive
2
- class Invoice < Base
2
+ class Invoice < BaseAccount
3
3
  has_one :deal
4
4
  has_one :attachment
5
5
  has_one :company
@@ -1,4 +1,4 @@
1
1
  module Productive
2
- class Client < Base
2
+ class Organization < Base
3
3
  end
4
4
  end
@@ -0,0 +1,4 @@
1
+ module Productive
2
+ class OrganizationMembership < Base
3
+ end
4
+ end
@@ -1,4 +1,4 @@
1
1
  module Productive
2
- class Person < Base
2
+ class Person < BaseAccount
3
3
  end
4
4
  end
@@ -0,0 +1,8 @@
1
+ module Productive
2
+ class ProfitabilityReport < BaseAccount
3
+ has_one :deal
4
+ has_one :company
5
+ has_one :project
6
+ has_one :manager, class_name: :person
7
+ end
8
+ end
@@ -1,6 +1,6 @@
1
1
  module Productive
2
- class Project < Base
3
- has_one :client
2
+ class Project < BaseAccount
3
+ has_one :company
4
4
  has_one :project_manager, class_name: :person
5
5
  has_one :last_actor, class_name: :person
6
6
  end
@@ -1,5 +1,5 @@
1
1
  module Productive
2
- class Service < Base
2
+ class Service < BaseAccount
3
3
  has_one :service_type
4
4
  end
5
5
  end
@@ -1,4 +1,4 @@
1
1
  module Productive
2
- class ServiceType < Base
2
+ class ServiceType < BaseAccount
3
3
  end
4
4
  end
@@ -1,5 +1,5 @@
1
1
  module Productive
2
- class TimeEntry < Base
2
+ class TimeEntry < BaseAccount
3
3
  has_one :service
4
4
  end
5
5
  end
@@ -0,0 +1,6 @@
1
+ module Productive
2
+ class User < Base
3
+ has_one :default_organization, class_name: :organization
4
+ has_one :default_organization_membership, class_name: :organization_membership
5
+ end
6
+ end
@@ -1,3 +1,3 @@
1
1
  module Productive
2
- VERSION = '0.3.4'
2
+ VERSION = '0.4.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: productive
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josip Bišćan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-31 00:00:00.000000000 Z
11
+ date: 2016-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -56,17 +56,23 @@ files:
56
56
  - lib/productive/railtie.rb
57
57
  - lib/productive/resources/attachment.rb
58
58
  - lib/productive/resources/base.rb
59
- - lib/productive/resources/client.rb
59
+ - lib/productive/resources/base_account.rb
60
+ - lib/productive/resources/comment.rb
60
61
  - lib/productive/resources/company.rb
62
+ - lib/productive/resources/contact_entry.rb
61
63
  - lib/productive/resources/contract.rb
62
64
  - lib/productive/resources/deal.rb
63
65
  - lib/productive/resources/deal_status.rb
64
66
  - lib/productive/resources/invoice.rb
67
+ - lib/productive/resources/organization.rb
68
+ - lib/productive/resources/organization_membership.rb
65
69
  - lib/productive/resources/person.rb
70
+ - lib/productive/resources/profitability_report.rb
66
71
  - lib/productive/resources/project.rb
67
72
  - lib/productive/resources/service.rb
68
73
  - lib/productive/resources/service_type.rb
69
74
  - lib/productive/resources/time_entry.rb
75
+ - lib/productive/resources/user.rb
70
76
  - lib/productive/version.rb
71
77
  - productive.gemspec
72
78
  homepage: https://github.com/infinum/productive_api_client