freee-api 0.0.3 → 0.0.4

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
2
  SHA1:
3
- metadata.gz: 3ac6dad00c2bdbed672ed5a8f4e6fa8535072d25
4
- data.tar.gz: 00010024ac61044692801d3d25c1e4a2c9c8b18d
3
+ metadata.gz: ca73512f05c4326a0e39be625970ad527b8a0d65
4
+ data.tar.gz: ed8f3c0adc422bbd27091825bf7d409590aa9326
5
5
  SHA512:
6
- metadata.gz: 963fc0b7ff8de81548e1cc4264c56efc189e731e983974a43300080073a0c7df14d16d06047289020aa03dc1f0a46ce61c80e589f0d321bb176f9711204cb007
7
- data.tar.gz: 769e089ea72d5b0e10da3a332c25224b71b430d3988a0fc43ddd8258871ce74d56872e5f7e0eb2f0c94e8711fd191e71534959d467ba2256055dfafe7692d380
6
+ metadata.gz: 78839a206a06b191fd63dc925a0fb9585cdd90deb2d6ae78404af8a5cbc8e41570f94425195bc80b0a406a4c006e941df3efbfc10c67db68bbda706a8d17a753
7
+ data.tar.gz: 19869e674e999d4abef76552b58f3e97094e21b42b73c30d3b578b3bc8e43ddfae0e0cff4001913819d82f47b6e0642047d45efd6e90417910c1dfd5b0b5e363
@@ -9,6 +9,9 @@ AllCops:
9
9
  Bundler/OrderedGems:
10
10
  Enabled: false
11
11
 
12
+ CyclomaticComplexity:
13
+ Max: 7
14
+
12
15
  Gemspec/OrderedDependencies:
13
16
  Enabled: false
14
17
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- freee-api (0.0.3)
4
+ freee-api (0.0.4)
5
5
  faraday (~> 0.12.2)
6
6
  faraday_middleware (~> 0.12.2)
7
7
  oauth2 (~> 1.4.0)
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Freee
4
+ module Api
5
+ class AccountItems
6
+ # 勘定項目取得用PATH
7
+ PATH = '/api/1/account_items'
8
+ PATH.freeze
9
+
10
+ # A new instance of HTTP Client.
11
+ def initialize
12
+ @client = Faraday.new(url: Parameter::SITE) do |faraday|
13
+ faraday.request :json
14
+ faraday.response :json, content_type: /\bjson$/
15
+ faraday.adapter Faraday.default_adapter
16
+ end
17
+ end
18
+
19
+ # 勘定項目の取得
20
+ # https://developer.freee.co.jp/docs/accounting/reference#/Account_items/get_api_1_account_items
21
+ # @param access_token [String] アクセストークン
22
+ # @param params [Hash] 取得用のパラメータ
23
+ # @return [Hash] 勘定項目取得の結果
24
+ def get_account_items(access_token, params)
25
+ raise 'アクセストークンが設定されていません' if access_token.empty?
26
+ raise '事業所IDが設定されていません' unless params.key?(:company_id)
27
+ @client.authorization :Bearer, access_token
28
+ response = @client.get do |req|
29
+ req.url PATH
30
+ req.body = params.to_json
31
+ end
32
+ case response.status
33
+ when 400
34
+ raise StandardError, response.body
35
+ when 401
36
+ raise 'Unauthorized'
37
+ end
38
+ response
39
+ end
40
+ end
41
+ end
42
+ end
@@ -4,6 +4,11 @@ require 'oauth2'
4
4
  require 'faraday'
5
5
  require 'faraday_middleware'
6
6
 
7
+ require 'freee/parameter'
7
8
  require 'freee/api/version'
8
- require 'freee/token/client'
9
+ require 'freee/account_items/client'
10
+ require 'freee/deals/client'
9
11
  require 'freee/partners/client'
12
+ require 'freee/sections/client'
13
+ require 'freee/taxes/client'
14
+ require 'freee/token/client'
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Freee
4
4
  module Api
5
- VERSION = '0.0.3'
5
+ VERSION = '0.0.4'
6
6
  end
7
7
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Freee
4
+ module Api
5
+ class Deals
6
+ # 取引作成用PATH
7
+ PATH = '/api/1/deals'
8
+ PATH.freeze
9
+
10
+ # A new instance of HTTP Client.
11
+ def initialize
12
+ @client = Faraday.new(url: Parameter::SITE) do |faraday|
13
+ faraday.request :json
14
+ faraday.response :json, content_type: /\bjson$/
15
+ faraday.adapter Faraday.default_adapter
16
+ end
17
+ end
18
+
19
+ # 取引の作成
20
+ # https://developer.freee.co.jp/docs/accounting/reference#/Deals/post_api_1_deals
21
+ # @param access_token [String] アクセストークン
22
+ # @param params [Hash] 新規取引作成用のパラメータ
23
+ # @return [Hash] 取引作成の結果
24
+ def create_deal(access_token, params)
25
+ raise 'アクセストークンが設定されていません' if access_token.empty?
26
+ raise '収入・支出の発生日が指定されていません' unless params.key?(:issue_date)
27
+ raise '収支区分が指定されていません' unless params.key?(:type)
28
+ raise '事業所IDが設定されていません' unless params.key?(:company_id)
29
+ @client.authorization :Bearer, access_token
30
+ response = @client.post do |req|
31
+ req.url PATH
32
+ req.body = params.to_json
33
+ end
34
+ case response.status
35
+ when 400
36
+ raise StandardError, response.body
37
+ when 401
38
+ raise 'Unauthorized'
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Freee
4
+ module Parameter
5
+ # Freee API URL
6
+ SITE = 'https://api.freee.co.jp'
7
+ SITE.freeze
8
+ end
9
+ end
@@ -3,36 +3,73 @@
3
3
  module Freee
4
4
  module Api
5
5
  class Partners
6
- # Freee API URL
7
- SITE = 'https://api.freee.co.jp'
8
- SITE.freeze
9
- # 取引先作成URL(POST)
10
- POST = '/api/1/partners'
11
- POST.freeze
6
+ # 取引先作成・取得・更新用PATH
7
+ PATH = '/api/1/partners'
8
+ PATH.freeze
12
9
 
13
10
  # A new instance of HTTP Client.
14
11
  def initialize
15
- @client = Faraday.new(url: SITE) do |faraday|
12
+ @client = Faraday.new(url: Parameter::SITE) do |faraday|
16
13
  faraday.request :json
17
14
  faraday.response :json, content_type: /\bjson$/
18
15
  faraday.adapter Faraday.default_adapter
19
16
  end
20
17
  end
21
18
 
19
+ # 取引先の取得
20
+ # @param access_token [String] アクセストークン
21
+ # @param params [Hash] 新規作成用の取引先パラメータ
22
+ # @return [Hash] GETレスポンスの結果
23
+ def get_partners(access_token, params)
24
+ raise 'アクセストークンが設定されていません' if access_token.empty?
25
+ raise '事業所IDが設定されていません' unless params.key?(:company_id)
26
+ @client.authorization :Bearer, access_token
27
+ response = @client.get do |req|
28
+ req.url PATH
29
+ req.body = params.to_json
30
+ end
31
+ case response.status
32
+ when 401
33
+ raise 'Unauthorized'
34
+ end
35
+ response
36
+ end
37
+
22
38
  # 取引先の作成
23
39
  # https://developer.freee.co.jp/docs/accounting/reference#operations-Partners-post_api_1_partners
24
40
  # @param access_token [String] アクセストークン
25
41
  # @param params [Hash] 新規作成用の取引先パラメータ
26
- # @return [Hash] 取引先の結果
42
+ # @return [Hash] POSTレスポンスの結果
27
43
  def create_partner(access_token, params)
28
44
  @client.authorization :Bearer, access_token
29
45
  response = @client.post do |req|
30
- req.url POST
46
+ req.url PATH
47
+ req.body = params.to_json
48
+ end
49
+ case response.status
50
+ when 401
51
+ raise 'Unauthorized'
52
+ end
53
+ end
54
+
55
+ # 取引先の更新
56
+ # https://developer.freee.co.jp/docs/accounting/reference#/Partners/put_api_1_partners_id
57
+ # @param access_token [String] アクセストークン
58
+ # @param params [Hash] 更新用の取引先パラメータ
59
+ # @return [Hash] PUTレスポンスの結果
60
+ def update_partner(access_token, params)
61
+ raise 'アクセストークンが設定されていません' if access_token.empty?
62
+ raise '事業所IDが設定されていません' unless params.key?(:company_id)
63
+ raise '取引先IDが設定されていません' unless params.key?(:id)
64
+ raise '取引先名が設定されていません' unless params.key?(:name)
65
+ @client.authorization :Bearer, access_token
66
+ response = @client.put do |req|
67
+ req.url PATH + '/' + params[:id].to_s
31
68
  req.body = params.to_json
32
69
  end
33
70
  case response.status
34
71
  when 401
35
- raise 'Unauthorized', response.body
72
+ raise 'Unauthorized'
36
73
  end
37
74
  end
38
75
  end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Freee
4
+ module Api
5
+ class Sections
6
+ # 部門取得用PATH
7
+ PATH = '/api/1/sections'
8
+ PATH.freeze
9
+
10
+ # A new instance of HTTP Client.
11
+ def initialize
12
+ @client = Faraday.new(url: Parameter::SITE) do |faraday|
13
+ faraday.request :json
14
+ faraday.response :json, content_type: /\bjson$/
15
+ faraday.adapter Faraday.default_adapter
16
+ end
17
+ end
18
+
19
+ # 部門一覧の取得
20
+ # https://developer.freee.co.jp/docs/accounting/reference#/Sections/get_api_1_sections
21
+ # @param access_token [String] アクセストークン
22
+ # @param params [Hash] 新規作成用の取引先パラメータ
23
+ # @return [Hash] GETレスポンスの結果
24
+ def get_sections(access_token, params)
25
+ raise 'アクセストークンが設定されていません' if access_token.empty?
26
+ raise '事業所IDが設定されていません' unless params.key?(:company_id)
27
+ @client.authorization :Bearer, access_token
28
+ response = @client.get do |req|
29
+ req.url PATH
30
+ req.body = params.to_json
31
+ end
32
+ case response.status
33
+ when 401
34
+ raise 'Unauthorized'
35
+ end
36
+ response
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Freee
4
+ module Api
5
+ class Taxes
6
+ # 税区分取得用PATH
7
+ PATH = '/api/1/taxes/codes'
8
+ PATH.freeze
9
+
10
+ # A new instance of HTTP Client.
11
+ def initialize
12
+ @client = Faraday.new(url: Parameter::SITE) do |faraday|
13
+ faraday.request :json
14
+ faraday.response :json, content_type: /\bjson$/
15
+ faraday.adapter Faraday.default_adapter
16
+ end
17
+ end
18
+
19
+ # 部門一覧の取得
20
+ # https://developer.freee.co.jp/docs/accounting/reference#/Taxes/get_api_1_taxes_codes
21
+ # @param access_token [String] アクセストークン
22
+ # @param params [Hash] 新規作成用の取引先パラメータ
23
+ # @return [Hash] GETレスポンスの結果
24
+ def get_tax_codes(access_token, params)
25
+ raise 'アクセストークンが設定されていません' if access_token.empty?
26
+ raise '事業所IDが設定されていません' unless params.key?(:company_id)
27
+ @client.authorization :Bearer, access_token
28
+ response = @client.get do |req|
29
+ req.url PATH
30
+ req.body = params.to_json
31
+ end
32
+ case response.status
33
+ when 401
34
+ raise 'Unauthorized'
35
+ end
36
+ response
37
+ end
38
+ end
39
+ end
40
+ end
@@ -5,9 +5,6 @@ module Freee
5
5
  class Token
6
6
  # oauth-xx client(read only)
7
7
  attr_reader :client
8
- # Freee API URL
9
- SITE = 'https://api.freee.co.jp'
10
- SITE.freeze
11
8
  # Freee 開発環境用認証コードURL
12
9
  DEVELOPMENT_REDIRECT_URL = 'urn:ietf:wg:oauth:2.0:oob'
13
10
  DEVELOPMENT_REDIRECT_URL.freeze
@@ -23,13 +20,12 @@ module Freee
23
20
  # @param secret [String] Secret
24
21
  def initialize(app_id, secret)
25
22
  options = {
26
- site: SITE,
23
+ site: Parameter::SITE,
27
24
  authorize_url: AUTHORIZE_URL,
28
25
  token_url: TOKEN_URL
29
26
  }
30
27
 
31
28
  raise 'アプリケーションIDが入力されていません' if app_id.empty?
32
-
33
29
  raise 'Secretが入力されていません' if secret.empty?
34
30
  @client = OAuth2::Client.new(app_id, secret, options)
35
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: freee-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - himrock922
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-28 00:00:00.000000000 Z
11
+ date: 2018-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -157,9 +157,14 @@ files:
157
157
  - bin/console
158
158
  - bin/setup
159
159
  - freee-api.gemspec
160
+ - lib/freee/account_items/client.rb
160
161
  - lib/freee/api.rb
161
162
  - lib/freee/api/version.rb
163
+ - lib/freee/deals/client.rb
164
+ - lib/freee/parameter.rb
162
165
  - lib/freee/partners/client.rb
166
+ - lib/freee/sections/client.rb
167
+ - lib/freee/taxes/client.rb
163
168
  - lib/freee/token/client.rb
164
169
  homepage: https://github.com/himrock922/freee-api.git
165
170
  licenses: