kintone-client 0.1.1 → 0.1.2
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/lib/kintone/client.rb +3 -0
 - data/lib/kintone/client/client.rb +24 -6
 - data/lib/kintone/client/middleware/record.rb +76 -0
 - data/lib/kintone/client/version.rb +1 -1
 - data/spec/kintone/client/bulkRequest_spec.rb +72 -0
 - data/spec/kintone/client/record_post_spec.rb +64 -0
 - metadata +6 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 951cf372212f60ae0f4d23e5082ef2d3f4d45d04
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: f8e03d313b23c9056e5176d0b250ee091a82ff3a
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: a5ec1cbee49c0444bf05e002d5316ace64c18edba60cf6f6e0c7d5f2eee5757fbe570415dca7643eb6304b7ad00f2ca8c07733bb1d2a3ef944f55d32807ceee2
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: db3afefc783cc053c54c7539f5970daf07845432a304bb09d77809b7ca037d77507bf3450e6614d20e77566d574bdd0395a45fc52bfb4c96d65b3dd1396fe749
         
     | 
    
        data/lib/kintone/client.rb
    CHANGED
    
    | 
         @@ -1,4 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'base64'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'json'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
       2 
4 
     | 
    
         
             
            require 'faraday'
         
     | 
| 
       3 
5 
     | 
    
         
             
            require 'faraday_middleware'
         
     | 
| 
       4 
6 
     | 
    
         | 
| 
         @@ -6,4 +8,5 @@ module Kintone; end 
     | 
|
| 
       6 
8 
     | 
    
         
             
            require 'kintone/client/client'
         
     | 
| 
       7 
9 
     | 
    
         
             
            require 'kintone/client/error'
         
     | 
| 
       8 
10 
     | 
    
         
             
            require 'kintone/client/middleware/form'
         
     | 
| 
      
 11 
     | 
    
         
            +
            require 'kintone/client/middleware/record'
         
     | 
| 
       9 
12 
     | 
    
         
             
            require 'kintone/client/version'
         
     | 
| 
         @@ -20,8 +20,9 @@ class Kintone::Client 
     | 
|
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
                @conn = Faraday.new(options) do |faraday|
         
     | 
| 
       22 
22 
     | 
    
         
             
                  faraday.request  :url_encoded
         
     | 
| 
       23 
     | 
    
         
            -
                  faraday. 
     | 
| 
       24 
     | 
    
         
            -
                  faraday.response : 
     | 
| 
      
 23 
     | 
    
         
            +
                  faraday.request  :record, :content_type => /\bjson$/
         
     | 
| 
      
 24 
     | 
    
         
            +
                  faraday.response :form,   :content_type => /\bjson$/ # must set before :json
         
     | 
| 
      
 25 
     | 
    
         
            +
                  faraday.response :json,   :content_type => /\bjson$/
         
     | 
| 
       25 
26 
     | 
    
         | 
| 
       26 
27 
     | 
    
         
             
                  yield(faraday) if block_given?
         
     | 
| 
       27 
28 
     | 
    
         | 
| 
         @@ -54,11 +55,19 @@ class Kintone::Client 
     | 
|
| 
       54 
55 
     | 
    
         | 
| 
       55 
56 
     | 
    
         
             
                private
         
     | 
| 
       56 
57 
     | 
    
         | 
| 
       57 
     | 
    
         
            -
                def request(method_name, params)
         
     | 
| 
      
 58 
     | 
    
         
            +
                def request(method_name, params, options = {})
         
     | 
| 
       58 
59 
     | 
    
         
             
                  response = @conn.send(method_name) do |req|
         
     | 
| 
       59 
60 
     | 
    
         
             
                    req.url BASE_PATH + '/' + @path + '.json'
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                    if options[:json]
         
     | 
| 
      
 63 
     | 
    
         
            +
                      req.body = JSON.dump(params)
         
     | 
| 
      
 64 
     | 
    
         
            +
                      req.headers['Content-Type'] = 'application/json'
         
     | 
| 
      
 65 
     | 
    
         
            +
                    else
         
     | 
| 
      
 66 
     | 
    
         
            +
                      req.params = expand_params_array(params || {})
         
     | 
| 
      
 67 
     | 
    
         
            +
                    end
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
       61 
69 
     | 
    
         
             
                    authorize(req)
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
       62 
71 
     | 
    
         
             
                    yield(req) if block_given?
         
     | 
| 
       63 
72 
     | 
    
         
             
                  end
         
     | 
| 
       64 
73 
     | 
    
         | 
| 
         @@ -117,7 +126,9 @@ class Kintone::Client 
     | 
|
| 
       117 
126 
     | 
    
         
             
                end
         
     | 
| 
       118 
127 
     | 
    
         | 
| 
       119 
128 
     | 
    
         
             
                def method_missing(method_name, *args, &block)
         
     | 
| 
       120 
     | 
    
         
            -
                   
     | 
| 
      
 129 
     | 
    
         
            +
                  method_name = method_name.to_s
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
                  if %w(get post put delete post_json put_json delete_json).include?(method_name)
         
     | 
| 
       121 
132 
     | 
    
         
             
                    case args.length
         
     | 
| 
       122 
133 
     | 
    
         
             
                    when 0
         
     | 
| 
       123 
134 
     | 
    
         
             
                      args = nil
         
     | 
| 
         @@ -125,7 +136,14 @@ class Kintone::Client 
     | 
|
| 
       125 
136 
     | 
    
         
             
                      args = args.first
         
     | 
| 
       126 
137 
     | 
    
         
             
                    end
         
     | 
| 
       127 
138 
     | 
    
         | 
| 
       128 
     | 
    
         
            -
                     
     | 
| 
      
 139 
     | 
    
         
            +
                    options = {}
         
     | 
| 
      
 140 
     | 
    
         
            +
             
     | 
| 
      
 141 
     | 
    
         
            +
                    if method_name =~ /_json\z/
         
     | 
| 
      
 142 
     | 
    
         
            +
                      method_name.sub!(/_json\z/, '')
         
     | 
| 
      
 143 
     | 
    
         
            +
                      options[:json] = true
         
     | 
| 
      
 144 
     | 
    
         
            +
                    end
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
      
 146 
     | 
    
         
            +
                    request(method_name, args, options, &block)
         
     | 
| 
       129 
147 
     | 
    
         
             
                  else
         
     | 
| 
       130 
148 
     | 
    
         
             
                    unless args.length.zero?
         
     | 
| 
       131 
149 
     | 
    
         
             
                      raise ArgumentError, "wrong number of arguments (#{args.length} for 0)"
         
     | 
| 
         @@ -0,0 +1,76 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Kintone::Client::Middleware
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Record < Faraday::Middleware
         
     | 
| 
      
 3 
     | 
    
         
            +
                def initialize(app, options = {})
         
     | 
| 
      
 4 
     | 
    
         
            +
                  super(app)
         
     | 
| 
      
 5 
     | 
    
         
            +
                  @options = options
         
     | 
| 
      
 6 
     | 
    
         
            +
                end
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                def call(env)
         
     | 
| 
      
 9 
     | 
    
         
            +
                  match_content_type(env) do
         
     | 
| 
      
 10 
     | 
    
         
            +
                    env[:body] = expand_body(env[:body])
         
     | 
| 
      
 11 
     | 
    
         
            +
                  end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  @app.call env
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                private
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                def match_content_type(env)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  content_type = env[:request_headers]['Content-Type']
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  return unless content_type
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                  content_type = content_type.split(';').first.strip
         
     | 
| 
      
 24 
     | 
    
         
            +
                  opt_content_type = @options[:content_type] || /.*/
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  if env[:body] and opt_content_type =~ content_type
         
     | 
| 
      
 27 
     | 
    
         
            +
                    yield
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                def expand_body(body)
         
     | 
| 
      
 32 
     | 
    
         
            +
                  body = JSON.parse(body)
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                  if body['record']
         
     | 
| 
      
 35 
     | 
    
         
            +
                    body['record'] = expand_record(body['record'])
         
     | 
| 
      
 36 
     | 
    
         
            +
                  elsif body['requests']
         
     | 
| 
      
 37 
     | 
    
         
            +
                    if_has_record(body['requests']) do |request|
         
     | 
| 
      
 38 
     | 
    
         
            +
                      record = request['payload']['record']
         
     | 
| 
      
 39 
     | 
    
         
            +
                      next unless record
         
     | 
| 
      
 40 
     | 
    
         
            +
                      request['payload']['record'] = expand_record(record)
         
     | 
| 
      
 41 
     | 
    
         
            +
                    end
         
     | 
| 
      
 42 
     | 
    
         
            +
                  end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                  JSON.dump(body)
         
     | 
| 
      
 45 
     | 
    
         
            +
                end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                def expand_record(record)
         
     | 
| 
      
 48 
     | 
    
         
            +
                  expanded = {}
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                  record.each do |key, value|
         
     | 
| 
      
 51 
     | 
    
         
            +
                    case value
         
     | 
| 
      
 52 
     | 
    
         
            +
                    when Array, Hash
         
     | 
| 
      
 53 
     | 
    
         
            +
                      expanded[key] = value
         
     | 
| 
      
 54 
     | 
    
         
            +
                    else
         
     | 
| 
      
 55 
     | 
    
         
            +
                      expanded[key] = {
         
     | 
| 
      
 56 
     | 
    
         
            +
                        'value' => value.to_s
         
     | 
| 
      
 57 
     | 
    
         
            +
                      }
         
     | 
| 
      
 58 
     | 
    
         
            +
                    end
         
     | 
| 
      
 59 
     | 
    
         
            +
                  end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                  expanded
         
     | 
| 
      
 62 
     | 
    
         
            +
                end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                def if_has_record(requests)
         
     | 
| 
      
 65 
     | 
    
         
            +
                  if requests[0]['payload']['record']
         
     | 
| 
      
 66 
     | 
    
         
            +
                    requests.each do |request|
         
     | 
| 
      
 67 
     | 
    
         
            +
                      yield(request)
         
     | 
| 
      
 68 
     | 
    
         
            +
                    end
         
     | 
| 
      
 69 
     | 
    
         
            +
                  end
         
     | 
| 
      
 70 
     | 
    
         
            +
                rescue
         
     | 
| 
      
 71 
     | 
    
         
            +
                  # nothing to do
         
     | 
| 
      
 72 
     | 
    
         
            +
                end
         
     | 
| 
      
 73 
     | 
    
         
            +
              end
         
     | 
| 
      
 74 
     | 
    
         
            +
            end
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
            Faraday::Request.register_middleware :record => Kintone::Client::Middleware::Record
         
     | 
| 
         @@ -0,0 +1,72 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # https://cybozudev.zendesk.com/hc/ja/articles/201941814-%E8%A4%87%E6%95%B0%E3%82%A2%E3%83%97%E3%83%AA%E3%81%B8%E3%81%AE%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%80%E6%8B%AC%E5%87%A6%E7%90%86
         
     | 
| 
      
 2 
     | 
    
         
            +
            describe Kintone::Client do
         
     | 
| 
      
 3 
     | 
    
         
            +
              describe '複数アプリへのレコード一括処理' do
         
     | 
| 
      
 4 
     | 
    
         
            +
                let(:request) do
         
     | 
| 
      
 5 
     | 
    
         
            +
                  {"requests"=>
         
     | 
| 
      
 6 
     | 
    
         
            +
                    [{"method"=>"POST",
         
     | 
| 
      
 7 
     | 
    
         
            +
                      "api"=>"/k/v1/record.json",
         
     | 
| 
      
 8 
     | 
    
         
            +
                      "payload"=>
         
     | 
| 
      
 9 
     | 
    
         
            +
                       {"app"=>1972, "record"=>{"文字列__1行"=>{"value"=>"文字列__1行を追加します。"}}}},
         
     | 
| 
      
 10 
     | 
    
         
            +
                     {"method"=>"PUT",
         
     | 
| 
      
 11 
     | 
    
         
            +
                      "api"=>"/k/v1/record.json",
         
     | 
| 
      
 12 
     | 
    
         
            +
                      "payload"=>
         
     | 
| 
      
 13 
     | 
    
         
            +
                       {"app"=>1973,
         
     | 
| 
      
 14 
     | 
    
         
            +
                        "id"=>33,
         
     | 
| 
      
 15 
     | 
    
         
            +
                        "revision"=>2,
         
     | 
| 
      
 16 
     | 
    
         
            +
                        "record"=>{"文字列__1行"=>{"value"=>"文字列__1行を更新します。"}}}},
         
     | 
| 
      
 17 
     | 
    
         
            +
                     {"method"=>"DELETE",
         
     | 
| 
      
 18 
     | 
    
         
            +
                      "api"=>"/k/v1/records.json",
         
     | 
| 
      
 19 
     | 
    
         
            +
                      "payload"=>{"app"=>1974, "ids"=>[10, 11], "revisions"=>[1, 1]}}]}
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                let(:unexpanded_request) do
         
     | 
| 
      
 23 
     | 
    
         
            +
                  {"requests"=>
         
     | 
| 
      
 24 
     | 
    
         
            +
                    [{"method"=>"POST",
         
     | 
| 
      
 25 
     | 
    
         
            +
                      "api"=>"/k/v1/record.json",
         
     | 
| 
      
 26 
     | 
    
         
            +
                      "payload"=>
         
     | 
| 
      
 27 
     | 
    
         
            +
                       {"app"=>1972, "record"=>{"文字列__1行"=>"文字列__1行を追加します。"}}},
         
     | 
| 
      
 28 
     | 
    
         
            +
                     {"method"=>"PUT",
         
     | 
| 
      
 29 
     | 
    
         
            +
                      "api"=>"/k/v1/record.json",
         
     | 
| 
      
 30 
     | 
    
         
            +
                      "payload"=>
         
     | 
| 
      
 31 
     | 
    
         
            +
                       {"app"=>1973,
         
     | 
| 
      
 32 
     | 
    
         
            +
                        "id"=>33,
         
     | 
| 
      
 33 
     | 
    
         
            +
                        "revision"=>2,
         
     | 
| 
      
 34 
     | 
    
         
            +
                        "record"=>{"文字列__1行"=>"文字列__1行を更新します。"}}},
         
     | 
| 
      
 35 
     | 
    
         
            +
                     {"method"=>"DELETE",
         
     | 
| 
      
 36 
     | 
    
         
            +
                      "api"=>"/k/v1/records.json",
         
     | 
| 
      
 37 
     | 
    
         
            +
                      "payload"=>{"app"=>1974, "ids"=>[10, 11], "revisions"=>[1, 1]}}]}
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                let(:response) do
         
     | 
| 
      
 41 
     | 
    
         
            +
                  {"results"=>[{"id"=>"39", "revision"=>"1"}, {"revision"=>"34"}, {}]}
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                it do
         
     | 
| 
      
 45 
     | 
    
         
            +
                  client = kintone_client do |stub|
         
     | 
| 
      
 46 
     | 
    
         
            +
                    stub.post('/k/v1/bulkRequest.json') do |env|
         
     | 
| 
      
 47 
     | 
    
         
            +
                      expect(env.body).to eq JSON.dump(request)
         
     | 
| 
      
 48 
     | 
    
         
            +
                      expect(env.request_headers['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
         
     | 
| 
      
 49 
     | 
    
         
            +
                      expect(env.request_headers['Content-Type']).to eq 'application/json'
         
     | 
| 
      
 50 
     | 
    
         
            +
                      [200, {'Content-Type' => 'json'}, JSON.dump(response)]
         
     | 
| 
      
 51 
     | 
    
         
            +
                    end
         
     | 
| 
      
 52 
     | 
    
         
            +
                  end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                  result = client.bulkRequest.post_json(request)
         
     | 
| 
      
 55 
     | 
    
         
            +
                  expect(result).to eq response
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                it do
         
     | 
| 
      
 59 
     | 
    
         
            +
                  client = kintone_client do |stub|
         
     | 
| 
      
 60 
     | 
    
         
            +
                    stub.post('/k/v1/bulkRequest.json') do |env|
         
     | 
| 
      
 61 
     | 
    
         
            +
                      expect(env.body).to eq JSON.dump(request)
         
     | 
| 
      
 62 
     | 
    
         
            +
                      expect(env.request_headers['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
         
     | 
| 
      
 63 
     | 
    
         
            +
                      expect(env.request_headers['Content-Type']).to eq 'application/json'
         
     | 
| 
      
 64 
     | 
    
         
            +
                      [200, {'Content-Type' => 'json'}, JSON.dump(response)]
         
     | 
| 
      
 65 
     | 
    
         
            +
                    end
         
     | 
| 
      
 66 
     | 
    
         
            +
                  end
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                  result = client.bulkRequest.post_json(unexpanded_request)
         
     | 
| 
      
 69 
     | 
    
         
            +
                  expect(result).to eq response
         
     | 
| 
      
 70 
     | 
    
         
            +
                end
         
     | 
| 
      
 71 
     | 
    
         
            +
              end
         
     | 
| 
      
 72 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,64 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # https://cybozudev.zendesk.com/hc/ja/articles/202166160-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E7%99%BB%E9%8C%B2-POST-
         
     | 
| 
      
 2 
     | 
    
         
            +
            describe Kintone::Client do
         
     | 
| 
      
 3 
     | 
    
         
            +
              describe 'レコードの登録(1件)' do
         
     | 
| 
      
 4 
     | 
    
         
            +
                let(:request) do
         
     | 
| 
      
 5 
     | 
    
         
            +
                  {"app"=>1972,
         
     | 
| 
      
 6 
     | 
    
         
            +
                   "record"=>
         
     | 
| 
      
 7 
     | 
    
         
            +
                    {"文字列__1行"=>{"value"=>"テスト"},
         
     | 
| 
      
 8 
     | 
    
         
            +
                     "文字列__複数行"=>{"value"=>"テスト\nテスト2"},
         
     | 
| 
      
 9 
     | 
    
         
            +
                     "数値"=>{"value"=>"20"},
         
     | 
| 
      
 10 
     | 
    
         
            +
                     "日時"=>{"value"=>"2014-02-16T08:57:00Z"},
         
     | 
| 
      
 11 
     | 
    
         
            +
                     "チェックボックス"=>{"value"=>["sample1", "sample2"]},
         
     | 
| 
      
 12 
     | 
    
         
            +
                     "ユーザー選択"=>{"value"=>[{"code"=>"sato"}]},
         
     | 
| 
      
 13 
     | 
    
         
            +
                     "ドロップダウン"=>{"value"=>"sample1"},
         
     | 
| 
      
 14 
     | 
    
         
            +
                     "リンク_ウェブ"=>{"value"=>"https://www.cybozu.com"},
         
     | 
| 
      
 15 
     | 
    
         
            +
                     "Table"=>{"value"=>[{"value"=>{"テーブル文字列"=>{"value"=>"テスト"}}}]}}}
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                let(:unexpanded_request) do
         
     | 
| 
      
 19 
     | 
    
         
            +
                  {"app"=>1972,
         
     | 
| 
      
 20 
     | 
    
         
            +
                   "record"=>
         
     | 
| 
      
 21 
     | 
    
         
            +
                    {"文字列__1行"=>"テスト",
         
     | 
| 
      
 22 
     | 
    
         
            +
                     "文字列__複数行"=>"テスト\nテスト2",
         
     | 
| 
      
 23 
     | 
    
         
            +
                     "数値"=>20,
         
     | 
| 
      
 24 
     | 
    
         
            +
                     "日時"=>"2014-02-16T08:57:00Z",
         
     | 
| 
      
 25 
     | 
    
         
            +
                     "チェックボックス"=>{"value"=>["sample1", "sample2"]},
         
     | 
| 
      
 26 
     | 
    
         
            +
                     "ユーザー選択"=>{"value"=>[{"code"=>"sato"}]},
         
     | 
| 
      
 27 
     | 
    
         
            +
                     "ドロップダウン"=>"sample1",
         
     | 
| 
      
 28 
     | 
    
         
            +
                     "リンク_ウェブ"=>"https://www.cybozu.com",
         
     | 
| 
      
 29 
     | 
    
         
            +
                     "Table"=>{"value"=>[{"value"=>{"テーブル文字列"=>{"value"=>"テスト"}}}]}}}
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                let(:response) do
         
     | 
| 
      
 33 
     | 
    
         
            +
                  {"ids"=>["100", "101"], "revisions"=>["1", "1"]}
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                it do
         
     | 
| 
      
 37 
     | 
    
         
            +
                  client = kintone_client do |stub|
         
     | 
| 
      
 38 
     | 
    
         
            +
                    stub.post('/k/v1/record.json') do |env|
         
     | 
| 
      
 39 
     | 
    
         
            +
                      expect(env.body).to eq JSON.dump(request)
         
     | 
| 
      
 40 
     | 
    
         
            +
                      expect(env.request_headers['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
         
     | 
| 
      
 41 
     | 
    
         
            +
                      expect(env.request_headers['Content-Type']).to eq 'application/json'
         
     | 
| 
      
 42 
     | 
    
         
            +
                      [200, {'Content-Type' => 'json'}, JSON.dump(response)]
         
     | 
| 
      
 43 
     | 
    
         
            +
                    end
         
     | 
| 
      
 44 
     | 
    
         
            +
                  end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  result = client.record.post_json(request)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  expect(result).to eq response
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                it do
         
     | 
| 
      
 51 
     | 
    
         
            +
                  client = kintone_client do |stub|
         
     | 
| 
      
 52 
     | 
    
         
            +
                    stub.post('/k/v1/record.json') do |env|
         
     | 
| 
      
 53 
     | 
    
         
            +
                      expect(env.body).to eq JSON.dump(request)
         
     | 
| 
      
 54 
     | 
    
         
            +
                      expect(env.request_headers['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
         
     | 
| 
      
 55 
     | 
    
         
            +
                      expect(env.request_headers['Content-Type']).to eq 'application/json'
         
     | 
| 
      
 56 
     | 
    
         
            +
                      [200, {'Content-Type' => 'json'}, JSON.dump(response)]
         
     | 
| 
      
 57 
     | 
    
         
            +
                    end
         
     | 
| 
      
 58 
     | 
    
         
            +
                  end
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                  result = client.record.post_json(unexpanded_request)
         
     | 
| 
      
 61 
     | 
    
         
            +
                  expect(result).to eq response
         
     | 
| 
      
 62 
     | 
    
         
            +
                end
         
     | 
| 
      
 63 
     | 
    
         
            +
              end
         
     | 
| 
      
 64 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: kintone-client
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Genki Sugawara
         
     | 
| 
         @@ -112,9 +112,12 @@ files: 
     | 
|
| 
       112 
112 
     | 
    
         
             
            - lib/kintone/client/client.rb
         
     | 
| 
       113 
113 
     | 
    
         
             
            - lib/kintone/client/error.rb
         
     | 
| 
       114 
114 
     | 
    
         
             
            - lib/kintone/client/middleware/form.rb
         
     | 
| 
      
 115 
     | 
    
         
            +
            - lib/kintone/client/middleware/record.rb
         
     | 
| 
       115 
116 
     | 
    
         
             
            - lib/kintone/client/version.rb
         
     | 
| 
       116 
117 
     | 
    
         
             
            - spec/kintone/client/app_spec.rb
         
     | 
| 
       117 
118 
     | 
    
         
             
            - spec/kintone/client/apps_spec.rb
         
     | 
| 
      
 119 
     | 
    
         
            +
            - spec/kintone/client/bulkRequest_spec.rb
         
     | 
| 
      
 120 
     | 
    
         
            +
            - spec/kintone/client/record_post_spec.rb
         
     | 
| 
       118 
121 
     | 
    
         
             
            - spec/kintone/client/record_spec.rb
         
     | 
| 
       119 
122 
     | 
    
         
             
            - spec/kintone/client/records_spec.rb
         
     | 
| 
       120 
123 
     | 
    
         
             
            - spec/kintone/client/space_spec.rb
         
     | 
| 
         @@ -146,6 +149,8 @@ summary: It is a simple client of cybozu kintone. 
     | 
|
| 
       146 
149 
     | 
    
         
             
            test_files:
         
     | 
| 
       147 
150 
     | 
    
         
             
            - spec/kintone/client/app_spec.rb
         
     | 
| 
       148 
151 
     | 
    
         
             
            - spec/kintone/client/apps_spec.rb
         
     | 
| 
      
 152 
     | 
    
         
            +
            - spec/kintone/client/bulkRequest_spec.rb
         
     | 
| 
      
 153 
     | 
    
         
            +
            - spec/kintone/client/record_post_spec.rb
         
     | 
| 
       149 
154 
     | 
    
         
             
            - spec/kintone/client/record_spec.rb
         
     | 
| 
       150 
155 
     | 
    
         
             
            - spec/kintone/client/records_spec.rb
         
     | 
| 
       151 
156 
     | 
    
         
             
            - spec/kintone/client/space_spec.rb
         
     |