Skip to content
Merged
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
27 changes: 21 additions & 6 deletions OpenAPI/LearningHub.Nhs.OpenApi/Controllers/ResourceController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ public async Task<ResourceReferenceWithResourceDetailsViewModel> GetResourceRefe
/// <param name="resourceReferenceIds">ids.</param>
/// <returns>ResourceReferenceViewModels for matching resources.</returns>
[HttpGet("Bulk")]
public async Task<BulkResourceReferenceViewModel> GetResourceReferencesByOriginalIds([FromQuery]List<int> resourceReferenceIds)
public async Task<BulkResourceReferenceViewModel> GetResourceReferencesByOriginalIds([FromQuery] List<int> resourceReferenceIds)
{
if (resourceReferenceIds.Count > MaxNumberOfReferenceIds)
{
Expand All @@ -136,7 +136,7 @@ public async Task<BulkResourceReferenceViewModel> GetResourceReferencesByOrigina
/// <param name="resourceReferences">ids.</param>
/// <returns>ResourceReferenceViewModels for matching resources.</returns>
[HttpGet("BulkJson")]
public async Task<BulkResourceReferenceViewModel> GetResourceReferencesByOriginalIdsFromJson([FromQuery]string resourceReferences)
public async Task<BulkResourceReferenceViewModel> GetResourceReferencesByOriginalIdsFromJson([FromQuery] string resourceReferences)
{
var bulkResourceReferences = JsonConvert.DeserializeObject<BulkResourceReferencesFromJsonRequestModel>(resourceReferences);

Expand All @@ -156,16 +156,28 @@ public async Task<BulkResourceReferenceViewModel> GetResourceReferencesByOrigina
/// <summary>
/// Get resourceReferences that have an in progress activity summary
/// </summary>
/// <param name="activityStatusId">activityStatusId.</param>
/// <returns>ResourceReferenceViewModels for matching resources.</returns>
[HttpGet("User/{activityStatusId}")]
public async Task<List<ResourceReferenceWithResourceDetailsViewModel>> GetResourceReferencesByActivityStatus(int activityStatusId)
{
// These activity statuses are set with other activity statuses and resource type within the ActivityStatusHelper.GetActivityStatusDescription
// Note In progress is in complete in the db
List<int> activityStatusIdsNotInUseInDB = new List<int>() { (int)ActivityStatusEnum.Launched, (int)ActivityStatusEnum.InProgress, (int)ActivityStatusEnum.Viewed, (int)ActivityStatusEnum.Downloaded };
if (this.CurrentUserId == null) throw new UnauthorizedAccessException("User Id required.");
if (!Enum.IsDefined(typeof(ActivityStatusEnum), activityStatusId)) throw new ArgumentOutOfRangeException($"activityStatusId : {activityStatusId} does not exist within ActivityStatusEnum");
if (activityStatusIdsNotInUseInDB.Contains(activityStatusId)) throw new ArgumentOutOfRangeException($"activityStatusId: {activityStatusId} does not exist within the database definitions");
if (this.CurrentUserId == null)
{
throw new UnauthorizedAccessException("User Id required.");
}

if (!Enum.IsDefined(typeof(ActivityStatusEnum), activityStatusId))
{
throw new ArgumentOutOfRangeException($"activityStatusId : {activityStatusId} does not exist within ActivityStatusEnum");
}

if (activityStatusIdsNotInUseInDB.Contains(activityStatusId))
{
throw new ArgumentOutOfRangeException($"activityStatusId: {activityStatusId} does not exist within the database definitions");
}

return await this.resourceService.GetResourceReferenceByActivityStatus(new List<int>() { activityStatusId }, this.CurrentUserId.Value);
}
Expand All @@ -177,7 +189,10 @@ public async Task<List<ResourceReferenceWithResourceDetailsViewModel>> GetResour
[HttpGet("User/Certificates")]
public async Task<List<ResourceReferenceWithResourceDetailsViewModel>> GetResourceReferencesByCertificates()
{
if (this.CurrentUserId == null) throw new UnauthorizedAccessException("User Id required.");
if (this.CurrentUserId == null)
{
throw new UnauthorizedAccessException("User Id required.");
}

return await this.resourceService.GetResourceReferencesForCertificates(this.CurrentUserId.Value);
}
Expand Down
Loading