Skip to content

Commit

Permalink
Merge pull request #14 from bb-io/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
ce-nistal authored Oct 3, 2024
2 parents 01adc13 + 53d7021 commit 59e28a2
Show file tree
Hide file tree
Showing 15 changed files with 138 additions and 25 deletions.
2 changes: 1 addition & 1 deletion Apps.Crowdin/Actions/TaskActions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
using Blackbird.Applications.Sdk.Utils.Utilities;
using Crowdin.Api.Tasks;
using TaskStatus = Crowdin.Api.Tasks.TaskStatus;
using Apps.Crowdin.Models.Request;
using Apps.Crowdin.Models.Request.Users;

namespace Apps.Crowdin.Actions;

Expand Down
2 changes: 1 addition & 1 deletion Apps.Crowdin/Actions/TranslationActions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
using Crowdin.Api.StringTranslations;
using Crowdin.Api.Translations;
using RestSharp;
using Apps.Crowdin.Models.Request;
using Apps.Crowdin.Models.Request.Users;

namespace Apps.Crowdin.Actions;

Expand Down
59 changes: 59 additions & 0 deletions Apps.Crowdin/Actions/UserActions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@


using Blackbird.Applications.Sdk.Common.Authentication;
using Blackbird.Applications.Sdk.Common.Invocation;
using Blackbird.Applications.Sdk.Common;
using Apps.Crowdin.Api;
using Apps.Crowdin.Models.Entities;
using Apps.Crowdin.Models.Request.Task;
using Apps.Crowdin.Models.Response.Task;
using Apps.Crowdin.Utils;
using Blackbird.Applications.Sdk.Common.Actions;
using Blackbird.Applications.Sdk.Utils.Parsers;
using Apps.Crowdin.Api.RestSharp;
using Apps.Crowdin.Models.Request.Users;
using Apps.Crowdin.Models.Response;
using Crowdin.Api;
using Newtonsoft.Json;
using RestSharp;
using System.Threading;
using Apps.Crowdin.Models.Response.Project;
using System.Linq;

namespace Apps.Crowdin.Actions
{
public class UserActions : BaseInvocable
{
private AuthenticationCredentialsProvider[] Creds =>
InvocationContext.AuthenticationCredentialsProviders.ToArray();

public UserActions(InvocationContext invocationContext) : base(invocationContext)
{
}

[Action("Search users in project", Description = "Returns all matching project members")]
public async Task<SearchUsersResponse> SearchProjectUsers([ActionParameter] SearchUsersRequest input)
{

var client = new CrowdinRestClient();
var items = await Paginator.Paginate(async (lim, offset)
=>
{
var request =
new CrowdinRestRequest(
$"/projects/{input.ProjectId}/members?limit={lim}&offset={offset}",
Method.Get, Creds);
request.AddQueryParameter("role", input.Role);
if (input.LanguageId != null)
{ request.AddQueryParameter("languageId", input.LanguageId); }
var response = await client.ExecuteAsync(request);
return JsonConvert.DeserializeObject<ResponseList<DataResponse<AssigneeEntity>>>(response.Content);
});


var users = items.Select(x => new AssigneeEntity(x)).ToArray();
return new(users);
}

}
}
2 changes: 1 addition & 1 deletion Apps.Crowdin/Apps.Crowdin.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<Nullable>enable</Nullable>
<Product>Crowdin</Product>
<Description>Cloud-based solution that streamlines localization management</Description>
<Version>1.0.10</Version>
<Version>1.0.11</Version>
<AssemblyName>Apps.Crowdin</AssemblyName>
</PropertyGroup>
<ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion Apps.Crowdin/DataSourceHandlers/AiPromptIdDataHandler.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using Apps.Crowdin.Api.RestSharp;
using Apps.Crowdin.Models.Entities;
using Apps.Crowdin.Models.Request;
using Apps.Crowdin.Models.Request.Project;
using Apps.Crowdin.Models.Request.Users;
using Apps.Crowdin.Models.Response;
using Apps.Crowdin.Utils;
using Blackbird.Applications.Sdk.Common;
Expand Down
18 changes: 18 additions & 0 deletions Apps.Crowdin/DataSourceHandlers/EnumHandlers/UserRoleHandler.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
using Blackbird.Applications.Sdk.Common.Dictionaries;

namespace Apps.Crowdin.DataSourceHandlers.EnumHandlers;

public class UserRoleHandler : IStaticDataSourceHandler
{
public Dictionary<string, string> GetData() => new()
{
{"all", "All"},
{"manager", "Manager"},
{"developer", "Developer"},
{"language_coordinator", "Language Coordinator"},
{"proofreader", "Proofreader"},
{"translator", "Translator"},
{"blocked", "Blocked"},
{"pending", "Pending"}
};
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Apps.Crowdin.Api.RestSharp;
using Apps.Crowdin.Models.Entities;
using Apps.Crowdin.Models.Request;
using Apps.Crowdin.Models.Request.Users;
using Apps.Crowdin.Models.Response;
using Apps.Crowdin.Utils;
using Blackbird.Applications.Sdk.Common;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
using Apps.Crowdin.Models.Response;

namespace Apps.Crowdin.Models.Entities;

public class AssigneeEntity
{
private DataResponse<AssigneeEntity> x;

public AssigneeEntity(DataResponse<AssigneeEntity> x)
{
this.x = x;
}

public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
Expand Down
2 changes: 1 addition & 1 deletion Apps.Crowdin/Models/Request/Task/AddNewTaskRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public class AddNewTaskRequest
{
public string Title { get; set; }

[Display("Language")]
[Display("Language ID")]
[DataSource(typeof(LanguagesDataHandler))]
public string LanguageId { get; set; }

Expand Down
7 changes: 5 additions & 2 deletions Apps.Crowdin/Models/Request/Task/ListTasksRequest.cs
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
using Apps.Crowdin.DataSourceHandlers.EnumHandlers;
using Apps.Crowdin.DataSourceHandlers;
using Apps.Crowdin.DataSourceHandlers.EnumHandlers;
using Apps.Crowdin.Models.Request.Project;
using Blackbird.Applications.Sdk.Common;
using Blackbird.Applications.Sdk.Common.Dictionaries;
using Blackbird.Applications.Sdk.Common.Dynamic;

namespace Apps.Crowdin.Models.Request.Task;

public class ListTasksRequest : ProjectRequest
{
[StaticDataSource(typeof(TaskStatusHandler))]
public string? Status { get; set; }


[DataSource(typeof(ProjectMemberDataSourceHandler))]
[Display("Assignee ID")]
public string? AssigneeId { get; set; }
}
15 changes: 0 additions & 15 deletions Apps.Crowdin/Models/Request/UserRequest.cs

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
using Blackbird.Applications.Sdk.Common;
using Blackbird.Applications.Sdk.Common.Dynamic;

namespace Apps.Crowdin.Models.Request;
namespace Apps.Crowdin.Models.Request.Users;

public class AssigneesRequest
{
[Display("Project")]
[DataSource(typeof(ProjectDataHandler))]
public string ProjectId { get; set; }

[Display("Assignee IDs"), DataSource(typeof(ProjectMemberDataSourceHandler))]
public IEnumerable<string>? Assignees { get; set; }
}
23 changes: 23 additions & 0 deletions Apps.Crowdin/Models/Request/Users/SearchUsersRequest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
using Apps.Crowdin.DataSourceHandlers;
using Apps.Crowdin.DataSourceHandlers.EnumHandlers;
using Blackbird.Applications.Sdk.Common;
using Blackbird.Applications.Sdk.Common.Dictionaries;
using Blackbird.Applications.Sdk.Common.Dynamic;

namespace Apps.Crowdin.Models.Request.Users
{
public class SearchUsersRequest
{
[Display("Project")]
[DataSource(typeof(ProjectDataHandler))]
public string ProjectId { get; set; }

[Display("Language ID")]
[DataSource(typeof(LanguagesDataHandler))]
public string? LanguageId { get; set; }

[StaticDataSource(typeof(UserRoleHandler))]
public string Role { get; set; }

}
}
13 changes: 13 additions & 0 deletions Apps.Crowdin/Models/Request/Users/UserRequest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using Apps.Crowdin.DataSourceHandlers;
using Blackbird.Applications.Sdk.Common;
using Blackbird.Applications.Sdk.Common.Dynamic;

namespace Apps.Crowdin.Models.Request.Users
{
public class UserRequest
{
[Display("User ID")]
[DataSource(typeof(ProjectMemberDataSourceHandler))]
public string? UserId { get; set; }
}
}
3 changes: 3 additions & 0 deletions Apps.Crowdin/Models/Response/Users/SearchUsersResponse.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
namespace Apps.Crowdin.Models.Response.Project;

public record SearchUsersResponse(Entities.AssigneeEntity[] Users);

0 comments on commit 59e28a2

Please sign in to comment.