Skip to content

Commit 3f49a49

Browse files
committed
add roleSlug param for createOrgMembership and fix updateOrgMemberhsip to allow for optional value for roleSlug
1 parent b47ee3c commit 3f49a49

2 files changed

Lines changed: 19 additions & 7 deletions

File tree

lib/UserManagement.php

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -218,18 +218,20 @@ public function deleteUser($userId)
218218
*
219219
* @param string $userId User ID
220220
* @param string $organizationId Organization ID
221+
* @param string|null $roleSlug Role Slug
221222
*
222223
* @throws Exception\WorkOSException
223224
*
224225
* @return Resource\OrganizationMembership
225226
*/
226-
public function createOrganizationMembership($userId, $organizationId)
227+
public function createOrganizationMembership($userId, $organizationId, $roleSlug = null)
227228
{
228229
$path = "user_management/organization_memberships";
229230

230231
$params = [
231232
"organization_id" => $organizationId,
232-
"user_id" => $userId
233+
"user_id" => $userId,
234+
"role_slug" => $roleSlug
233235
];
234236

235237
$response = Client::request(
@@ -239,6 +241,9 @@ public function createOrganizationMembership($userId, $organizationId)
239241
$params,
240242
true
241243
);
244+
if (!is_null($roleSlug) && !is_string($roleSlug)) {
245+
throw new \InvalidArgumentException("roleSlug must be a string or null");
246+
}
242247

243248
return Resource\OrganizationMembership::constructFromResponse($response);
244249
}
@@ -295,18 +300,18 @@ public function deleteOrganizationMembership($organizationMembershipId)
295300
* Update a User organization membership.
296301
*
297302
* @param string $organizationMembershipId Organization Membership ID
298-
* @param string $role_slug The unique role identifier.
303+
* @param string|null $role_slug The unique role identifier.
299304
*
300305
* @throws Exception\WorkOSException
301306
*
302307
* @return Resource\OrganizationMembership
303308
*/
304-
public function updateOrganizationMembership($organizationMembershipId, $role_slug)
309+
public function updateOrganizationMembership($organizationMembershipId, $roleSlug = null)
305310
{
306311
$path = "user_management/organization_memberships/{$organizationMembershipId}";
307312

308313
$params = [
309-
"role_slug" => $role_slug
314+
"role_slug" => $roleSlug
310315
];
311316

312317
$response = Client::request(
@@ -316,6 +321,9 @@ public function updateOrganizationMembership($organizationMembershipId, $role_sl
316321
$params,
317322
true
318323
);
324+
if (!is_null($roleSlug) && !is_string($roleSlug)) {
325+
throw new \InvalidArgumentException("roleSlug must be a string or null");
326+
}
319327

320328
return Resource\OrganizationMembership::constructFromResponse($response);
321329
}

tests/WorkOS/UserManagementTest.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -837,13 +837,15 @@ public function testCreateOrganizationMembership()
837837
{
838838
$userId = "user_01H7X1M4TZJN5N4HG4XXMA1234";
839839
$orgId = "org_01EHQMYV6MBK39QC5PZXHY59C3";
840+
$roleSlug = "admin";
840841
$path = "user_management/organization_memberships";
841842

842843
$result = $this->organizationMembershipResponseFixture();
843844

844845
$params = [
845846
"organization_id" => $orgId,
846-
"user_id" => $userId
847+
"user_id" => $userId,
848+
"role_slug" => $roleSlug
847849
];
848850

849851
$this->mockRequest(
@@ -857,7 +859,9 @@ public function testCreateOrganizationMembership()
857859

858860
$organizationMembership = $this->organizationMembershipFixture();
859861

860-
$response = $this->userManagement->createOrganizationMembership($userId, $orgId);
862+
$response = $this->userManagement->createOrganizationMembership($userId, $orgId, $roleSlug);
863+
echo "Response from Create Org:";
864+
print_r($response);
861865
$this->assertSame($organizationMembership, $response->toArray());
862866
}
863867

0 commit comments

Comments
 (0)