Class: Freee::Api::Partners

Inherits:
Object
  • Object
show all
Defined in:
lib/freee/partners/client.rb

Constant Summary collapse

PATH =

取引先作成・取得・更新用PATH

'/api/1/partners'

Instance Method Summary collapse

Constructor Details

#initializePartners

A new instance of HTTP Client.


11
12
13
14
15
16
17
# File 'lib/freee/partners/client.rb', line 11

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

Instance Method Details

#create_partner(access_token, params) ⇒ Hash

Parameters:

  • access_token (String)

    アクセストークン

  • params (Hash)

    新規作成用の取引先パラメータ

Returns:

  • (Hash)

    POSTレスポンスの結果


43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/freee/partners/client.rb', line 43

def create_partner(access_token, params)
  @client.authorization :Bearer, access_token
  response = @client.post do |req|
    req.url PATH
    req.body = params.to_json
  end
  case response.status
  when 401
    raise 'Unauthorized'
  end
  response
end

#get_partners(access_token, params) ⇒ Hash

取引先の取得

Parameters:

  • access_token (String)

    アクセストークン

  • params (Hash)

    新規作成用の取引先パラメータ

Returns:

  • (Hash)

    GETレスポンスの結果


23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/freee/partners/client.rb', line 23

def get_partners(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.body = params.to_json
  end
  case response.status
  when 401
    raise 'Unauthorized'
  end
  response
end

#update_partner(access_token, params) ⇒ Hash

Parameters:

  • access_token (String)

    アクセストークン

  • params (Hash)

    更新用の取引先パラメータ

Returns:

  • (Hash)

    PUTレスポンスの結果


61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/freee/partners/client.rb', line 61

def update_partner(access_token, params)
  raise 'アクセストークンが設定されていません' if access_token.empty?
  raise '事業所IDが設定されていません' unless params.key?(:company_id)
  raise '取引先IDが設定されていません' unless params.key?(:id)
  raise '取引先名が設定されていません' unless params.key?(:name)
  @client.authorization :Bearer, access_token
  response = @client.put do |req|
    req.url PATH + '/' + params[:id].to_s
    req.body = params.to_json
  end
  case response.status
  when 401
    raise 'Unauthorized'
  end
  response
end