Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions HelpScoutSharp.Tests/OrganizationService_Tests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace HelpScoutSharp.Tests;

[TestClass]
public class OrganizationService_Tests
{
private OrganizationService _service;

[TestInitialize]
public async Task Initialize()
{
HelpScoutHttpClient.RateLimitBreachBehavior = RateLimitBreachBehavior.WaitAndRetryOnce;
var authSvc = new AuthenticationService();
var token = await authSvc.GetApplicationTokenAsync(TestHelper.ApplicationId, TestHelper.ApplicationSecret);
_service = new OrganizationService(token.access_token);
}

[TestMethod]
public async Task GetOrganizationAsync_Works()
{
var res = await _service.ListAsync();
var organization = await _service.GetAsync(res.entities[0].id);
Assert.IsTrue(organization.id > 0);
}

[TestMethod]
public async Task ListOrganizationsAsync_Works()
{
var res = await _service.ListAsync(new ListOrganizationsOptions());
Assert.IsTrue(res.page.size > 0);
}
}
2 changes: 1 addition & 1 deletion HelpScoutSharp/HelpScoutSharp.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<Version>2.6.3</Version>
<Version>2.7.0</Version>
<Company>Better Reports</Company>
<Product>Help Scout API Client for .NET</Product>
<Authors>Better Reports</Authors>
Expand Down
6 changes: 6 additions & 0 deletions HelpScoutSharp/Organizations/ListOrganizationsOptions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace HelpScoutSharp;

public class ListOrganizationsOptions : ListOptions
{
public string sort { get; set; }
}
26 changes: 26 additions & 0 deletions HelpScoutSharp/Organizations/Organization.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
namespace HelpScoutSharp;

public class Organization : IHasId
{
public long id { get; set; }

public string name { get; set; }

public string website { get; set; }

public string description { get; set; }

public string location { get; set; }

public string logoUrl { get; set; }

public string[] domains { get; set; }

public string[] phones { get; set; }

public string brandColor { get; set; }

public long customerCount { get; set; }

public long conversationCount { get; set; }
}
15 changes: 15 additions & 0 deletions HelpScoutSharp/Organizations/OrganizationPage.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
namespace HelpScoutSharp;

public class OrganizationPage : IPage<Organization>
{
public class Embedded
{
public Organization[] organizations { get; set; }
}

public Embedded _embedded { get; set; }

public Page page { get; set; }

public Organization[] entities => _embedded.organizations;
}
21 changes: 21 additions & 0 deletions HelpScoutSharp/Organizations/OrganizationService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using Flurl;

namespace HelpScoutSharp;

public class OrganizationService : ServiceBase, IListableService<Organization, ListOrganizationsOptions>
{
public OrganizationService(string accessToken)
: base(accessToken, "organizations")
{
}

public async Task<Organization> GetAsync(long organizationId)
{
return await _client.GetAsync<Organization>(new Url(_serviceUri).AppendPathSegment(organizationId).ToUri());
}

public async Task<IPage<Organization>> ListAsync(ListOrganizationsOptions options = null)
{
return await _client.GetAsync<OrganizationPage>(_serviceUri, options);
}
}
Loading