diff --git a/lib/pocus/resource.rb b/lib/pocus/resource.rb index 971d17e..1ee1cea 100644 --- a/lib/pocus/resource.rb +++ b/lib/pocus/resource.rb @@ -106,7 +106,8 @@ def post def post_multiple(request_path, klass, fields_multiple) data = fields_multiple.map { |fields| camelize_fields(fields) } response = session.send_request('POST', path + request_path, data) - resources = response.fetch(klass.tag_multiple).map { |fields| klass.new(fields.merge(parent: self)) } + data = response.fetch(klass.tag_multiple) || [] + resources = data.map { |fields| klass.new(fields.merge(parent: self)) } ResponseArray.new(resources, response['errors'], response['warnings']) end diff --git a/spec/lib/pocus/contact_spec.rb b/spec/lib/pocus/contact_spec.rb index fb23feb..966934c 100644 --- a/spec/lib/pocus/contact_spec.rb +++ b/spec/lib/pocus/contact_spec.rb @@ -56,6 +56,15 @@ expect(contact).to be_kind_of(Pocus::Contact) expect(contact.contact_id).to match(/^\d+$/) end + + it 'handles error on all contacts' do + fields_multiple = [''].map do |i| + contact_attributes.dup.merge(email: "#{i}@dummy.com") + end + response = test_folder.contacts.create(fields_multiple) + expect(response.warnings.count).to be >= 1 + expect(response.first).to eq(nil) + end end describe '#reload' do