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 +4 -4
- data/.rubocop.yml +3 -0
- data/Gemfile.lock +1 -1
- data/lib/freee/account_items/client.rb +42 -0
- data/lib/freee/api.rb +6 -1
- data/lib/freee/api/version.rb +1 -1
- data/lib/freee/deals/client.rb +43 -0
- data/lib/freee/parameter.rb +9 -0
- data/lib/freee/partners/client.rb +47 -10
- data/lib/freee/sections/client.rb +40 -0
- data/lib/freee/taxes/client.rb +40 -0
- data/lib/freee/token/client.rb +1 -5
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca73512f05c4326a0e39be625970ad527b8a0d65
|
4
|
+
data.tar.gz: ed8f3c0adc422bbd27091825bf7d409590aa9326
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78839a206a06b191fd63dc925a0fb9585cdd90deb2d6ae78404af8a5cbc8e41570f94425195bc80b0a406a4c006e941df3efbfc10c67db68bbda706a8d17a753
|
7
|
+
data.tar.gz: 19869e674e999d4abef76552b58f3e97094e21b42b73c30d3b578b3bc8e43ddfae0e0cff4001913819d82f47b6e0642047d45efd6e90417910c1dfd5b0b5e363
|
data/.rubocop.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -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
|
data/lib/freee/api.rb
CHANGED
@@ -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/
|
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'
|
data/lib/freee/api/version.rb
CHANGED
@@ -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
|
@@ -3,36 +3,73 @@
|
|
3
3
|
module Freee
|
4
4
|
module Api
|
5
5
|
class Partners
|
6
|
-
#
|
7
|
-
|
8
|
-
|
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
|
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'
|
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
|
data/lib/freee/token/client.rb
CHANGED
@@ -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.
|
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-
|
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:
|