using Nancy; using Nancy.ModelBinding; using Sony.Filtr.Applications; using Sony.Filtr.Contracts.Entities; using Sony.Filtr.Core.Blacklists; namespace Sony.Filtr.AdminAPI.Modules { public class BlacklistModule : BaseModule { public BlacklistModule(BlacklistManager blacklistManager, ApplicationInstanceManager applicationInstanceManager) : base(applicationInstanceManager) { Get["GetBlacklist", "/{countryCode}/blacklist"] = parameters => { var blacklistArtists = blacklistManager.GetBlacklistedArtists(CurrentApplication); return Response.AsJson(blacklistArtists); }; Post["AddBlackListedArtist", "/{countryCode}/blacklist"] = parameters => { var blacklistedArtist = this.Bind("id"); if (blacklistedArtist == null) return HttpStatusCode.BadRequest; blacklistedArtist.ApplicationID = CurrentApplication.ID; blacklistedArtist = blacklistManager.SaveBlacklistedArtists(blacklistedArtist); return Response.AsJson(blacklistedArtist); }; Get["GetSingleBlacklistedArtist", "/{countryCode}/blacklist/{id}"] = parameters => { int id; if (!int.TryParse((string)parameters.id, out id)) return HttpStatusCode.BadRequest; var existingBlacklistedArtist = blacklistManager.GetBlacklistedArtist(id); if (existingBlacklistedArtist == null) return HttpStatusCode.BadRequest; return Response.AsJson(existingBlacklistedArtist); }; Put["UpdateBlacklistedArtist", "/{countryCode}/blacklist/{id}"] = parameters => { int id; if (!int.TryParse((string)parameters.id, out id)) return HttpStatusCode.BadRequest; var existingBlacklistedArtist = blacklistManager.GetBlacklistedArtist(id); if (existingBlacklistedArtist == null) return HttpStatusCode.BadRequest; var blacklistedArtist = this.Bind(); blacklistedArtist.ID = existingBlacklistedArtist.ID; blacklistedArtist.ApplicationID = CurrentApplication.ID; blacklistedArtist = blacklistManager.SaveBlacklistedArtists(blacklistedArtist); return Response.AsJson(blacklistedArtist); }; Delete["DeleteBlacklistedArtist", "/{countryCode}/blacklist/{id}"] = parameters => { int id; if (!int.TryParse((string)parameters.id, out id)) return HttpStatusCode.BadRequest; var existingUser = blacklistManager.GetBlacklistedArtist(id); if (existingUser == null) return HttpStatusCode.BadRequest; blacklistManager.DeleteBlacklistedArtists(existingUser); return HttpStatusCode.NoContent; }; } } }