You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ombi/src/Ombi/Controllers/RequestController.cs

98 lines
2.9 KiB

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Ombi.Core.Engine;
using Ombi.Core.Models.Requests;
using Ombi.Core.Models.Search;
namespace Ombi.Controllers
{
[Authorize]
public class RequestController : BaseV1ApiController
{
public RequestController(IMovieRequestEngine engine, ITvRequestEngine tvRequestEngine)
{
MovieRequestEngine = engine;
TvRequestEngine = tvRequestEngine;
}
private IMovieRequestEngine MovieRequestEngine { get; }
private ITvRequestEngine TvRequestEngine { get; }
[HttpGet("movie/{count:int}/{position:int}")]
public async Task<IEnumerable<MovieRequestModel>> GetRequests(int count, int position)
{
return await MovieRequestEngine.GetMovieRequests(count, position);
}
[HttpPost("movie")]
public async Task<RequestEngineResult> RequestMovie([FromBody]SearchMovieViewModel movie)
{
return await MovieRequestEngine.RequestMovie(movie);
}
[HttpGet("movie/search/{searchTerm}")]
public async Task<IEnumerable<MovieRequestModel>> Search(string searchTerm)
{
return await MovieRequestEngine.SearchMovieRequest(searchTerm);
}
[HttpDelete("movie/{requestId:int}")]
public async Task DeleteRequest(int requestId)
{
await MovieRequestEngine.RemoveMovieRequest(requestId);
}
[HttpPut("movie")]
public async Task<MovieRequestModel> UpdateRequest([FromBody]MovieRequestModel model)
{
return await MovieRequestEngine.UpdateMovieRequest(model);
}
[HttpGet("tv/{count:int}/{position:int}")]
public async Task<IEnumerable<TvRequestModel>> GetTvRequests(int count, int position)
{
try
{
return await TvRequestEngine.GetTvRequests(count, position);
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
[HttpPost("tv")]
public async Task<RequestEngineResult> RequestTv([FromBody]SearchTvShowViewModel tv)
{
return await TvRequestEngine.RequestTvShow(tv);
}
[HttpGet("tv/search/{searchTerm}")]
public async Task<IEnumerable<TvRequestModel>> SearchTv(string searchTerm)
{
return await TvRequestEngine.SearchTvRequest(searchTerm);
}
[HttpDelete("tv/{requestId:int}")]
public async Task DeleteTvRequest(int requestId)
{
await TvRequestEngine.RemoveTvRequest(requestId);
}
[HttpPut("tv")]
public async Task<TvRequestModel> UpdateRequest([FromBody]TvRequestModel model)
{
return await TvRequestEngine.UpdateTvRequest(model);
}
}
}