Skip to content

Commit 0e8960d

Browse files
authored
Merge pull request #290 from rojtjo/feature/manage-contact-people
Allow contact people to be managed
2 parents f3a1125 + 36a6590 commit 0e8960d

File tree

4 files changed

+41
-0
lines changed

4 files changed

+41
-0
lines changed

src/Picqer/Financials/Moneybird/Entities/Contact.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,4 +123,12 @@ public function getPaymentsMandate(): array
123123
$this->getEndpoint() . '/' . $this->id . '/moneybird_payments_mandate'
124124
);
125125
}
126+
127+
public function addContactPerson(array $attributes): ContactPeople
128+
{
129+
$attributes['contact_id'] = $this->id;
130+
$contactPerson = new ContactPeople($this->connection(), $attributes);
131+
132+
return $contactPerson->save();
133+
}
126134
}

src/Picqer/Financials/Moneybird/Entities/ContactPeople.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,16 @@
22

33
namespace Picqer\Financials\Moneybird\Entities;
44

5+
use Picqer\Financials\Moneybird\Actions\FindOne;
6+
use Picqer\Financials\Moneybird\Actions\Removable;
7+
use Picqer\Financials\Moneybird\Actions\Storable;
58
use Picqer\Financials\Moneybird\Model;
69

710
/**
811
* Class ContactPeople.
912
*
1013
* @property string $id
14+
* @property string $contact_id
1115
* @property string $administration_id
1216
* @property string $firstname
1317
* @property string lastname
@@ -20,11 +24,14 @@
2024
*/
2125
class ContactPeople extends Model
2226
{
27+
use FindOne, Storable, Removable;
28+
2329
/**
2430
* @var array
2531
*/
2632
protected $fillable = [
2733
'id',
34+
'contact_id',
2835
'administration_id',
2936
'firstname',
3037
'lastname',
@@ -35,4 +42,14 @@ class ContactPeople extends Model
3542
'updated_at',
3643
'version',
3744
];
45+
46+
protected $namespace = 'contact_person';
47+
48+
/**
49+
* @return string
50+
*/
51+
public function getEndpoint()
52+
{
53+
return 'contacts/' . $this->contact_id . '/contact_people';
54+
}
3855
}

src/Picqer/Financials/Moneybird/Moneybird.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Picqer\Financials\Moneybird\Entities\Administration;
66
use Picqer\Financials\Moneybird\Entities\Contact;
77
use Picqer\Financials\Moneybird\Entities\ContactCustomField;
8+
use Picqer\Financials\Moneybird\Entities\ContactPeople;
89
use Picqer\Financials\Moneybird\Entities\CustomField;
910
use Picqer\Financials\Moneybird\Entities\DocumentStyle;
1011
use Picqer\Financials\Moneybird\Entities\Estimate;
@@ -87,6 +88,15 @@ public function contact($attributes = [])
8788
return new Contact($this->connection, $attributes);
8889
}
8990

91+
/**
92+
* @param array $attributes
93+
* @return \Picqer\Financials\Moneybird\Entities\ContactPeople
94+
*/
95+
public function contactPerson($attributes = [])
96+
{
97+
return new ContactPeople($this->connection, $attributes);
98+
}
99+
90100
/**
91101
* @param array $attributes
92102
* @return \Picqer\Financials\Moneybird\Entities\ContactCustomField

tests/EntityTest.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Picqer\Financials\Moneybird\Entities\Administration;
77
use Picqer\Financials\Moneybird\Entities\Contact;
88
use Picqer\Financials\Moneybird\Entities\ContactCustomField;
9+
use Picqer\Financials\Moneybird\Entities\ContactPeople;
910
use Picqer\Financials\Moneybird\Entities\CustomField;
1011
use Picqer\Financials\Moneybird\Entities\DocumentStyle;
1112
use Picqer\Financials\Moneybird\Entities\Estimate;
@@ -63,6 +64,11 @@ public function testContactEntity()
6364
$this->performEntityTest(Contact::class);
6465
}
6566

67+
public function testContactPeopleEntity()
68+
{
69+
$this->performEntityTest(ContactPeople::class);
70+
}
71+
6672
public function testContactCustomFieldEntity()
6773
{
6874
$this->performEntityTest(ContactCustomField::class);

0 commit comments

Comments
 (0)