using System.Linq; using Nancy; using Nancy.ModelBinding; using Sony.Filtr.ApiConsumer; using Sony.Filtr.Contracts.Abstractions; namespace Sony.Filtr.AdminAPI.Modules { public class ApiConsumerModule : BaseModule { public ApiConsumerModule(IApplicationInstanceManager applicationInstanceManager, ApiConsumerManager apiConsumerManager) : base(applicationInstanceManager) { Get["GetApiConsumers", "/ApiConsumers/"] = parameters => { var apiConsumers = apiConsumerManager.GetApiConsumers(); return Response.AsJson(apiConsumers); }; Post["AddApiConsumers", "/ApiConsumers/"] = parameters => { var apiConsumer = this.Bind("id"); if (apiConsumer == null) return HttpStatusCode.BadRequest; apiConsumer = apiConsumerManager.AddApiConsumer(apiConsumer); return Response.AsJson(apiConsumer); }; Get["GetSingleApiConsumer", "/ApiConsumers/{id}"] = parameters => { int id; if (!int.TryParse((string)parameters.id, out id)) return HttpStatusCode.BadRequest; var existingApiConsumer = apiConsumerManager.GetApiConsumer(id); if (existingApiConsumer == null) return HttpStatusCode.BadRequest; return Response.AsJson(existingApiConsumer); }; Put["UpdateApiConsumer", "/ApiConsumers/{id}"] = parameters => { int id; if (!int.TryParse((string)parameters.id, out id)) return HttpStatusCode.BadRequest; var existingApiConsumer = apiConsumerManager.GetApiConsumer(id); if (existingApiConsumer == null) return HttpStatusCode.BadRequest; var apiConsumer = this.Bind(); apiConsumer.Id = existingApiConsumer.Id; apiConsumerManager.UpdateApiConsumer(apiConsumer); return Response.AsJson(apiConsumer); }; Delete["DeleteApiConsumer", "/ApiConsumers/{id}"] = parameters => { int id; if (!int.TryParse((string)parameters.id, out id)) return HttpStatusCode.BadRequest; var existingUser = apiConsumerManager.GetApiConsumer(id); if (existingUser == null) return HttpStatusCode.BadRequest; apiConsumerManager.DeleteApiConsumer(existingUser); return HttpStatusCode.NoContent; }; } } }