mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-12 08:16:05 -07:00
Fixed the issue where movie requests were no longer being requested.
Changed the API for movie requests so we only need to pass the ID to approve/Deny TV Requests next #1601
This commit is contained in:
parent
b7b0381ce7
commit
7c5bca3b2b
17 changed files with 226 additions and 156 deletions
|
@ -86,21 +86,24 @@ namespace Ombi.Core.Engine
|
|||
|
||||
if (requestModel.Approved) // The rules have auto approved this
|
||||
{
|
||||
var result = await ApproveMovie(requestModel);
|
||||
if (result.RequestAdded)
|
||||
var requestEngineResult = await AddMovieRequest(requestModel, fullMovieName);
|
||||
if (requestEngineResult.RequestAdded)
|
||||
{
|
||||
return await AddMovieRequest(requestModel, fullMovieName);
|
||||
}
|
||||
if (!result.IsError)
|
||||
{
|
||||
Logger.LogWarning("Tried auto sending movie but failed. Message: {0}", result.Message);
|
||||
return new RequestEngineResult
|
||||
var result = await ApproveMovie(requestModel);
|
||||
if (result.IsError)
|
||||
{
|
||||
Message = result.Message,
|
||||
ErrorMessage = result.Message,
|
||||
RequestAdded = false
|
||||
};
|
||||
Logger.LogWarning("Tried auto sending movie but failed. Message: {0}", result.Message);
|
||||
return new RequestEngineResult
|
||||
{
|
||||
Message = result.Message,
|
||||
ErrorMessage = result.Message,
|
||||
RequestAdded = false
|
||||
};
|
||||
}
|
||||
|
||||
return requestEngineResult;
|
||||
}
|
||||
|
||||
// If there are no providers then it's successful but movie has not been sent
|
||||
}
|
||||
|
||||
|
@ -116,7 +119,7 @@ namespace Ombi.Core.Engine
|
|||
/// <returns></returns>
|
||||
public async Task<IEnumerable<MovieRequests>> GetRequests(int count, int position)
|
||||
{
|
||||
var allRequests = await MovieRepository.Get().Skip(position).Take(count).ToListAsync();
|
||||
var allRequests = await MovieRepository.GetWithUser().Skip(position).Take(count).ToListAsync();
|
||||
allRequests.ForEach(x => PosterPathHelper.FixPosterPath(x.PosterPath));
|
||||
return allRequests;
|
||||
}
|
||||
|
@ -127,7 +130,7 @@ namespace Ombi.Core.Engine
|
|||
/// <returns></returns>
|
||||
public async Task<IEnumerable<MovieRequests>> GetRequests()
|
||||
{
|
||||
var allRequests = await MovieRepository.Get().ToListAsync();
|
||||
var allRequests = await MovieRepository.GetWithUser().ToListAsync();
|
||||
return allRequests;
|
||||
}
|
||||
|
||||
|
@ -138,10 +141,37 @@ namespace Ombi.Core.Engine
|
|||
/// <returns></returns>
|
||||
public async Task<IEnumerable<MovieRequests>> SearchMovieRequest(string search)
|
||||
{
|
||||
var allRequests = await MovieRepository.Get().ToListAsync();
|
||||
var allRequests = await MovieRepository.GetWithUser().ToListAsync();
|
||||
var results = allRequests.Where(x => x.Title.Contains(search, CompareOptions.IgnoreCase));
|
||||
return results;
|
||||
}
|
||||
|
||||
public async Task<RequestEngineResult> ApproveMovieById(int requestId)
|
||||
{
|
||||
var request = await MovieRepository.Find(requestId);
|
||||
return await ApproveMovie(request);
|
||||
}
|
||||
|
||||
public async Task<RequestEngineResult> DenyMovieById(int modelId)
|
||||
{
|
||||
var request = await MovieRepository.Find(modelId);
|
||||
if (request == null)
|
||||
{
|
||||
return new RequestEngineResult
|
||||
{
|
||||
ErrorMessage = "Request does not exist"
|
||||
};
|
||||
}
|
||||
request.Denied = true;
|
||||
// We are denying a request
|
||||
NotificationHelper.Notify(request, NotificationType.RequestDeclined);
|
||||
await MovieRepository.Update(request);
|
||||
|
||||
return new RequestEngineResult
|
||||
{
|
||||
Message = "Request successfully deleted",
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This is the method that is triggered by pressing Approve on the requests page
|
||||
|
@ -150,9 +180,19 @@ namespace Ombi.Core.Engine
|
|||
/// <returns></returns>
|
||||
public async Task<RequestEngineResult> ApproveMovie(MovieRequests request)
|
||||
{
|
||||
if (request == null)
|
||||
{
|
||||
return new RequestEngineResult
|
||||
{
|
||||
ErrorMessage = "Request does not exist"
|
||||
};
|
||||
}
|
||||
request.Approved = true;
|
||||
await MovieRepository.Update(request);
|
||||
|
||||
NotificationHelper.Notify(request, NotificationType.RequestApproved);
|
||||
if (request.Approved)
|
||||
|
||||
if (request.Approved)
|
||||
{
|
||||
var result = await Sender.Send(request);
|
||||
if (result.Success && result.Sent)
|
||||
|
@ -188,20 +228,9 @@ namespace Ombi.Core.Engine
|
|||
/// <returns></returns>
|
||||
public async Task<MovieRequests> UpdateMovieRequest(MovieRequests request)
|
||||
{
|
||||
var allRequests = await MovieRepository.Get().ToListAsync();
|
||||
var allRequests = await MovieRepository.GetWithUser().ToListAsync();
|
||||
var results = allRequests.FirstOrDefault(x => x.Id == request.Id);
|
||||
|
||||
if (!(results.Denied ?? false) && (request.Denied ?? false))
|
||||
{
|
||||
// We are denying a request
|
||||
NotificationHelper.Notify(request, NotificationType.RequestDeclined);
|
||||
}
|
||||
if (!results.Available && request.Available)
|
||||
{
|
||||
// We changed the availability manually
|
||||
NotificationHelper.Notify(request, NotificationType.RequestAvailable);
|
||||
}
|
||||
|
||||
results.Approved = request.Approved;
|
||||
results.Available = request.Available;
|
||||
results.Denied = request.Denied;
|
||||
|
@ -225,7 +254,7 @@ namespace Ombi.Core.Engine
|
|||
/// <returns></returns>
|
||||
public async Task RemoveMovieRequest(int requestId)
|
||||
{
|
||||
var request = await MovieRepository.Get().FirstOrDefaultAsync(x => x.Id == requestId);
|
||||
var request = await MovieRepository.GetAll().FirstOrDefaultAsync(x => x.Id == requestId);
|
||||
await MovieRepository.Delete(request);
|
||||
}
|
||||
|
||||
|
@ -244,19 +273,19 @@ namespace Ombi.Core.Engine
|
|||
|
||||
public async Task<IEnumerable<MovieRequests>> GetApprovedRequests()
|
||||
{
|
||||
var allRequests = MovieRepository.Get();
|
||||
var allRequests = MovieRepository.GetWithUser();
|
||||
return await allRequests.Where(x => x.Approved && !x.Available).ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<MovieRequests>> GetNewRequests()
|
||||
{
|
||||
var allRequests = MovieRepository.Get();
|
||||
var allRequests = MovieRepository.GetWithUser();
|
||||
return await allRequests.Where(x => !x.Approved && !x.Available).ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<MovieRequests>> GetAvailableRequests()
|
||||
{
|
||||
var allRequests = MovieRepository.Get();
|
||||
var allRequests = MovieRepository.GetWithUser();
|
||||
return await allRequests.Where(x => !x.Approved && x.Available).ToListAsync();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue