Skip to content

Commit 2b2291c

Browse files
authored
Added Organization.CreateOrUpdate (#515)
1 parent 17f3d26 commit 2b2291c

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

src/ZendeskApi_v2/Requests/Organizations.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ public interface IOrganizations : ICore
3333
/// <returns></returns>
3434
GroupOrganizationResponse GetMultipleOrganizationsByExternalIds(IEnumerable<string> externalIds);
3535
IndividualOrganizationResponse CreateOrganization(Organization organization);
36+
IndividualOrganizationResponse CreateOrUpdateOrganization(Organization organization);
37+
3638
IndividualOrganizationResponse UpdateOrganization(Organization organization);
3739
JobStatusResponse UpdateMultipleOrganizations(IEnumerable<Organization> organizations);
3840
bool DeleteOrganization(long id);
@@ -75,6 +77,7 @@ public interface IOrganizations : ICore
7577
/// <returns></returns>
7678
Task<GroupOrganizationResponse> GetMultipleOrganizationsByExternalIdsAsync(IEnumerable<string> externalIds);
7779
Task<IndividualOrganizationResponse> CreateOrganizationAsync(Organization organization);
80+
Task<IndividualOrganizationResponse> CreateOrUpdateOrganizationAsync(Organization organization);
7881
Task<IndividualOrganizationResponse> UpdateOrganizationAsync(Organization organization);
7982
Task<JobStatusResponse> UpdateMultipleOrganizationsAsync(IEnumerable<Organization> organizations);
8083
Task<bool> DeleteOrganizationAsync(long id);
@@ -148,6 +151,12 @@ public IndividualOrganizationResponse CreateOrganization(Organization organizati
148151
return GenericPost<IndividualOrganizationResponse>("organizations.json", body);
149152
}
150153

154+
public IndividualOrganizationResponse CreateOrUpdateOrganization(Organization organization)
155+
{
156+
var body = new { organization };
157+
return GenericPost<IndividualOrganizationResponse>("organizations/create_or_update.json", body);
158+
}
159+
151160
public IndividualOrganizationResponse UpdateOrganization(Organization organization)
152161
{
153162
var body = new { organization };
@@ -282,6 +291,11 @@ public async Task<IndividualOrganizationResponse> CreateOrganizationAsync(Organi
282291
return await GenericPostAsync<IndividualOrganizationResponse>("organizations.json", new { organization });
283292
}
284293

294+
public async Task<IndividualOrganizationResponse> CreateOrUpdateOrganizationAsync(Organization organization)
295+
{
296+
return await GenericPostAsync<IndividualOrganizationResponse>("organizations/create_or_update.json", new { organization });
297+
}
298+
285299
public async Task<IndividualOrganizationResponse> UpdateOrganizationAsync(Organization organization)
286300
{
287301
return await GenericPutAsync<IndividualOrganizationResponse>($"organizations/{organization.Id}.json", new { organization });

test/ZendeskApi_v2.Test/OrganizationTests.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,42 @@ public void CanCreateUpdateAndDeleteOrganizations()
135135
Assert.True(api.Organizations.DeleteOrganization(res.Organization.Id.Value));
136136
}
137137

138+
[Test]
139+
public void CanCreateOrUpdateOrganizations()
140+
{
141+
var res = api.Organizations.CreateOrUpdateOrganization(new Organization()
142+
{
143+
Name = "Test Org (original)"
144+
});
145+
146+
Assert.That(res.Organization.Id, Is.GreaterThan(0));
147+
148+
res.Organization.Name = "Test Org (updated)";
149+
var update = api.Organizations.CreateOrUpdateOrganization(res.Organization);
150+
151+
Assert.That(update.Organization.Id, Is.EqualTo(res.Organization.Id));
152+
Assert.That(update.Organization.Name, Is.EqualTo(res.Organization.Name));
153+
Assert.That(api.Organizations.DeleteOrganization(res.Organization.Id.Value), Is.True);
154+
}
155+
156+
[Test]
157+
public async Task CanCreateOrUpdateOrganizationsAsync()
158+
{
159+
var res = await api.Organizations.CreateOrUpdateOrganizationAsync(new Organization()
160+
{
161+
Name = "Test Org (original)"
162+
});
163+
164+
Assert.That(res.Organization.Id, Is.GreaterThan(0));
165+
166+
res.Organization.Name = "Test Org (updated)";
167+
var update = await api.Organizations.CreateOrUpdateOrganizationAsync(res.Organization);
168+
169+
Assert.That(update.Organization.Id, Is.EqualTo(res.Organization.Id));
170+
Assert.That(update.Organization.Name, Is.EqualTo(res.Organization.Name));
171+
Assert.That(api.Organizations.DeleteOrganization(res.Organization.Id.Value), Is.True);
172+
}
173+
138174
[Test]
139175
public void CanCreateUpdateAndDeleteMultipeOrganizations()
140176
{

0 commit comments

Comments
 (0)