freee-api 0.0.3 → 0.0.4

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: 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: