mirror of
https://github.com/bitwarden/server.git
synced 2025-06-30 15:42:48 -05:00
[PM-14380] Add GET /tasks/organization endpoint (#5149)
* [PM-14380] Add GetManyByOrganizationIdStatusAsync to SecurityTaskRepository * [PM-14380] Introduce IGetTasksForOrganizationQuery * [PM-14380] Add /tasks/organization endpoint * [PM-14380] Add unit tests * [PM-14380] Formatting * [PM-14380] Bump migration script date * [PM-14380] Bump migration script date
This commit is contained in:
@ -19,15 +19,18 @@ public class SecurityTaskController : Controller
|
||||
private readonly IUserService _userService;
|
||||
private readonly IGetTaskDetailsForUserQuery _getTaskDetailsForUserQuery;
|
||||
private readonly IMarkTaskAsCompleteCommand _markTaskAsCompleteCommand;
|
||||
private readonly IGetTasksForOrganizationQuery _getTasksForOrganizationQuery;
|
||||
|
||||
public SecurityTaskController(
|
||||
IUserService userService,
|
||||
IGetTaskDetailsForUserQuery getTaskDetailsForUserQuery,
|
||||
IMarkTaskAsCompleteCommand markTaskAsCompleteCommand)
|
||||
IMarkTaskAsCompleteCommand markTaskAsCompleteCommand,
|
||||
IGetTasksForOrganizationQuery getTasksForOrganizationQuery)
|
||||
{
|
||||
_userService = userService;
|
||||
_getTaskDetailsForUserQuery = getTaskDetailsForUserQuery;
|
||||
_markTaskAsCompleteCommand = markTaskAsCompleteCommand;
|
||||
_getTasksForOrganizationQuery = getTasksForOrganizationQuery;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -54,4 +57,18 @@ public class SecurityTaskController : Controller
|
||||
await _markTaskAsCompleteCommand.CompleteAsync(taskId);
|
||||
return NoContent();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves security tasks for an organization. Restricted to organization administrators.
|
||||
/// </summary>
|
||||
/// <param name="organizationId">The organization Id</param>
|
||||
/// <param name="status">Optional filter for task status. If not provided, returns tasks of all statuses.</param>
|
||||
[HttpGet("organization")]
|
||||
public async Task<ListResponseModel<SecurityTasksResponseModel>> ListForOrganization(
|
||||
[FromQuery] Guid organizationId, [FromQuery] SecurityTaskStatus? status)
|
||||
{
|
||||
var securityTasks = await _getTasksForOrganizationQuery.GetTasksAsync(organizationId, status);
|
||||
var response = securityTasks.Select(x => new SecurityTasksResponseModel(x)).ToList();
|
||||
return new ListResponseModel<SecurityTasksResponseModel>(response);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user