added /api/resource/{id} route to fancy

stopped scheduler from running during integration tests.
This commit is contained in:
Keivan Beigi 2013-05-24 14:28:13 -07:00
parent e8d8588199
commit 90fa261a00
5 changed files with 33 additions and 4 deletions

View File

@ -8,7 +8,6 @@ namespace NzbDrone.Api
protected NzbDroneApiModule(string resource) protected NzbDroneApiModule(string resource)
: base("/api/" + resource.Trim('/')) : base("/api/" + resource.Trim('/'))
{ {
Options["/"] = x => new Response();
} }
} }
} }

View File

@ -1,6 +1,5 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using Nancy.Security;
using NzbDrone.Api.REST; using NzbDrone.Api.REST;
using NzbDrone.Api.Validation; using NzbDrone.Api.Validation;
using NzbDrone.Core.Datastore; using NzbDrone.Core.Datastore;

View File

@ -145,6 +145,14 @@ namespace NzbDrone.Api.REST
var resource = UpdateResource(ReadFromRequest()); var resource = UpdateResource(ReadFromRequest());
return resource.AsResponse(HttpStatusCode.Accepted); return resource.AsResponse(HttpStatusCode.Accepted);
}; };
Put[ID_ROUTE] = options =>
{
var model = ReadFromRequest();
model.Id = options.Id;
var resource = UpdateResource(model);
return resource.AsResponse(HttpStatusCode.Accepted);
};
} }
} }
@ -153,6 +161,11 @@ namespace NzbDrone.Api.REST
//TODO: handle when request is null //TODO: handle when request is null
var resource = Request.Body.FromJson<TResource>(); var resource = Request.Body.FromJson<TResource>();
if (resource == null)
{
throw new BadRequestException("Request body can't be empty");
}
var errors = SharedValidator.Validate(resource).Errors.ToList(); var errors = SharedValidator.Validate(resource).Errors.ToList();
if (Request.Method.Equals("POST", StringComparison.InvariantCultureIgnoreCase)) if (Request.Method.Equals("POST", StringComparison.InvariantCultureIgnoreCase))

View File

@ -1,18 +1,23 @@
using Nancy; using Nancy;
using Nancy.Routing;
using NzbDrone.Common; using NzbDrone.Common;
using NzbDrone.Api.Extensions; using NzbDrone.Api.Extensions;
using System.Linq;
namespace NzbDrone.Api.System namespace NzbDrone.Api.System
{ {
public class SystemModule : NzbDroneApiModule public class SystemModule : NzbDroneApiModule
{ {
private readonly IEnvironmentProvider _environmentProvider; private readonly IEnvironmentProvider _environmentProvider;
private readonly IRouteCacheProvider _routeCacheProvider;
public SystemModule(IEnvironmentProvider environmentProvider) public SystemModule(IEnvironmentProvider environmentProvider, IRouteCacheProvider routeCacheProvider)
: base("system") : base("system")
{ {
_environmentProvider = environmentProvider; _environmentProvider = environmentProvider;
_routeCacheProvider = routeCacheProvider;
Get["/status"] = x => GetStatus(); Get["/status"] = x => GetStatus();
Get["/routes"] = x => GetRoutes();
} }
private Response GetStatus() private Response GetStatus()
@ -29,9 +34,15 @@ namespace NzbDrone.Api.System
IsMono = EnvironmentProvider.IsMono, IsMono = EnvironmentProvider.IsMono,
IsProduction = EnvironmentProvider.IsProduction, IsProduction = EnvironmentProvider.IsProduction,
IsDebug = EnvironmentProvider.IsDebug, IsDebug = EnvironmentProvider.IsDebug,
IsLinux = EnvironmentProvider.IsLinux IsLinux = EnvironmentProvider.IsLinux,
}.AsResponse(); }.AsResponse();
} }
private Response GetRoutes()
{
return _routeCacheProvider.GetCache().Values.AsResponse();
}
} }
} }

View File

@ -1,4 +1,5 @@
using System; using System;
using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using Moq; using Moq;
@ -13,6 +14,7 @@ using NzbDrone.Common;
using NzbDrone.Common.Composition; using NzbDrone.Common.Composition;
using NzbDrone.Core.Configuration; using NzbDrone.Core.Configuration;
using NzbDrone.Core.Datastore; using NzbDrone.Core.Datastore;
using NzbDrone.Core.Jobs;
using NzbDrone.Integration.Test.Client; using NzbDrone.Integration.Test.Client;
using NzbDrone.Owin; using NzbDrone.Owin;
using NzbDrone.Owin.MiddleWare; using NzbDrone.Owin.MiddleWare;
@ -85,6 +87,11 @@ namespace NzbDrone.Integration.Test
InitDatabase(); InitDatabase();
var taskManagerMock = new Mock<ITaskManager>();
taskManagerMock.Setup(c => c.GetPending()).Returns(new List<ScheduledTask>());
Container.TinyContainer.Register(taskManagerMock.Object);
_bootstrapper = new NancyBootstrapper(Container.TinyContainer); _bootstrapper = new NancyBootstrapper(Container.TinyContainer);