Added four new endpoints to change the availability for TV shows and Movies #1601

This commit is contained in:
Jamie.Rees 2017-10-23 12:09:06 +01:00
parent b4d01386a6
commit f5ffa78304
14 changed files with 207 additions and 44 deletions

View file

@ -9,7 +9,6 @@ using System.Globalization;
using System.Linq;
using System.Security.Principal;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using Ombi.Core.Authentication;
@ -48,7 +47,7 @@ namespace Ombi.Core.Engine
{
return new RequestEngineResult
{
RequestAdded = false,
Result = false,
Message = "There was an issue adding this movie!",
ErrorMessage = $"TheMovieDb didn't have any information for ID {model.Id}"
};
@ -87,7 +86,7 @@ namespace Ombi.Core.Engine
if (requestModel.Approved) // The rules have auto approved this
{
var requestEngineResult = await AddMovieRequest(requestModel, fullMovieName);
if (requestEngineResult.RequestAdded)
if (requestEngineResult.Result)
{
var result = await ApproveMovie(requestModel);
if (result.IsError)
@ -97,7 +96,7 @@ namespace Ombi.Core.Engine
{
Message = result.Message,
ErrorMessage = result.Message,
RequestAdded = false
Result = false
};
}
@ -203,7 +202,7 @@ namespace Ombi.Core.Engine
{
return new RequestEngineResult
{
RequestAdded = true
Result = true
};
}
if (!result.Success)
@ -213,7 +212,7 @@ namespace Ombi.Core.Engine
{
Message = result.Message,
ErrorMessage = result.Message,
RequestAdded = false
Result = false
};
}
// If there are no providers then it's successful but movie has not been sent
@ -221,7 +220,7 @@ namespace Ombi.Core.Engine
return new RequestEngineResult
{
RequestAdded = true
Result = true
};
}
@ -267,6 +266,47 @@ namespace Ombi.Core.Engine
return await MovieRepository.GetAll().AnyAsync(x => x.RequestedUserId == userId);
}
public async Task<RequestEngineResult> MarkUnavailable(int modelId)
{
var request = await MovieRepository.Find(modelId);
if (request == null)
{
return new RequestEngineResult
{
ErrorMessage = "Request does not exist"
};
}
request.Available = false;
await MovieRepository.Update(request);
return new RequestEngineResult
{
Message = "Request is now unavailable",
Result = true
};
}
public async Task<RequestEngineResult> MarkAvailable(int modelId)
{
var request = await MovieRepository.Find(modelId);
if (request == null)
{
return new RequestEngineResult
{
ErrorMessage = "Request does not exist"
};
}
request.Available = true;
NotificationHelper.Notify(request, NotificationType.RequestAvailable);
await MovieRepository.Update(request);
return new RequestEngineResult
{
Message = "Request is now available",
Result = true
};
}
private async Task<RequestEngineResult> AddMovieRequest(MovieRequests model, string movieName)
{
await MovieRepository.Add(model);
@ -277,7 +317,7 @@ namespace Ombi.Core.Engine
NotificationHelper.NewRequest(model);
}
return new RequestEngineResult { RequestAdded = true, Message = $"{movieName} has been successfully added!" };
return new RequestEngineResult { Result = true, Message = $"{movieName} has been successfully added!" };
}
public async Task<IEnumerable<MovieRequests>> GetApprovedRequests()