Skip to content

Aratra #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 27 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions lib/freee/api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@
require 'freee/token/client'
require 'freee/walletables/client'
require 'freee/wallet_txns/client'
require 'freee/tags/client'
18 changes: 18 additions & 0 deletions lib/freee/deals/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,24 @@ def initialize
# @param access_token [String] アクセストークン
# @param params [Hash] 新規取引作成用のパラメータ
# @return [Hash] 取引作成の結果

def get_deals(access_token, params)
raise 'アクセストークンが設定されていません' if access_token.empty?
raise '事業所IDが設定されていません' unless params.key?(:company_id)
@client.authorization :Bearer, access_token
response = @client.get do |req|
req.url PATH
req.params = params
end
case response.status
when 400
raise StandardError, response.body
when 401
raise 'Unauthorized'
end
response
end

def create_deal(access_token, params)
raise 'アクセストークンが設定されていません' if access_token.empty?
raise '収入・支出の発生日が指定されていません' unless params.key?(:issue_date)
Expand Down
56 changes: 56 additions & 0 deletions lib/freee/tags/client.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# frozen_string_literal: true

module Freee
module Api
class Tags
PATH = '/api/1/segments/1/tags'
PATH.freeze

def initialize
@client = Faraday.new(url: Parameter::SITE) do |faraday|
faraday.request :json
faraday.response :json, content_type: /\bjson$/
faraday.adapter Faraday.default_adapter
end
end

# タグ一覧の取得
def get_tags(access_token, params)
raise 'アクセストークンが設定されていません' if access_token.empty?
raise '事業所IDが設定されていません' unless params.key?(:company_id)
@client.authorization :Bearer, access_token
response = @client.get do |req|
req.url PATH
req.params = params
end
case response.status
when 400
raise StandardError, response.body
when 401
raise 'Unauthorized'
end
response
end

# タグの作成
def create_tag(access_token, params)
raise 'アクセストークンが設定されていません' if access_token.empty?
raise '事業所IDが設定されていません' unless params.key?(:company_id)
@client.authorization :Bearer, access_token
response = @client.post do |req|
req.url PATH
req.body = params
end
case response.status
when 400
raise StandardError, response.body
when 401
raise 'Unauthorized'
end
response
end


end
end
end
19 changes: 10 additions & 9 deletions lib/freee/token/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -63,17 +63,18 @@ def get_access_token(code, redirect_uri)
# @param refresh_token [String] Refresh Token
# @param expires_at [Integer] アクセストークンの有効期限(UNIX TIME)
# @return [Hash] アクセストークン
def refresh_token(access_token, refresh_token, expires_at)
raise 'アクセストークンが存在しません' if access_token.empty?
raise 'アクセストークンの有効期限が指定されていません' if expires_at.nil?
def refresh_token(refresh_token)
#raise 'アクセストークンが存在しません' if access_token.empty?
#raise 'アクセストークンの有効期限が指定されていません' if expires_at.nil?
raise 'リフレッシュトークンが存在しません' if refresh_token.empty?
params = {
refresh_token: refresh_token,
expires_at: expires_at
}
@access_token = OAuth2::AccessToken.new(@client, access_token, params)
#params = {
#refresh_token: refresh_token,
#expires_at: expires_at
#}
token = OAuth2::AccessToken.from_hash(@client, refresh_token: refresh_token)
new_token = token.refresh!
begin
@access_token.refresh! if @access_token.expired?
return new_token
rescue OAuth2::Error
raise 'アクセストークンの取得に失敗しました。次の原因が考えられます。原因: 不明なクライアント、アクセストークンが不正、リフレッシュトークンが不正、有効期限が不正。'
end
Expand Down